mirror of
https://github.com/apache/openjpa.git
synced 2025-03-05 16:09:12 +00:00
OPENJPA-2911 getPCBytecode now returns ClassNodeTracker
This commit is contained in:
parent
11367cfbea
commit
37c114c724
@ -26,7 +26,6 @@ import java.util.Map;
|
||||
|
||||
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
|
||||
import org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl;
|
||||
import org.apache.openjpa.jdbc.identifier.DBIdentifier;
|
||||
import org.apache.openjpa.jdbc.meta.ClassMapping;
|
||||
import org.apache.openjpa.jdbc.meta.MappingRepository;
|
||||
import org.apache.openjpa.jdbc.schema.Column;
|
||||
|
@ -19,7 +19,6 @@
|
||||
package org.apache.openjpa.junit5.internal;
|
||||
|
||||
import org.apache.openjpa.conf.OpenJPAConfigurationImpl;
|
||||
import org.apache.openjpa.enhance.AsmAdaptor;
|
||||
import org.apache.openjpa.enhance.PCEnhancer;
|
||||
import org.apache.openjpa.enhance.PersistenceCapable;
|
||||
import org.apache.openjpa.lib.log.JULLogFactory;
|
||||
@ -28,17 +27,16 @@ import org.apache.openjpa.lib.log.LogFactoryImpl;
|
||||
import org.apache.openjpa.lib.log.SLF4JLogFactory;
|
||||
import org.apache.openjpa.meta.MetaDataRepository;
|
||||
import org.apache.openjpa.persistence.PersistenceMetaDataFactory;
|
||||
import org.apache.openjpa.util.asm.AsmHelper;
|
||||
import org.apache.openjpa.util.asm.ClassNodeTracker;
|
||||
import org.apache.xbean.asm9.AnnotationVisitor;
|
||||
import org.apache.xbean.asm9.ClassReader;
|
||||
import org.apache.xbean.asm9.Type;
|
||||
import org.apache.xbean.asm9.shade.commons.EmptyVisitor;
|
||||
import org.apache.xbean.finder.ClassLoaders;
|
||||
import serp.bytecode.BCClass;
|
||||
|
||||
import serp.bytecode.Project;
|
||||
|
||||
import jakarta.persistence.Embeddable;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.MappedSuperclass;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
@ -275,8 +273,8 @@ public class OpenJPADirectoriesEnhancer implements Runnable {
|
||||
if (enhancer.run() == PCEnhancer.ENHANCE_NONE) {
|
||||
return null;
|
||||
}
|
||||
final BCClass pcb = enhancer.getPCBytecode();
|
||||
return AsmAdaptor.toByteArray(pcb, pcb.toByteArray());
|
||||
final ClassNodeTracker cnt = enhancer.getPCBytecode();
|
||||
return AsmHelper.toByteArray(cnt);
|
||||
} catch (final IOException e) {
|
||||
throw new IllegalStateException(e);
|
||||
} finally {
|
||||
|
@ -32,8 +32,9 @@ import org.apache.openjpa.lib.util.Localizer;
|
||||
import org.apache.openjpa.lib.util.Options;
|
||||
import org.apache.openjpa.meta.MetaDataRepository;
|
||||
import org.apache.openjpa.util.GeneralException;
|
||||
import org.apache.openjpa.util.asm.AsmHelper;
|
||||
import org.apache.openjpa.util.asm.ClassNodeTracker;
|
||||
|
||||
import serp.bytecode.BCClass;
|
||||
import serp.bytecode.Project;
|
||||
|
||||
|
||||
@ -153,9 +154,8 @@ public class PCClassFileTransformer
|
||||
|
||||
if (enhancer.run() == PCEnhancer.ENHANCE_NONE)
|
||||
return null;
|
||||
BCClass pcb = enhancer.getPCBytecode();
|
||||
returnBytes = AsmAdaptor.toByteArray(pcb, pcb.toByteArray());
|
||||
return returnBytes;
|
||||
ClassNodeTracker cnt = enhancer.getPCBytecode();
|
||||
return AsmHelper.toByteArray(cnt);
|
||||
} finally {
|
||||
AccessController.doPrivileged(J2DoPrivHelper.setContextClassLoaderAction(oldLoader));
|
||||
}
|
||||
|
@ -100,7 +100,6 @@ import org.apache.openjpa.util.StringId;
|
||||
import org.apache.openjpa.util.UserException;
|
||||
import org.apache.openjpa.util.asm.AsmHelper;
|
||||
import org.apache.openjpa.util.asm.ClassNodeTracker;
|
||||
import org.apache.openjpa.util.asm.ClassWriterTracker;
|
||||
import org.apache.xbean.asm9.Opcodes;
|
||||
import org.apache.xbean.asm9.Type;
|
||||
import org.apache.xbean.asm9.tree.*;
|
||||
@ -378,8 +377,8 @@ public class PCEnhancer {
|
||||
* Return the bytecode representation of the persistence-capable class
|
||||
* being manipulated.
|
||||
*/
|
||||
public BCClass getPCBytecode() {
|
||||
return _pc;
|
||||
public ClassNodeTracker getPCBytecode() {
|
||||
return pc;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -124,7 +124,8 @@ class InterfaceImplGenerator {
|
||||
iface)).setFatal(true);
|
||||
try {
|
||||
// load the Class<?> for real.
|
||||
impl = Class.forName(enhancer.getPCBytecode().getName(), true, enhLoader);
|
||||
String pcClassName = enhancer.getPCBytecode().getClassNode().name.replace("/", ".");
|
||||
impl = Class.forName(pcClassName, true, enhLoader);
|
||||
} catch (Throwable t) {
|
||||
throw new InternalException(_loc.get("interface-load2", iface,
|
||||
enhLoader), t).setFatal(true);
|
||||
|
@ -20,8 +20,6 @@ package org.apache.openjpa.util.asm;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import serp.bytecode.BCClass;
|
||||
|
||||
/**
|
||||
* Control how enhanced bytecode is written.
|
||||
*
|
||||
|
@ -59,8 +59,7 @@ public class TestEnhancementWithMultiplePUs
|
||||
|
||||
assertEquals(PCEnhancer.ENHANCE_PC, enhancer.run());
|
||||
|
||||
assertTrue(Arrays.asList(enhancer.getPCBytecode().getInterfaceNames()).contains(
|
||||
PersistenceCapable.class.getName()));
|
||||
assertTrue(enhancer.getPCBytecode().getClassNode().interfaces.contains(Type.getInternalName(PersistenceCapable.class)));
|
||||
}
|
||||
|
||||
private BCClass assertNotPC(ClassLoader loader, Project project,
|
||||
|
@ -18,8 +18,6 @@
|
||||
*/
|
||||
package org.apache.openjpa.persistence;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
@ -23,9 +23,6 @@ import java.math.BigInteger;
|
||||
import java.sql.Date;
|
||||
import java.sql.Time;
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
Loading…
x
Reference in New Issue
Block a user