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 <[email protected]>
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;
@@ -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));
}
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 d78299622..8fa4efbd0 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
@@ -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;
}
/**
diff --git
a/openjpa-kernel/src/main/java/org/apache/openjpa/meta/InterfaceImplGenerator.java
b/openjpa-kernel/src/main/java/org/apache/openjpa/meta/InterfaceImplGenerator.java
index 474e720a3..a94946da4 100644
---
a/openjpa-kernel/src/main/java/org/apache/openjpa/meta/InterfaceImplGenerator.java
+++
b/openjpa-kernel/src/main/java/org/apache/openjpa/meta/InterfaceImplGenerator.java
@@ -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);
diff --git
a/openjpa-kernel/src/main/java/org/apache/openjpa/util/asm/BytecodeWriter.java
b/openjpa-kernel/src/main/java/org/apache/openjpa/util/asm/BytecodeWriter.java
index 06af49c79..267ef6dc8 100644
---
a/openjpa-kernel/src/main/java/org/apache/openjpa/util/asm/BytecodeWriter.java
+++
b/openjpa-kernel/src/main/java/org/apache/openjpa/util/asm/BytecodeWriter.java
@@ -20,8 +20,6 @@ package org.apache.openjpa.util.asm;
import java.io.IOException;
-import serp.bytecode.BCClass;
-
/**
* Control how enhanced bytecode is written.
*
diff --git
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestEnhancementWithMultiplePUs.java
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestEnhancementWithMultiplePUs.java
index 7189e7946..67597d454 100644
---
a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestEnhancementWithMultiplePUs.java
+++
b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/enhance/TestEnhancementWithMultiplePUs.java
@@ -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,
diff --git
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
index 0c88a93f4..d8dd41a63 100644
---
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
+++
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/JPAProperties.java
@@ -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;
diff --git
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
index 64ed29496..c57a18f4d 100644
---
a/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
+++
b/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaBuilderImpl.java
@@ -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;