[openjpa] branch master updated: OPENJPA-2911 openjpa-lib without Serp

2023-07-17 Thread struberg
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

2023-07-17 Thread rmannibucau
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

2023-07-17 Thread struberg
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

2023-07-17 Thread struberg
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

2023-07-17 Thread struberg
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)

2023-07-17 Thread struberg
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%)