[openjpa] branch master updated: OPENJPA-2911 openjpa-lib without Serp
This is an automated email from the ASF dual-hosted git repository. struberg pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 86c266df7 OPENJPA-2911 openjpa-lib without Serp 86c266df7 is described below commit 86c266df7a2d2840c0f413ef3ea70741ae1bef3a Author: Mark Struberg AuthorDate: Mon Jul 17 22:31:18 2023 +0200 OPENJPA-2911 openjpa-lib without Serp --- .../openjpa/jdbc/meta/ReverseMappingTool.java | 3 +- openjpa-kernel/pom.xml | 5 + .../openjpa/enhance/DynamicStorageGenerator.java | 2 +- .../org/apache/openjpa/enhance/PCEnhancer.java | 6 +- .../apache/openjpa/enhance/SerpPrivacyHelper.java | 97 .../openjpa/meta/InterfaceImplGenerator.java | 11 +- .../org/apache/openjpa/util/GeneratedClasses.java | 3 +- openjpa-lib/pom.xml| 5 +- .../lib/meta/ClassAnnotationMetaDataFilter.java| 174 - .../apache/openjpa/lib/meta/ClassArgParser.java| 52 -- .../apache/openjpa/lib/util/J2DoPrivHelper.java| 128 --- .../org/apache/openjpa/lib/util/JavaVersions.java | 7 +- .../openjpa/lib/util/TemporaryClassLoader.java | 48 +++--- .../apache/openjpa/lib/util/StringUtilTest.java| 2 - .../enhance/TestEnhancementWithMultiplePUs.java| 6 +- 15 files changed, 218 insertions(+), 331 deletions(-) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ReverseMappingTool.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ReverseMappingTool.java index 8776d3526..58437e27a 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ReverseMappingTool.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/ReverseMappingTool.java @@ -45,6 +45,7 @@ import java.util.TreeSet; import org.apache.openjpa.conf.OpenJPAConfiguration; import org.apache.openjpa.enhance.ApplicationIdTool; import org.apache.openjpa.enhance.CodeGenerator; +import org.apache.openjpa.enhance.SerpPrivacyHelper; import org.apache.openjpa.jdbc.conf.JDBCConfiguration; import org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl; import org.apache.openjpa.jdbc.meta.strats.FullClassStrategy; @@ -183,7 +184,7 @@ public class ReverseMappingTool private final Map _tables = new HashMap(); private final Project _project = new Project(); private final BCClassLoader _loader = AccessController -.doPrivileged(J2DoPrivHelper.newBCClassLoaderAction(_project)); +.doPrivileged(SerpPrivacyHelper.newBCClassLoaderAction(_project)); private StrategyInstaller _strat = null; private String _package = null; private File _dir = null; diff --git a/openjpa-kernel/pom.xml b/openjpa-kernel/pom.xml index b1eb29b08..01b139724 100644 --- a/openjpa-kernel/pom.xml +++ b/openjpa-kernel/pom.xml @@ -66,6 +66,11 @@ 4.2.0 provided + + +net.sourceforge.serp +serp + org.apache.xbean xbean-asm9-shaded diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/DynamicStorageGenerator.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/DynamicStorageGenerator.java index 9bc1fd000..e1b2b85b1 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/DynamicStorageGenerator.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/DynamicStorageGenerator.java @@ -97,7 +97,7 @@ public class DynamicStorageGenerator { // the project/classloader for the classes. private final Project _project = new Project(); private final BCClassLoader _loader = -AccessController.doPrivileged(J2DoPrivHelper.newBCClassLoaderAction( +AccessController.doPrivileged(SerpPrivacyHelper.newBCClassLoaderAction( _project, AccessController.doPrivileged(J2DoPrivHelper .getClassLoaderAction(DynamicStorage.class; diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java index 8fa4efbd0..29f0d0c8a 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java @@ -233,8 +233,7 @@ public class PCEnhancer { * repository. */ public PCEnhancer(OpenJPAConfiguration conf, Class type) { -this(conf, AccessController.doPrivileged(J2DoPrivHelper - .loadProjectClassAction(new Project(), type)), +this(conf, AccessController.doPrivileged(SerpPrivacyHelper.loadProjectClassAction(new Project(), type)), (MetaDataRepository) null); } @@ -244,8 +243,7 @@ public class PCEnhancer { * and then loading from
[openjpa] branch master updated: moving to Class.forName to force clinit call instead of creating a dead instance
This is an automated email from the ASF dual-hosted git repository. rmannibucau pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new a494966e8 moving to Class.forName to force clinit call instead of creating a dead instance a494966e8 is described below commit a494966e8b04e1a31f9895947f7b4ac68d4f888b Author: Romain Manni-Bucau AuthorDate: Mon Jul 17 19:48:36 2023 +0200 moving to Class.forName to force clinit call instead of creating a dead instance --- .../org/apache/openjpa/enhance/ManagedClassSubclasser.java | 10 +- .../java/org/apache/openjpa/util/ClassLoaderProxyService.java | 8 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java index cde3f0412..08ea4d3ec 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java @@ -291,15 +291,7 @@ public class ManagedClassSubclasser { // this is the new subclass ClassLoader loader = GeneratedClasses.getMostDerivedLoader(cls, PersistenceCapable.class); String className = cnt.getClassNode().name.replace("/", "."); -final Class subclass = GeneratedClasses.loadAsmClass(className, byteArray, cls, loader); -try { -// Ugly workaround to trigger clinit static initializer block :( -subclass.newInstance(); -} -catch (Exception e) { -throw new RuntimeException(e); -} -subs.add(subclass); +subs.add(GeneratedClasses.loadAsmClass(className, byteArray, cls, loader)); } } } diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java index 4ba872cae..61627cd29 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/ClassLoaderProxyService.java @@ -111,6 +111,14 @@ public class ClassLoaderProxyService classes.put(key, existing); } } +try +{ +Class.forName(existing.getName(), true, existing.getClassLoader()); +} +catch (ClassNotFoundException e) +{ +// no-op, not critical, will be done at first instantiation but shouldn't happen anyway +} } return existing; }
[openjpa] branch master updated: OPENJPA-2911 getPCBytecode now returns ClassNodeTracker
This is an automated email from the ASF dual-hosted git repository. struberg pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git The following commit(s) were added to refs/heads/master by this push: new 37c114c72 OPENJPA-2911 getPCBytecode now returns ClassNodeTracker 37c114c72 is described below commit 37c114c7241db3c9e5842855718941b95c487de3 Author: Mark Struberg AuthorDate: Mon Jul 17 19:32:20 2023 +0200 OPENJPA-2911 getPCBytecode now returns ClassNodeTracker --- .../org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.java| 1 - .../openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java | 12 +--- .../org/apache/openjpa/enhance/PCClassFileTransformer.java | 8 .../src/main/java/org/apache/openjpa/enhance/PCEnhancer.java | 5 ++--- .../java/org/apache/openjpa/meta/InterfaceImplGenerator.java | 3 ++- .../java/org/apache/openjpa/util/asm/BytecodeWriter.java | 2 -- .../openjpa/enhance/TestEnhancementWithMultiplePUs.java | 3 +-- .../java/org/apache/openjpa/persistence/JPAProperties.java | 2 -- .../openjpa/persistence/criteria/CriteriaBuilderImpl.java| 3 --- 9 files changed, 14 insertions(+), 25 deletions(-) diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.java index 271c7dcfa..93bd63e2a 100644 --- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.java +++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ClassTableJDBCSeq.java @@ -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; diff --git a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java index 284212efe..6bae9091c 100644 --- a/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java +++ b/openjpa-junit5/src/main/java/org/apache/openjpa/junit5/internal/OpenJPADirectoriesEnhancer.java @@ -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 { diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java index 42651e862..246083dff 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCClassFileTransformer.java @@ -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; @@
[openjpa] 02/02: OPENJPA-2911 ByteCodeWriter with ASM
This is an automated email from the ASF dual-hosted git repository. struberg pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git commit 11367cfbeae7e71c22804fc7c1040989388ea5cb Author: Mark Struberg AuthorDate: Mon Jul 17 18:06:43 2023 +0200 OPENJPA-2911 ByteCodeWriter with ASM --- .../openjpa/enhance/ManagedClassSubclasser.java| 70 -- .../org/apache/openjpa/enhance/PCEnhancer.java | 36 +-- .../openjpa/util/ClassLoaderProxyService.java | 1 + .../org/apache/openjpa/util/GeneratedClasses.java | 2 +- .../org/apache/openjpa/util/asm/AsmHelper.java | 9 +++ .../apache/openjpa/util/asm/BytecodeWriter.java| 2 +- .../enhance/TestEnhancementWithMultiplePUs.java| 24 7 files changed, 77 insertions(+), 67 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java index 2fc77a346..cde3f0412 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java @@ -18,9 +18,10 @@ */ package org.apache.openjpa.enhance; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.StandardOpenOption; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -32,8 +33,8 @@ import java.util.Set; import org.apache.openjpa.conf.OpenJPAConfiguration; import org.apache.openjpa.lib.log.Log; +import org.apache.openjpa.util.asm.AsmHelper; import org.apache.openjpa.util.asm.BytecodeWriter; -import org.apache.openjpa.lib.util.Files; import org.apache.openjpa.lib.util.Localizer; import org.apache.openjpa.lib.util.Localizer.Message; import org.apache.openjpa.meta.AccessCode; @@ -46,8 +47,7 @@ import org.apache.openjpa.util.ImplHelper; import org.apache.openjpa.util.InternalException; import org.apache.openjpa.util.MetaDataException; import org.apache.openjpa.util.UserException; - -import serp.bytecode.BCClass; +import org.apache.openjpa.util.asm.ClassNodeTracker; /** * Redefines the method bodies of existing unenhanced classes to make them @@ -65,7 +65,7 @@ public class ManagedClassSubclasser { * OpenJPA to handle new instances of the unenhanced type. If this is * invoked in a Java 6 environment, this method will redefine the methods * for each class in the argument list such that field accesses are - * intercepted in-line. If invoked in a Java 5 environment, this + * intercepted in-line. If invoked in a Java 5 environment or very new Java versions, this * redefinition is not possible; in these contexts, when using field * access, OpenJPA will need to do state comparisons to detect any change * to any instance at any time, and when using property access, OpenJPA @@ -136,8 +136,8 @@ public class ManagedClassSubclasser { enhancer.setBytecodeWriter(new BytecodeWriter() { @Override -public void write(BCClass bc) throws IOException { -ManagedClassSubclasser.write(bc, enhancer, map, c, subs, ints); +public void write(ClassNodeTracker cnt) throws IOException { +ManagedClassSubclasser.write(cnt, enhancer, map, c, subs, ints); } }); if (redefine) { @@ -174,9 +174,9 @@ public class ManagedClassSubclasser { } } -if (unspecified != null && !unspecified.isEmpty()) -throw new UserException(_loc.get("unspecified-unenhanced-types", Exceptions.toClassNames(classes), -unspecified)); +if (unspecified != null && !unspecified.isEmpty()) { +throw new UserException(_loc.get("unspecified-unenhanced-types", Exceptions.toClassNames(classes), unspecified)); +} ClassRedefiner.redefineClasses(conf, map); for (Class cls : map.keySet()) { @@ -269,55 +269,61 @@ public class ManagedClassSubclasser { } } -private static void write(BCClass bc, PCEnhancer enhancer, -Map, byte[]> map, Class cls, List> subs, List> ints) +private static void write(ClassNodeTracker cnt, PCEnhancer enhancer, Map, byte[]> map, + Class cls, List> subs, List> ints) throws IOException { -if (bc == enhancer.getManagedTypeBytecode()) { +if (cnt == enhancer.getManagedTypeBytecode()) { // if it was already defined, don't put it in the map, // but do set the metadata accordingly. if (enhancer.isAlreadyRedefined()) -ints.add(bc.getType()); +ints.add(cls); else { -ByteArrayOutputStream baos = new
[openjpa] 01/02: OPENJPA-2911 move BytecodeWriter to openjpa-kernel
This is an automated email from the ASF dual-hosted git repository. struberg pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git commit bcb00d890976ac19e7969858aba3ed235ebcfea9 Author: Mark Struberg AuthorDate: Mon Jul 17 10:08:39 2023 +0200 OPENJPA-2911 move BytecodeWriter to openjpa-kernel had no usage in openjpa-lib but introduced dependeny to Serp over there --- .../apache/openjpa/enhance/ManagedClassSubclasser.java| 2 +- .../main/java/org/apache/openjpa/enhance/PCEnhancer.java | 15 ++- .../java/org/apache/openjpa/util/asm}/BytecodeWriter.java | 2 +- .../openjpa/enhance/TestEnhancementWithMultiplePUs.java | 5 ++--- 4 files changed, 10 insertions(+), 14 deletions(-) diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java index 8f6ef99ac..2fc77a346 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java @@ -32,7 +32,7 @@ import java.util.Set; import org.apache.openjpa.conf.OpenJPAConfiguration; import org.apache.openjpa.lib.log.Log; -import org.apache.openjpa.lib.util.BytecodeWriter; +import org.apache.openjpa.util.asm.BytecodeWriter; import org.apache.openjpa.lib.util.Files; import org.apache.openjpa.lib.util.Localizer; import org.apache.openjpa.lib.util.Localizer.Message; diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java index 53a0b5f08..0dc51236d 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java @@ -62,7 +62,7 @@ import org.apache.openjpa.conf.OpenJPAConfigurationImpl; import org.apache.openjpa.lib.conf.Configurations; import org.apache.openjpa.lib.log.Log; import org.apache.openjpa.lib.meta.ClassArgParser; -import org.apache.openjpa.lib.util.BytecodeWriter; +import org.apache.openjpa.util.asm.BytecodeWriter; import org.apache.openjpa.lib.util.ClassUtil; import org.apache.openjpa.lib.util.Files; import org.apache.openjpa.lib.util.J2DoPrivHelper; @@ -124,16 +124,13 @@ public class PCEnhancer { public static final int ENHANCER_VERSION; public static final Type TYPE_OBJECT = Type.getType(Object.class); -boolean _addVersionInitFlag = true; - public static final int ENHANCE_NONE = 0; public static final int ENHANCE_AWARE = 2 << 0; public static final int ENHANCE_INTERFACE = 2 << 1; public static final int ENHANCE_PC = 2 << 2; public static final String PRE = "pc"; -public static final String ISDETACHEDSTATEDEFINITIVE = PRE -+ "isDetachedStateDefinitive"; +public static final String ISDETACHEDSTATEDEFINITIVE = PRE + "isDetachedStateDefinitive"; private static final Class PCTYPE = PersistenceCapable.class; private static final String SM = PRE + "StateManager"; @@ -149,10 +146,8 @@ public class PCEnhancer { private static final String VERSION_INIT_STR = PRE + "VersionInit"; -private static final Localizer _loc = Localizer.forPackage -(PCEnhancer.class); -private static final String REDEFINED_ATTRIBUTE -= PCEnhancer.class.getName() + "#redefined-type"; +private static final Localizer _loc = Localizer.forPackage(PCEnhancer.class); +private static final String REDEFINED_ATTRIBUTE = PCEnhancer.class.getName() + "#redefined-type"; private static final AuxiliaryEnhancer[] _auxEnhancers; @@ -200,6 +195,8 @@ public class PCEnhancer { private BCClass _pc; private final BCClass _managedType; private final MetaDataRepository _repos; +boolean _addVersionInitFlag = true; + /** * represents the managed type. diff --git a/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/BytecodeWriter.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/asm/BytecodeWriter.java similarity index 96% rename from openjpa-lib/src/main/java/org/apache/openjpa/lib/util/BytecodeWriter.java rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/asm/BytecodeWriter.java index 02abe1539..c69a72eb4 100644 --- a/openjpa-lib/src/main/java/org/apache/openjpa/lib/util/BytecodeWriter.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/asm/BytecodeWriter.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.openjpa.lib.util; +package org.apache.openjpa.util.asm; import java.io.IOException; diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestEnhancementWithMultiplePUs.java
[openjpa] branch master updated (96a64bceb -> 11367cfbe)
This is an automated email from the ASF dual-hosted git repository. struberg pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/openjpa.git from 96a64bceb OPENJPA-2911 simplification and more modern code new bcb00d890 OPENJPA-2911 move BytecodeWriter to openjpa-kernel new 11367cfbe OPENJPA-2911 ByteCodeWriter with ASM The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../openjpa/enhance/ManagedClassSubclasser.java| 72 -- .../org/apache/openjpa/enhance/PCEnhancer.java | 51 +++ .../openjpa/util/ClassLoaderProxyService.java | 1 + .../org/apache/openjpa/util/GeneratedClasses.java | 2 +- .../org/apache/openjpa/util/asm/AsmHelper.java | 9 +++ .../apache/openjpa/util/asm}/BytecodeWriter.java | 4 +- .../enhance/TestEnhancementWithMultiplePUs.java| 27 7 files changed, 86 insertions(+), 80 deletions(-) rename {openjpa-lib/src/main/java/org/apache/openjpa/lib/util => openjpa-kernel/src/main/java/org/apache/openjpa/util/asm}/BytecodeWriter.java (91%)