diff --git a/bundles/eclipselink/pom.xml b/bundles/eclipselink/pom.xml index c24bbe40c17..9f72efbbde7 100644 --- a/bundles/eclipselink/pom.xml +++ b/bundles/eclipselink/pom.xml @@ -226,11 +226,6 @@ common-license provided - - org.eclipse.persistence - org.eclipse.persistence.asm - provided - org.eclipse.persistence org.eclipse.persistence.core @@ -399,7 +394,6 @@ provided sources - org.eclipse.persistence.asm, org.eclipse.persistence.core, org.eclipse.persistence.corba, org.eclipse.persistence.dbws, @@ -440,7 +434,6 @@ ${project.groupId} provided - org.eclipse.persistence.asm, org.eclipse.persistence.core, org.eclipse.persistence.corba, org.eclipse.persistence.dbws, diff --git a/bundles/eclipselink/src/main/java/module-info.java b/bundles/eclipselink/src/main/java/module-info.java index 22a464d5c59..3d109564de6 100644 --- a/bundles/eclipselink/src/main/java/module-info.java +++ b/bundles/eclipselink/src/main/java/module-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2022 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2023 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at @@ -221,7 +221,6 @@ exports org.eclipse.persistence.internal.jpa.metadata.xml; exports org.eclipse.persistence.internal.jpa.rs.metadata.model; exports org.eclipse.persistence.internal.jpa.rs.metadata.model.v2; - exports org.eclipse.persistence.internal.libraries.asm; exports org.eclipse.persistence.internal.localization; exports org.eclipse.persistence.internal.oxm; exports org.eclipse.persistence.internal.oxm.mappings; diff --git a/bundles/others/pom.xml b/bundles/others/pom.xml index 45844e9e46d..9d5ac8d9282 100644 --- a/bundles/others/pom.xml +++ b/bundles/others/pom.xml @@ -61,10 +61,6 @@ org.eclipse.persistence eclipselink - - org.eclipse.persistence - org.eclipse.persistence.asm - org.eclipse.persistence org.eclipse.persistence.core @@ -284,11 +280,6 @@ - - org.eclipse.persistence - org.eclipse.persistence.asm - sources - org.eclipse.persistence org.eclipse.persistence.jpa.jpql diff --git a/bundles/p2site/pom.xml b/bundles/p2site/pom.xml index 958b67fc8ac..f55a8cf74bd 100644 --- a/bundles/p2site/pom.xml +++ b/bundles/p2site/pom.xml @@ -37,10 +37,6 @@ - - org.eclipse.persistence - org.eclipse.persistence.asm - org.eclipse.persistence org.eclipse.persistence.core @@ -273,11 +269,6 @@ - - org.eclipse.persistence - org.eclipse.persistence.asm - sources - org.eclipse.persistence org.eclipse.persistence.jpa.jpql @@ -388,10 +379,6 @@ - - org.eclipse.persistence:org.eclipse.persistence.asm:${project.version} - true - org.eclipse.persistence:org.eclipse.persistence.core:${project.version} true @@ -449,10 +436,6 @@ false true - - org.eclipse.persistence:org.eclipse.persistence.asm:${project.version} - true - org.eclipse.persistence:org.eclipse.persistence.core:${project.version} true diff --git a/bundles/tests/pom.xml b/bundles/tests/pom.xml index 259f43cacc2..6458768a059 100644 --- a/bundles/tests/pom.xml +++ b/bundles/tests/pom.xml @@ -50,11 +50,6 @@ ${project.version} - - org.eclipse.persistence - org.eclipse.persistence.asm - test - org.eclipse.persistence org.eclipse.persistence.core @@ -90,6 +85,27 @@ parsson test + + + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util + test + diff --git a/bundles/tests/src/test/java/org/eclipse/persistence/testing/osgi/OSGITestHelper.java b/bundles/tests/src/test/java/org/eclipse/persistence/testing/osgi/OSGITestHelper.java index 8d4a59b872d..d1e7de65df8 100644 --- a/bundles/tests/src/test/java/org/eclipse/persistence/testing/osgi/OSGITestHelper.java +++ b/bundles/tests/src/test/java/org/eclipse/persistence/testing/osgi/OSGITestHelper.java @@ -38,7 +38,6 @@ public class OSGITestHelper { private static final String JAXB_API_JAR = System.getProperty("jaxb-api.jar", "jakarta.xml.bind-api.jar"); private static final String JAXB_OSGI = System.getProperty("jaxb-osgi.jar", "jaxb-xjc.jar"); private static final String JAXRS_JAR = System.getProperty("jaxrs.jar", "jakarta.ws.rs-api.jar"); - private static final String ASM_JAR = System.getProperty("asm.jar", "org.eclipse.persistence.asm.jar"); public static Option[] getDefaultOptions() { @@ -60,7 +59,6 @@ public static Option[] getDefaultOptions() { // EclipseLink bundles bundle(pathToUrl(PLUGINS_DIR + "org.eclipse.persistence.moxy.jar")), bundle(pathToUrl(PLUGINS_DIR + "org.eclipse.persistence.core.jar")), - bundle(pathToUrl(PLUGINS_DIR + ASM_JAR)), cleanCaches(), junitBundles()); @@ -78,7 +76,6 @@ public static Option[] getOptionsWithBeanValidation() { // EclipseLink bundles bundle(pathToUrl(PLUGINS_DIR + "org.eclipse.persistence.moxy.jar")), bundle(pathToUrl(PLUGINS_DIR + "org.eclipse.persistence.core.jar")), - bundle(pathToUrl(PLUGINS_DIR + ASM_JAR)), bundle(pathToUrl(PLUGINS_DIR + "jakarta.validation-api.jar")), bundle(pathToUrl(PLUGINS_DIR + "hibernate-validator.jar")), diff --git a/bundles/tests/src/test/java/org/eclipse/persistence/testing/osgi/OSGiBundleTest.java b/bundles/tests/src/test/java/org/eclipse/persistence/testing/osgi/OSGiBundleTest.java index 1a877b2ce8a..5286ff6c1ea 100644 --- a/bundles/tests/src/test/java/org/eclipse/persistence/testing/osgi/OSGiBundleTest.java +++ b/bundles/tests/src/test/java/org/eclipse/persistence/testing/osgi/OSGiBundleTest.java @@ -64,12 +64,6 @@ public static Option[] config() { return OSGITestHelper.getDefaultOptions(); } - @Test - public void testAsmELVersion() { - Class c = loadClass(CORE_BUNDLE_NAME, "org.eclipse.persistence.internal.libraries.asm.AnnotationVisitor"); - assertClassLoadedByBundle(c, ASM_BUNDLE_NAME); - } - @Test public void testAsmCoreVersion() { Class c = loadClass(CORE_BUNDLE_NAME, "org.eclipse.persistence.asm.AnnotationVisitor"); diff --git a/dbws/org.eclipse.persistence.dbws/pom.xml b/dbws/org.eclipse.persistence.dbws/pom.xml index a6ac75f5ba4..63a439fecca 100644 --- a/dbws/org.eclipse.persistence.dbws/pom.xml +++ b/dbws/org.eclipse.persistence.dbws/pom.xml @@ -87,10 +87,25 @@ junit test - + - org.eclipse.persistence - org.eclipse.persistence.asm + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util test @@ -121,10 +136,6 @@ org.eclipse.persistence.internal.xr.sxf, * - - org.eclipse.persistence.internal.libraries.asm*;version="${version;==;${@}}", - * - diff --git a/docs/docs.solutions/src/main/asciidoc/tlandgs002.adoc b/docs/docs.solutions/src/main/asciidoc/tlandgs002.adoc index 36007f29cc0..22bfb038709 100644 --- a/docs/docs.solutions/src/main/asciidoc/tlandgs002.adoc +++ b/docs/docs.solutions/src/main/asciidoc/tlandgs002.adoc @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// - Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved. + Copyright (c) 2022, 2023 Oracle and/or its affiliates. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v. 2.0, which is available at @@ -93,7 +93,6 @@ directory. . . o org.eclipse.persistence.antlr.jar - o org.eclipse.persistence.asm.jar o org.eclipse.persistence.core.jar o org.eclipse.persistence.jpa.jar o org.eclipse.persistence.jpa.modelgen.jar diff --git a/foundation/eclipselink.core.test/pom.xml b/foundation/eclipselink.core.test/pom.xml index afe88524515..e5477d62ebd 100644 --- a/foundation/eclipselink.core.test/pom.xml +++ b/foundation/eclipselink.core.test/pom.xml @@ -90,33 +90,24 @@ test - - org.eclipse.persistence - org.eclipse.persistence.asm - test - org.ow2.asm asm - ${asm.version} test org.ow2.asm asm-commons - ${asm.version} test org.ow2.asm asm-tree - ${asm.version} test org.ow2.asm asm-util - ${asm.version} test @@ -176,26 +167,6 @@ - - asm-eclipselink-test - - test - - - - org.ow2.asm:asm - org.ow2.asm:asm-commons - org.ow2.asm:asm-tree - org.ow2.asm:asm-util - - - eclipselink - - - org/eclipse/persistence/testing/tests/junit/asm/**/*Test - - - asm-ow2-test @@ -205,9 +176,6 @@ ow2 - - org.eclipse.persistence.asm - org/eclipse/persistence/testing/tests/junit/asm/**/*Test diff --git a/foundation/eclipselink.core.test/src/test/java/org/eclipse/persistence/testing/tests/junit/asm/ASMFactoryTest.java b/foundation/eclipselink.core.test/src/test/java/org/eclipse/persistence/testing/tests/junit/asm/ASMFactoryTest.java index f0ca5226c6a..011e93c5436 100644 --- a/foundation/eclipselink.core.test/src/test/java/org/eclipse/persistence/testing/tests/junit/asm/ASMFactoryTest.java +++ b/foundation/eclipselink.core.test/src/test/java/org/eclipse/persistence/testing/tests/junit/asm/ASMFactoryTest.java @@ -27,27 +27,13 @@ public class ASMFactoryTest { public void getAsmServiceTest() { String asmServiceSysProperty = System.getProperty(SystemProperties.ASM_SERVICE, ""); String asmService = ASMFactory.getAsmService(); - switch (asmServiceSysProperty) { - case ASMFactory.ASM_SERVICE_OW2: - assertEquals(ASMFactory.ASM_SERVICE_OW2, asmService); - break; - case ASMFactory.ASM_SERVICE_ECLIPSELINK: - default: - assertEquals(ASMFactory.ASM_SERVICE_ECLIPSELINK, asmService); - } + assertEquals(ASMFactory.ASM_SERVICE_OW2, asmService); } @Test public void createClassVisitorTest() { String asmServiceSysProperty = System.getProperty(SystemProperties.ASM_SERVICE, ""); ClassVisitor classVisitor = ASMFactory.createClassVisitor(ASMFactory.ASM_API_SELECTED); - switch (asmServiceSysProperty) { - case ASMFactory.ASM_SERVICE_OW2: - assertEquals(org.eclipse.persistence.asm.internal.platform.ow2.ClassVisitorImpl.class, classVisitor.getClass()); - break; - case ASMFactory.ASM_SERVICE_ECLIPSELINK: - default: - assertEquals(org.eclipse.persistence.asm.internal.platform.eclipselink.ClassVisitorImpl.class, classVisitor.getClass()); - } + assertEquals(org.eclipse.persistence.asm.internal.platform.ow2.ClassVisitorImpl.class, classVisitor.getClass()); } } diff --git a/foundation/org.eclipse.persistence.core/pom.xml b/foundation/org.eclipse.persistence.core/pom.xml index 6a1d9844b0e..81ae2470bfd 100644 --- a/foundation/org.eclipse.persistence.core/pom.xml +++ b/foundation/org.eclipse.persistence.core/pom.xml @@ -44,12 +44,6 @@ - - org.eclipse.persistence - org.eclipse.persistence.asm - provided - true - org.eclipse.persistence org.eclipse.persistence.jpa.jpql @@ -300,14 +294,12 @@ * - org.eclipse.persistence.internal.libraries.asm*;version=!;resolution:=optional, org.objectweb.asm*;version=!;resolution:=optional, javax.rmi;version=!;resolution:=optional, javax.rmi.CORBA;version=!;resolution:=optional, org.omg.CORBA;version=!;resolution:=optional, org.omg.CORBA.portable;version=!;resolution:=optional, org.omg.CORBA_2_3.portable;version=!;resolution:=optional, - org.eclipse.persistence.internal.libraries.asm*;version="${version;==;${@}}", org.eclipse.persistence.eis.adapters.xmlfile;resolution:=optional, org.eclipse.persistence.sessions.coordination.rmi.iiop;resolution:=optional, org.eclipse.persistence.sessions.coordination.corba.sun;resolution:=optional, diff --git a/foundation/org.eclipse.persistence.core/src/main/java/module-info.java b/foundation/org.eclipse.persistence.core/src/main/java/module-info.java index bdb3097411d..3f01f52d9ef 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/module-info.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/module-info.java @@ -26,7 +26,6 @@ requires static jakarta.persistence; requires static jakarta.xml.bind; - requires org.eclipse.persistence.asm; requires static org.eclipse.persistence.jpa.jpql; requires static jakarta.cdi; diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ASMFactory.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ASMFactory.java index 0ff0ba62e66..5e50b46d395 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ASMFactory.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ASMFactory.java @@ -35,21 +35,19 @@ public class ASMFactory { private final static SessionLog LOG = AbstractSessionLog.getLog(); - public final static String ASM_SERVICE_ECLIPSELINK = "eclipselink"; public final static String ASM_SERVICE_OW2 = "ow2"; private final static String ASM_OW2_CLASS_VISITOR = "org.objectweb.asm.ClassVisitor"; - private final static String ASM_ECLIPSELINK_CLASS_VISITOR = "org.eclipse.persistence.internal.libraries.asm.ClassVisitor"; + private final static ArrayList JAVA_VERSIONS = new ArrayList<>(getVersionMap().keySet()); //Should be changed in case of ASM upgrade public final static int ASM_API_SELECTED = Opcodes.valueInt("ASM9"); public final static int JAVA_CLASS_VERSION = Opcodes.valueInt("V1_8"); public final static int JAVA_CLASS_LATEST_VERSION = ASMFactory.getLatestOPCodeVersion(); + public final static String JAVA_LATEST_VERSION = JAVA_VERSIONS.get(JAVA_VERSIONS.size() - 1); public static AnnotationVisitor createAnnotationVisitor(final int api) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.AnnotationVisitorImpl(api); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.AnnotationVisitorImpl(api); } else { throw ValidationException.notAvailableASMService(); @@ -58,9 +56,7 @@ public static AnnotationVisitor createAnnotationVisitor(final int api) { public static AnnotationVisitor createAnnotationVisitor(final int api, final AnnotationVisitor annotationVisitor) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.AnnotationVisitorImpl(api, annotationVisitor); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.AnnotationVisitorImpl(api, annotationVisitor); } else { throw ValidationException.notAvailableASMService(); @@ -69,9 +65,7 @@ public static AnnotationVisitor createAnnotationVisitor(final int api, final Ann public static FieldVisitor createFieldVisitor(final int api) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.FieldVisitorImpl(api); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.FieldVisitorImpl(api); } else { throw ValidationException.notAvailableASMService(); @@ -80,9 +74,7 @@ public static FieldVisitor createFieldVisitor(final int api) { public static FieldVisitor createFieldVisitor(final int api, final FieldVisitor fieldVisitor) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.FieldVisitorImpl(api, fieldVisitor); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.FieldVisitorImpl(api, fieldVisitor); } else { throw ValidationException.notAvailableASMService(); @@ -91,9 +83,7 @@ public static FieldVisitor createFieldVisitor(final int api, final FieldVisitor public static MethodVisitor createMethodVisitor(final int api) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.MethodVisitorImpl(api); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.MethodVisitorImpl(api); } else { throw ValidationException.notAvailableASMService(); @@ -102,9 +92,7 @@ public static MethodVisitor createMethodVisitor(final int api) { public static MethodVisitor createMethodVisitor(final int api, final MethodVisitor methodVisitor) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.MethodVisitorImpl(api, methodVisitor); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.MethodVisitorImpl(api, methodVisitor); } else { throw ValidationException.notAvailableASMService(); @@ -113,9 +101,7 @@ public static MethodVisitor createMethodVisitor(final int api, final MethodVisit public static ClassReader createClassReader(final InputStream inputStream) throws IOException { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.ClassReaderImpl(inputStream); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.ClassReaderImpl(inputStream); } else { throw ValidationException.notAvailableASMService(); @@ -124,9 +110,7 @@ public static ClassReader createClassReader(final InputStream inputStream) throw public static ClassReader createClassReader(final byte[] classFileBuffer) throws IOException { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.ClassReaderImpl(classFileBuffer); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.ClassReaderImpl(classFileBuffer); } else { throw ValidationException.notAvailableASMService(); @@ -135,9 +119,7 @@ public static ClassReader createClassReader(final byte[] classFileBuffer) throws public static ClassReader createClassReader(final byte[] classFileBuffer, final int classFileOffset, final int classFileLength) throws IOException { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.ClassReaderImpl(classFileBuffer, classFileOffset, classFileLength); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.ClassReaderImpl(classFileBuffer, classFileOffset, classFileLength); } else { throw ValidationException.notAvailableASMService(); @@ -146,9 +128,7 @@ public static ClassReader createClassReader(final byte[] classFileBuffer, final public static ClassReader createClassReader(final InputStream inputStream, final boolean checkClassVersion) throws IOException { String asmService = ASMFactory.getAsmService(); - if (!checkClassVersion || ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.ClassReaderImpl(inputStream, checkClassVersion); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.ClassReaderImpl(inputStream); } else { throw ValidationException.notAvailableASMService(); @@ -157,9 +137,7 @@ public static ClassReader createClassReader(final InputStream inputStream, final public static ClassWriter createClassWriter() { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.ClassWriterImpl(); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.ClassWriterImpl(); } else { throw ValidationException.notAvailableASMService(); @@ -168,9 +146,7 @@ public static ClassWriter createClassWriter() { public static ClassWriter createClassWriter(final int flags) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.ClassWriterImpl(flags); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.ClassWriterImpl(flags); } else { throw ValidationException.notAvailableASMService(); @@ -179,9 +155,7 @@ public static ClassWriter createClassWriter(final int flags) { public static ClassWriter createClassWriter(final ClassReader classReader, final int flags) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.ClassWriterImpl(classReader, flags); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.ClassWriterImpl(classReader, flags); } else { throw ValidationException.notAvailableASMService(); @@ -190,9 +164,7 @@ public static ClassWriter createClassWriter(final ClassReader classReader, final public static ClassVisitor createClassVisitor(final int api) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.ClassVisitorImpl(api); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.ClassVisitorImpl(api); } else { throw ValidationException.notAvailableASMService(); @@ -201,9 +173,7 @@ public static ClassVisitor createClassVisitor(final int api) { public static ClassVisitor createClassVisitor(final int api, final ClassVisitor classVisitor) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.ClassVisitorImpl(api, classVisitor); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.ClassVisitorImpl(api, classVisitor); } else { throw ValidationException.notAvailableASMService(); @@ -212,9 +182,7 @@ public static ClassVisitor createClassVisitor(final int api, final ClassVisitor public static Type createType(final Class clazz) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.TypeImpl(clazz); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.TypeImpl(clazz); } else { throw ValidationException.notAvailableASMService(); @@ -223,9 +191,7 @@ public static Type createType(final Class clazz) { public static Type createType(final String typeDescriptor) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.TypeImpl(typeDescriptor); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.TypeImpl(typeDescriptor); } else { throw ValidationException.notAvailableASMService(); @@ -234,9 +200,7 @@ public static Type createType(final String typeDescriptor) { public static Type createVoidType() { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.TypeImpl((Class)null); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.TypeImpl((Class)null); } else { throw ValidationException.notAvailableASMService(); @@ -245,9 +209,7 @@ public static Type createVoidType() { public static Label createLabel() { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.LabelImpl(); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.LabelImpl(); } else { throw ValidationException.notAvailableASMService(); @@ -256,9 +218,7 @@ public static Label createLabel() { public static SerialVersionUIDAdder createSerialVersionUIDAdder(final ClassVisitor classVisitor) { String asmService = ASMFactory.getAsmService(); - if (ASM_SERVICE_ECLIPSELINK.equals(asmService)) { - return new org.eclipse.persistence.asm.internal.platform.eclipselink.SerialVersionUIDAdderImpl(classVisitor); - } else if (ASM_SERVICE_OW2.equals(asmService)) { + if (ASM_SERVICE_OW2.equals(asmService)) { return new org.eclipse.persistence.asm.internal.platform.ow2.SerialVersionUIDAdderImpl(classVisitor); } else { throw ValidationException.notAvailableASMService(); @@ -268,10 +228,7 @@ public static SerialVersionUIDAdder createSerialVersionUIDAdder(final ClassVisit public static String getAsmService() { String asmService = PrivilegedAccessHelper.getSystemProperty(SystemProperties.ASM_SERVICE); if (asmService != null) { - if (ASM_SERVICE_ECLIPSELINK.equals(asmService) && isASMImplementationAvailable(ASM_ECLIPSELINK_CLASS_VISITOR)) { - LOG.finest("EclipseLink ASM implementation is used."); - return asmService; - } else if (ASM_SERVICE_OW2.equals(asmService) && isASMImplementationAvailable(ASM_OW2_CLASS_VISITOR)) { + if (ASM_SERVICE_OW2.equals(asmService) && isASMImplementationAvailable(ASM_OW2_CLASS_VISITOR)) { LOG.finest("OW2 ASM implementation is used."); return asmService; } else { @@ -279,10 +236,7 @@ public static String getAsmService() { } } //Fallback to default if ASM service is not specified - if (isASMImplementationAvailable(ASM_ECLIPSELINK_CLASS_VISITOR)) { - LOG.finest("EclipseLink ASM implementation is used."); - return ASM_SERVICE_ECLIPSELINK; - } else if (isASMImplementationAvailable(ASM_OW2_CLASS_VISITOR)) { + if (isASMImplementationAvailable(ASM_OW2_CLASS_VISITOR)) { LOG.finest("OW2 ASM implementation is used."); return ASM_SERVICE_OW2; } else { @@ -300,19 +254,7 @@ private static boolean isASMImplementationAvailable(String className) { } static int getLatestOPCodeVersion() { - final Map versionMap = new LinkedHashMap<>(); - Pattern searchPattern = Pattern.compile("^V\\d((_\\d)?|\\d*)"); - try { - Class opcodesClazz = Opcodes.getOpcodesClass(); - for (Field f : opcodesClazz.getDeclaredFields()) { - if (searchPattern.matcher(f.getName()).matches()) { - versionMap.put(f.getName().replace("V","").replace('_', '.'), f.getInt(opcodesClazz)); - } - } - } catch (IllegalAccessException ex) { - LOG.log(SessionLog.SEVERE, "Error Java versions map from Opcodes.class fields.", ex); - throw new RuntimeException(ex); - } + final Map versionMap = getVersionMap(); final List versions = new ArrayList(versionMap.keySet()); final String oldest = versions.get(0); final String latest = versions.get(versions.size() - 1); @@ -358,4 +300,21 @@ public String run() { } return version; } + + static Map getVersionMap() { + final Map versionMap = new LinkedHashMap<>(); + Pattern searchPattern = Pattern.compile("^V\\d((_\\d)?|\\d*)"); + try { + Class opcodesClazz = Opcodes.getOpcodesClass(); + for (Field f : opcodesClazz.getDeclaredFields()) { + if (searchPattern.matcher(f.getName()).matches()) { + versionMap.put(f.getName().replace("V", "").replace('_', '.'), f.getInt(opcodesClazz)); + } + } + } catch (IllegalAccessException ex) { + LOG.log(SessionLog.SEVERE, "Error Java versions map from Opcodes.class fields.", ex); + throw new RuntimeException(ex); + } + return versionMap; + } } diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ClassReader.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ClassReader.java index 7d7382263bd..448e462dcfd 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ClassReader.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ClassReader.java @@ -21,14 +21,12 @@ public abstract class ClassReader { - private final static String ASM_CLASSREADER_ECLIPSELINK = "org.eclipse.persistence.internal.libraries.asm.ClassReader"; private final static String ASM_CLASSREADER_OW2 = "org.objectweb.asm.ClassReader"; private final static Map ASM_CLASSREADER_MAP = new HashMap<>(); static { ASM_CLASSREADER_MAP.put(ASMFactory.ASM_SERVICE_OW2, ASM_CLASSREADER_OW2); - ASM_CLASSREADER_MAP.put(ASMFactory.ASM_SERVICE_ECLIPSELINK, ASM_CLASSREADER_ECLIPSELINK); } public static int valueInt(String fieldName) { diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ClassWriter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ClassWriter.java index 7d84872ad66..26da0dab2ba 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ClassWriter.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/ClassWriter.java @@ -21,14 +21,12 @@ public abstract class ClassWriter extends ClassVisitor { - private final static String ASM_CLASSWRITER_ECLIPSELINK = "org.eclipse.persistence.internal.libraries.asm.ClassWriter"; private final static String ASM_CLASSWRITER_OW2 = "org.objectweb.asm.ClassWriter"; private final static Map ASM_CLASSWRITER_MAP = new HashMap<>(); static { ASM_CLASSWRITER_MAP.put(ASMFactory.ASM_SERVICE_OW2, ASM_CLASSWRITER_OW2); - ASM_CLASSWRITER_MAP.put(ASMFactory.ASM_SERVICE_ECLIPSELINK, ASM_CLASSWRITER_ECLIPSELINK); } private ClassWriter cw; diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkASMClassWriter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkASMClassWriter.java index 8a5000c7936..de498178ff3 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkASMClassWriter.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkASMClassWriter.java @@ -35,13 +35,13 @@ public EclipseLinkASMClassWriter(final int flags) { * Visits the header of the class with {@code version} set * equal to currently running Java SE version. * - * @param access the class's access flags (see {@link org.eclipse.persistence.internal.libraries.asm.Opcodes}). This parameter also indicates if - * the class is deprecated {@link org.eclipse.persistence.internal.libraries.asm.Opcodes#ACC_DEPRECATED} or a record {@link - * org.eclipse.persistence.internal.libraries.asm.Opcodes#ACC_RECORD}. - * @param name the internal name of the class (see {@link org.eclipse.persistence.internal.libraries.asm.Type#getInternalName()}). + * @param access the class's access flags (see {@link org.objectweb.asm.Opcodes}). This parameter also indicates if + * the class is deprecated {@link org.objectweb.asm.Opcodes#ACC_DEPRECATED} or a record {@link + * org.objectweb.asm.Opcodes#ACC_RECORD}. + * @param name the internal name of the class (see {@link org.objectweb.asm.Type#getInternalName()}). * @param signature the signature of this class. May be {@literal null} if the class is not a * generic one, and does not extend or implement generic classes or interfaces. - * @param superName the internal of name of the super class (see {@link org.eclipse.persistence.internal.libraries.asm.Type#getInternalName()}). + * @param superName the internal of name of the super class (see {@link org.objectweb.asm.Type#getInternalName()}). * For interfaces, the super class is {@link Object}. May be {@literal null}, but only for the * {@link Object} class. * @param interfaces the internal names of the class's interfaces (see {@link @@ -92,8 +92,6 @@ public String getCommonSuperClass(final String type1, final String type2) { public T unwrap() { if (this.classWriter instanceof org.eclipse.persistence.asm.internal.platform.ow2.ClassWriterImpl) { return (T)((org.eclipse.persistence.asm.internal.platform.ow2.ClassWriterImpl)this.classWriter).getInternal(this.customClassWriter); - } else if (this.classWriter instanceof org.eclipse.persistence.asm.internal.platform.eclipselink.ClassWriterImpl) { - return (T)((org.eclipse.persistence.asm.internal.platform.eclipselink.ClassWriterImpl)this.classWriter).getInternal(this.customClassWriter); } else { return null; } diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkAnnotationVisitor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkAnnotationVisitor.java index 5d91f185c3d..3d302dd53c8 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkAnnotationVisitor.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkAnnotationVisitor.java @@ -55,8 +55,6 @@ public void visitEnd() { public T unwrap() { if (this.annotationVisitor instanceof org.eclipse.persistence.asm.internal.platform.ow2.AnnotationVisitorImpl) { return (T)((org.eclipse.persistence.asm.internal.platform.ow2.AnnotationVisitorImpl)this.annotationVisitor).getInternal(this.customAnnotationVisitor); - } else if (this.annotationVisitor instanceof org.eclipse.persistence.asm.internal.platform.eclipselink.AnnotationVisitorImpl) { - return (T)((org.eclipse.persistence.asm.internal.platform.eclipselink.AnnotationVisitorImpl)this.annotationVisitor).getInternal(this.customAnnotationVisitor); } else { return null; } diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkClassReader.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkClassReader.java index 58d438c9513..4cf4d610add 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkClassReader.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkClassReader.java @@ -75,8 +75,6 @@ public String[] getInterfaces() { public T unwrap() { if (this.classReader instanceof org.eclipse.persistence.asm.internal.platform.ow2.ClassReaderImpl) { return (T)((org.eclipse.persistence.asm.internal.platform.ow2.ClassReaderImpl)this.classReader).getInternal(); - } else if (this.classReader instanceof org.eclipse.persistence.asm.internal.platform.eclipselink.ClassReaderImpl) { - return (T)((org.eclipse.persistence.asm.internal.platform.eclipselink.ClassReaderImpl)this.classReader).getInternal(); } else { return null; } diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkFieldVisitor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkFieldVisitor.java index f7f2da6b136..7604f2853ef 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkFieldVisitor.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkFieldVisitor.java @@ -39,8 +39,6 @@ public AnnotationVisitor visitAnnotation(String descriptor, boolean visible) { public T unwrap() { if (this.fieldVisitor instanceof org.eclipse.persistence.asm.internal.platform.ow2.FieldVisitorImpl) { return (T)((org.eclipse.persistence.asm.internal.platform.ow2.FieldVisitorImpl)this.fieldVisitor).getInternal(this.customFieldVisitor); - } else if (this.fieldVisitor instanceof org.eclipse.persistence.asm.internal.platform.eclipselink.FieldVisitorImpl) { - return (T)((org.eclipse.persistence.asm.internal.platform.eclipselink.FieldVisitorImpl)this.fieldVisitor).getInternal(this.customFieldVisitor); } else { return null; } diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkMethodVisitor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkMethodVisitor.java index 28bb29d5a5e..1b06ffa0f1e 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkMethodVisitor.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/EclipseLinkMethodVisitor.java @@ -235,8 +235,6 @@ public AnnotationVisitor visitAnnotationSuper(String descriptor, boolean visible public T unwrap() { if (this.methodVisitor instanceof org.eclipse.persistence.asm.internal.platform.ow2.MethodVisitorImpl) { return (T)((org.eclipse.persistence.asm.internal.platform.ow2.MethodVisitorImpl)this.methodVisitor).getInternal(this.customMethodVisitor); - } else if (this.methodVisitor instanceof org.eclipse.persistence.asm.internal.platform.eclipselink.MethodVisitorImpl) { - return (T)((org.eclipse.persistence.asm.internal.platform.eclipselink.MethodVisitorImpl)this.methodVisitor).getInternal(this.customMethodVisitor); } else { return null; } diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/Opcodes.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/Opcodes.java index fcfc2a0fceb..02c36c9c443 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/Opcodes.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/Opcodes.java @@ -22,14 +22,12 @@ public class Opcodes { - private final static String ASM_OPCCODES_ECLIPSELINK = "org.eclipse.persistence.internal.libraries.asm.Opcodes"; private final static String ASM_OPCCODES_OW2 = "org.objectweb.asm.Opcodes"; private final static Map ASM_OPCCODES_MAP = new HashMap<>(); static { ASM_OPCCODES_MAP.put(ASMFactory.ASM_SERVICE_OW2, ASM_OPCCODES_OW2); - ASM_OPCCODES_MAP.put(ASMFactory.ASM_SERVICE_ECLIPSELINK, ASM_OPCCODES_ECLIPSELINK); } public static int valueInt(String fieldName) { diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/Type.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/Type.java index 34f0e6e5849..09a544dd726 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/Type.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/Type.java @@ -23,14 +23,12 @@ public abstract class Type { //This block must be first - begin - private final static String ASM_TYPE_ECLIPSELINK = "org.eclipse.persistence.internal.libraries.asm.Type"; private final static String ASM_TYPE_OW2 = "org.objectweb.asm.Type"; private final static Map ASM_TYPE_MAP = new HashMap<>(); static { ASM_TYPE_MAP.put(ASMFactory.ASM_SERVICE_OW2, ASM_TYPE_OW2); - ASM_TYPE_MAP.put(ASMFactory.ASM_SERVICE_ECLIPSELINK, ASM_TYPE_ECLIPSELINK); } //This block must be first - end @@ -66,9 +64,7 @@ public static String getMethodDescriptor(final Type returnType, final Type... ar public static String getDescriptor(final Class clazz) { Type type = ASMFactory.createType(clazz); - if (type instanceof org.eclipse.persistence.asm.internal.platform.eclipselink.TypeImpl) { - return ((org.eclipse.persistence.internal.libraries.asm.Type)ASMFactory.createType(clazz).unwrap()).getDescriptor(clazz); - } else if (type instanceof org.eclipse.persistence.asm.internal.platform.ow2.TypeImpl) { + if (type instanceof org.eclipse.persistence.asm.internal.platform.ow2.TypeImpl) { return ((org.objectweb.asm.Type)ASMFactory.createType(clazz).unwrap()).getDescriptor(clazz); } else { return null; @@ -77,9 +73,7 @@ public static String getDescriptor(final Class clazz) { public static String getInternalName(final Class clazz) { Type type = ASMFactory.createType(clazz); - if (type instanceof org.eclipse.persistence.asm.internal.platform.eclipselink.TypeImpl) { - return ((org.eclipse.persistence.internal.libraries.asm.Type)ASMFactory.createType(clazz).unwrap()).getInternalName(clazz); - } else if (type instanceof org.eclipse.persistence.asm.internal.platform.ow2.TypeImpl) { + if (type instanceof org.eclipse.persistence.asm.internal.platform.ow2.TypeImpl) { return ((org.objectweb.asm.Type)ASMFactory.createType(clazz).unwrap()).getInternalName(clazz); } else { return null; @@ -88,9 +82,7 @@ public static String getInternalName(final Class clazz) { public static Object getTypeClassName(Object value) { try { - if (Class.forName(ASM_TYPE_ECLIPSELINK).isInstance(value)) { - return ((org.eclipse.persistence.internal.libraries.asm.Type) value).getClassName(); - } else if (Class.forName(ASM_TYPE_OW2).isInstance(value)) { + if (Class.forName(ASM_TYPE_OW2).isInstance(value)) { return ((org.objectweb.asm.Type) value).getClassName(); } else { return null; diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/AnnotationVisitorImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/AnnotationVisitorImpl.java deleted file mode 100644 index ddca156d492..00000000000 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/AnnotationVisitorImpl.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0, - * or the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause - */ - -// Contributors: -// Oracle - initial API and implementation -package org.eclipse.persistence.asm.internal.platform.eclipselink; - -import org.eclipse.persistence.internal.libraries.asm.AnnotationVisitor; - -public class AnnotationVisitorImpl extends org.eclipse.persistence.asm.AnnotationVisitor { - - private class ELAnnotationVisitor extends AnnotationVisitor { - - public ELAnnotationVisitor(int api) { - super(api); - } - - public ELAnnotationVisitor(int api, final AnnotationVisitor annotationVisitor) { - super(api, annotationVisitor); - } - - @Override - public void visit(String name, Object value) { - if (customAnnotationVisitor == null) { - super.visit(name, value); - } else { - customAnnotationVisitor.visit(name, value); - } - } - - @Override - public void visitEnum(String name, String desc, String value) { - if (customAnnotationVisitor == null) { - super.visitEnum(name, desc, value); - } else { - customAnnotationVisitor.visitEnum(name, desc, value); - } - } - - @Override - public AnnotationVisitor visitAnnotation(final String name, final String descriptor) { - if (customAnnotationVisitor == null) { - return super.visitAnnotation(descriptor, descriptor); - } else { - org.eclipse.persistence.asm.AnnotationVisitor annotationVisitor = customAnnotationVisitor.visitAnnotation(name, descriptor); - //In case of lazy like org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass.m_isLazy == true annotationVisitor is null - return (annotationVisitor != null) ? annotationVisitor.unwrap() : null; - } - } - - @Override - public AnnotationVisitor visitArray(String name) { - if (customAnnotationVisitor == null) { - return super.visitArray(name); - } else { - org.eclipse.persistence.asm.AnnotationVisitor annotationVisitor = customAnnotationVisitor.visitArray(name); - //In case of lazy like org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass.m_isLazy == true annotationVisitor is null - return (annotationVisitor != null) ? annotationVisitor.unwrap() : null; - } - } - - @Override - public void visitEnd() { - if (customAnnotationVisitor == null) { - super.visitEnd(); - } else { - //should lead into infinite loop if visitEnd() is not implemented in customClassVisitor - customAnnotationVisitor.visitEnd(); - } - } - } - - AnnotationVisitor elAnnotationVisitor; - - public AnnotationVisitorImpl(final int api) { - this.elAnnotationVisitor = new ELAnnotationVisitor(api); - } - - public AnnotationVisitorImpl(final int api, final org.eclipse.persistence.asm.AnnotationVisitor annotationVisitor) { - this.elAnnotationVisitor = new ELAnnotationVisitor(api, (annotationVisitor != null) ? annotationVisitor.unwrap() : null); - } - - public AnnotationVisitorImpl(AnnotationVisitor annotationVisitor) { - this.elAnnotationVisitor = annotationVisitor; - } - - public AnnotationVisitor getInternal(final org.eclipse.persistence.asm.AnnotationVisitor annotationVisitor) { - this.customAnnotationVisitor = annotationVisitor; - return this.elAnnotationVisitor; - } - - @Override - public void visit(String name, Object value) { - this.elAnnotationVisitor.visit(name, value); - } - - @Override - public void visitEnum(String name, String desc, String value) { - this.elAnnotationVisitor.visitEnum(name, desc, value); - } - - @Override - public org.eclipse.persistence.asm.AnnotationVisitor visitAnnotation(String name, String desc) { - return new AnnotationVisitorImpl(this.elAnnotationVisitor.visitAnnotation(name, desc)); - } - - @Override - public org.eclipse.persistence.asm.AnnotationVisitor visitArray(String name) { - return new AnnotationVisitorImpl(this.elAnnotationVisitor.visitArray(name)); - } - - @Override - public void visitEnd() { - this.elAnnotationVisitor.visitEnd(); - } - - @Override - public T unwrap() { - return (T) this.elAnnotationVisitor; - } -} diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/AttributeImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/AttributeImpl.java deleted file mode 100644 index e113bd42583..00000000000 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/AttributeImpl.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0, - * or the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause - */ - -// Contributors: -// Oracle - initial API and implementation -package org.eclipse.persistence.asm.internal.platform.eclipselink; - -import org.eclipse.persistence.internal.libraries.asm.Attribute; - -public class AttributeImpl implements org.eclipse.persistence.asm.Attribute { - - private class ElAttribute extends Attribute { - - public ElAttribute(String type) { - super(type); - } - } - - private Attribute attribute; - - public AttributeImpl(Attribute attribute) { - this.attribute = attribute; - } - - public AttributeImpl(String type) { - this.attribute = new ElAttribute(type); - } - - @Override - public T unwrap() { - return (T)this.attribute; - } - -} diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/ClassReaderImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/ClassReaderImpl.java deleted file mode 100644 index f0ab889be9e..00000000000 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/ClassReaderImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0, - * or the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause - */ - -// Contributors: -// Oracle - initial API and implementation -package org.eclipse.persistence.asm.internal.platform.eclipselink; - -import org.eclipse.persistence.asm.Attribute; -import org.eclipse.persistence.asm.ClassVisitor; -import org.eclipse.persistence.internal.libraries.asm.ClassReader; -import org.eclipse.persistence.internal.libraries.asm.EclipseLinkClassReader; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; - -public class ClassReaderImpl extends org.eclipse.persistence.asm.ClassReader { - - private ClassReader elClassReader; - - public ClassReaderImpl(final InputStream inputStream) throws IOException { - elClassReader = new ClassReader(inputStream); - } - - public ClassReaderImpl(final InputStream inputStream, final boolean checkClassVersion) throws IOException { - if (checkClassVersion) { - elClassReader = new ClassReader(inputStream); - } else { - //EclipseLinkClassReader - elClassReader = new EclipseLinkClassReader(inputStream); - } - } - - public ClassReaderImpl(final byte[] classFileBuffer) throws IOException { - elClassReader = new ClassReader(classFileBuffer); - } - - public ClassReaderImpl(final byte[] classFileBuffer, final int classFileOffset, final int classFileLength) throws IOException { - elClassReader = new ClassReader(classFileBuffer, classFileOffset, classFileLength); - } - - public ClassReader getInternal() { - return this.elClassReader; - } - - @Override - public void accept(ClassVisitor classVisitor, int parsingOptions) { - elClassReader.accept(classVisitor.unwrap(), parsingOptions); - } - - @Override - public void accept(ClassVisitor classVisitor, Attribute[] attributePrototypes, int parsingOptions) { - org.eclipse.persistence.internal.libraries.asm.Attribute[] attributePrototypesUnwrap = Arrays.stream(attributePrototypes).map(value -> value.unwrap()).toArray(size -> new org.eclipse.persistence.internal.libraries.asm.Attribute[size]); - elClassReader.accept(classVisitor.unwrap(), attributePrototypesUnwrap, parsingOptions); - } - - @Override - public int getAccess() { - return elClassReader.getAccess(); - } - - @Override - public String getSuperName() { - return elClassReader.getSuperName(); - } - - @Override - public String[] getInterfaces() { - return elClassReader.getInterfaces(); - } - - @Override - public T unwrap() { - return (T)this.elClassReader; - } -} diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/ClassVisitorImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/ClassVisitorImpl.java deleted file mode 100644 index b9da6a1094c..00000000000 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/ClassVisitorImpl.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0, - * or the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause - */ - -// Contributors: -// Oracle - initial API and implementation -package org.eclipse.persistence.asm.internal.platform.eclipselink; - -import org.eclipse.persistence.asm.AnnotationVisitor; -import org.eclipse.persistence.asm.FieldVisitor; -import org.eclipse.persistence.asm.MethodVisitor; -import org.eclipse.persistence.internal.libraries.asm.ClassVisitor; - -public class ClassVisitorImpl extends org.eclipse.persistence.asm.ClassVisitor { - - private class ElClassVisitor extends ClassVisitor { - - public ElClassVisitor(final int api) { - super(api, null); - } - - public ElClassVisitor(final int api, final ClassVisitor classVisitor) { - super(api, classVisitor); - } - - @Override - public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { - if (customClassVisitor == null) { - super.visit(version, access, name, signature, superName, interfaces); - } else { - customClassVisitor.visit(version, access, name, signature, superName, interfaces); - } - } - - public void visitSuper(int version, int access, String name, String signature, String superName, String[] interfaces) { - super.visit(version, access, name, signature, superName, interfaces); - } - - @Override - public org.eclipse.persistence.internal.libraries.asm.AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { - if (customClassVisitor == null) { - return super.visitAnnotation(descriptor, visible); - } else { - AnnotationVisitor annotationVisitor = customClassVisitor.visitAnnotation(descriptor, visible); - //In case of lazy like org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass.m_isLazy == true annotationVisitor is null - return (annotationVisitor != null) ? annotationVisitor.unwrap() : null; - } - } - - public org.eclipse.persistence.internal.libraries.asm.AnnotationVisitor visitAnnotationSuper(final String descriptor, final boolean visible) { - return super.visitAnnotation(descriptor, visible); - } - - @Override - public org.eclipse.persistence.internal.libraries.asm.FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { - if (customClassVisitor == null) { - return super.visitField(access, name, desc, signature, value); - } else { - FieldVisitor fieldVisitor = customClassVisitor.visitField(access, name, desc, signature, value); - //In case of lazy like org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass.m_isLazy == true fieldVisitor is null - return (fieldVisitor != null) ? fieldVisitor.unwrap() : null; - } - } - - public org.eclipse.persistence.internal.libraries.asm.FieldVisitor visitFieldSuper(int access, String name, String desc, String signature, Object value) { - return super.visitField(access, name, desc, signature, value); - } - - @Override - public org.eclipse.persistence.internal.libraries.asm.MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - if (customClassVisitor == null) { - return super.visitMethod(access, name, desc, signature, exceptions); - } else { - MethodVisitor methodVisitor = customClassVisitor.visitMethod(access, name, desc, signature, exceptions); - //In case of lazy like org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass.m_isLazy == true methodVisitor is null - return (methodVisitor != null) ? methodVisitor.unwrap() : null; - } - } - - public org.eclipse.persistence.internal.libraries.asm.MethodVisitor visitMethodSuper(int access, String name, String desc, String signature, String[] exceptions) { - return super.visitMethod(access, name, desc, signature, exceptions); - } - - @Override - public void visitEnd() { - super.visitEnd(); - if (customClassVisitor != null) { - //should lead into infinite loop if visitEnd() is not implemented in customClassVisitor - customClassVisitor.visitEnd(); - } - } - } - - private ElClassVisitor elClassVisitor; - - public ClassVisitorImpl(final int api) { - super.cv = this; - this.elClassVisitor = new ElClassVisitor(api); - } - - public ClassVisitorImpl(final int api, final org.eclipse.persistence.asm.ClassVisitor classVisitor) { - super.cv = this; - this.elClassVisitor = new ElClassVisitor(api, (classVisitor != null) ? classVisitor.unwrap() : null); - } - - @Override - public void visit(int version, int access, String name, String signature, String superName, String[] interfaces) { - this.elClassVisitor.visit(version, access, name, signature, superName, interfaces); - } - - @Override - public void visitSuper(int version, int access, String name, String signature, String superName, String[] interfaces) { - this.elClassVisitor.visitSuper(version, access, name, signature, superName, interfaces); - } - - @Override - public AnnotationVisitor visitAnnotationSuper(final String descriptor, final boolean visible) { - return new AnnotationVisitorImpl(this.elClassVisitor.visitAnnotationSuper(descriptor, visible)); - } - - @Override - public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) { - return new FieldVisitorImpl(this.elClassVisitor.visitField(access, name, desc, signature, value)); - } - - @Override - public FieldVisitor visitFieldSuper(int access, String name, String desc, String signature, Object value) { - return new FieldVisitorImpl(this.elClassVisitor.visitFieldSuper(access, name, desc, signature, value)); - } - - @Override - public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { - return new MethodVisitorImpl(this.elClassVisitor.visitMethod(access, name, desc, signature, exceptions)); - } - - @Override - public MethodVisitor visitMethodSuper(int access, String name, String desc, String signature, String[] exceptions) { - return new MethodVisitorImpl(this.elClassVisitor.visitMethodSuper(access, name, desc, signature, exceptions)); - } - - @Override - public void visitEnd() { - this.elClassVisitor.visitEnd(); - } - - @Override - public T unwrap() { - return (T)this.elClassVisitor; - } -} diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/ClassWriterImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/ClassWriterImpl.java deleted file mode 100644 index 39b4def8527..00000000000 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/ClassWriterImpl.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0, - * or the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause - */ - -// Contributors: -// Oracle - initial API and implementation -package org.eclipse.persistence.asm.internal.platform.eclipselink; - -import org.eclipse.persistence.asm.ASMFactory; -import org.eclipse.persistence.asm.AnnotationVisitor; -import org.eclipse.persistence.asm.FieldVisitor; -import org.eclipse.persistence.asm.MethodVisitor; -import org.eclipse.persistence.internal.libraries.asm.ClassReader; -import org.eclipse.persistence.internal.libraries.asm.ClassWriter; - -public class ClassWriterImpl extends org.eclipse.persistence.asm.ClassWriter { - - private class ElClassWriter extends ClassWriter { - - public ElClassWriter(final int flags) { - super(flags); - } - - public ElClassWriter(final ClassReader classReader, final int flags) { - super(classReader, flags); - } - - @Override - protected String getCommonSuperClass(final String type1, final String type2) { - if (customClassWriter == null) { - return super.getCommonSuperClass(type1, type2); - } else { - return customClassWriter.getCommonSuperClass(type1, type2); - } - } - - public org.eclipse.persistence.internal.libraries.asm.AnnotationVisitor visitAnnotationSuper(final String descriptor, final boolean visible) { - return super.visitAnnotation(descriptor, visible); - } - - public org.eclipse.persistence.internal.libraries.asm.FieldVisitor visitFieldSuper(int access, String name, String desc, String signature, Object value) { - return super.visitField(access, name, desc, signature, value); - } - - public org.eclipse.persistence.internal.libraries.asm.MethodVisitor visitMethodSuper(int access, String name, String desc, String signature, String[] exceptions) { - return super.visitMethod(access, name, desc, signature, exceptions); - } - - @Override - public byte[] toByteArray() { - if (customClassWriter == null) { - return super.toByteArray(); - } else { - return customClassWriter.toByteArray(); - } - } - - public byte[] toByteArraySuper() { - return super.toByteArray(); - } - } - - private ElClassWriter elClassWriter; - - public ClassWriterImpl() { - elClassWriter = new ElClassWriter(org.eclipse.persistence.internal.libraries.asm.ClassWriter.COMPUTE_FRAMES); - } - - public ClassWriterImpl(final int flags) { - this(null, flags); - } - - public ClassWriterImpl(final org.eclipse.persistence.asm.ClassReader classReader, final int flags) { - elClassWriter = new ElClassWriter((classReader != null) ? classReader.unwrap() : null, flags); - } - - public ClassWriter getInternal(final org.eclipse.persistence.asm.ClassWriter classWriter) { - this.customClassWriter = classWriter; - return this.elClassWriter; - } - - @Override - public String getCommonSuperClass(final String type1, final String type2) { - return this.elClassWriter.getCommonSuperClass(type1, type2); - } - - @Override - public void visit(final int access, final String name, final String signature, final String superName, final String[] interfaces) { - this.visit(ASMFactory.JAVA_CLASS_VERSION, access, name, signature, superName, interfaces); - } - - @Override - public void visit(final int version, final int access, final String name, final String signature, final String superName, final String[] interfaces) { - this.elClassWriter.visit(version, access, name, signature, superName, interfaces); - } - - @Override - public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { - return new AnnotationVisitorImpl(elClassWriter.visitAnnotation(descriptor, visible)); - } - - @Override - public AnnotationVisitor visitAnnotationSuper(final String descriptor, final boolean visible) { - return new AnnotationVisitorImpl(elClassWriter.visitAnnotationSuper(descriptor, visible)); - } - - @Override - public FieldVisitor visitField(final int access, final String name, final String descriptor, final String signature, final Object value) { - return new FieldVisitorImpl(elClassWriter.visitField(access, name, descriptor, signature, value)); - } - - @Override - public FieldVisitor visitFieldSuper(final int access, final String name, final String descriptor, final String signature, final Object value) { - return new FieldVisitorImpl(elClassWriter.visitFieldSuper(access, name, descriptor, signature, value)); - } - - @Override - public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) { - return new MethodVisitorImpl(elClassWriter.visitMethod(access, name, descriptor, signature, exceptions)); - } - - @Override - public MethodVisitor visitMethodSuper(int access, String name, String descriptor, String signature, String[] exceptions) { - return new MethodVisitorImpl(elClassWriter.visitMethodSuper(access, name, descriptor, signature, exceptions)); - } - - @Override - public void visitEnd() { - elClassWriter.visitEnd(); - } - - @Override - public byte[] toByteArray() { - return elClassWriter.toByteArray(); - } - - @Override - public byte[] toByteArraySuper() { - return elClassWriter.toByteArraySuper(); - } - - @Override - public T unwrap() { - return (T)this.elClassWriter; - } -} diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/FieldVisitorImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/FieldVisitorImpl.java deleted file mode 100644 index 2b617654a8a..00000000000 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/FieldVisitorImpl.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0, - * or the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause - */ - -// Contributors: -// Oracle - initial API and implementation -package org.eclipse.persistence.asm.internal.platform.eclipselink; - -import org.eclipse.persistence.asm.AnnotationVisitor; -import org.eclipse.persistence.internal.libraries.asm.FieldVisitor; - -public class FieldVisitorImpl extends org.eclipse.persistence.asm.FieldVisitor { - - private class ELFieldVisitor extends FieldVisitor { - - public ELFieldVisitor(final int api) { - super(api); - } - - public ELFieldVisitor(final int api, final FieldVisitor fieldVisitor) { - super(api, fieldVisitor); - } - - @Override - public org.eclipse.persistence.internal.libraries.asm.AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { - if (customFieldVisitor == null) { - return super.visitAnnotation(descriptor, visible); - } else { - AnnotationVisitor annotationVisitor = customFieldVisitor.visitAnnotation(descriptor, visible); - //In case of lazy like org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass.m_isLazy == true annotationVisitor is null - return (annotationVisitor != null) ? annotationVisitor.unwrap() : null; - } - } - - @Override - public void visitEnd() { - if (customFieldVisitor == null) { - super.visitEnd(); - } else { - //should lead into infinite loop if visitEnd() is not implemented in customClassVisitor - customFieldVisitor.visitEnd(); - } - } - } - - FieldVisitor elFieldVisitor; - - public FieldVisitorImpl(FieldVisitor fieldVisitor) { - this.elFieldVisitor = fieldVisitor; - } - - public FieldVisitorImpl(final int api) { - this.elFieldVisitor = new ELFieldVisitor(api); - } - - public FieldVisitorImpl(final int api, final org.eclipse.persistence.asm.FieldVisitor fieldVisitor) { - this.elFieldVisitor = new ELFieldVisitor(api, (fieldVisitor != null) ? fieldVisitor.unwrap() : null); - } - - public FieldVisitor getInternal(final org.eclipse.persistence.asm.FieldVisitor fieldVisitor) { - this.customFieldVisitor = fieldVisitor; - return this.elFieldVisitor; - } - - @Override - public void visitEnd() { - elFieldVisitor.visitEnd(); - } - - @Override - public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { - return new AnnotationVisitorImpl(elFieldVisitor.visitAnnotation(descriptor, visible)); - } - - @Override - public T unwrap() { - return (T)this.elFieldVisitor; - } -} diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/LabelImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/LabelImpl.java deleted file mode 100644 index 0fe53b71bce..00000000000 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/LabelImpl.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0, - * or the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause - */ - -// Contributors: -// Oracle - initial API and implementation -package org.eclipse.persistence.asm.internal.platform.eclipselink; - -import org.eclipse.persistence.internal.libraries.asm.Label; - -public class LabelImpl implements org.eclipse.persistence.asm.Label { - - private class ELLabel extends Label { - - private org.eclipse.persistence.asm.Label outerObject; - - public ELLabel(org.eclipse.persistence.asm.Label outerObject) { - this.outerObject = outerObject; - } - } - - private Label elLabel; - - public LabelImpl() { - this.elLabel = new ELLabel(this); - } - - public LabelImpl(Label label) { - this.elLabel = label; - } - - @Override - public T unwrap() { - return (T)this.elLabel; - } - -} diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/MethodVisitorImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/MethodVisitorImpl.java deleted file mode 100644 index d304a03271e..00000000000 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/MethodVisitorImpl.java +++ /dev/null @@ -1,530 +0,0 @@ -/* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0, - * or the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause - */ - -// Contributors: -// Oracle - initial API and implementation -package org.eclipse.persistence.asm.internal.platform.eclipselink; - -import org.eclipse.persistence.asm.AnnotationVisitor; -import org.eclipse.persistence.asm.Attribute; -import org.eclipse.persistence.asm.Label; -import org.eclipse.persistence.internal.libraries.asm.MethodVisitor; - -import java.util.Arrays; - -public class MethodVisitorImpl extends org.eclipse.persistence.asm.MethodVisitor { - - private class ELMethodVisitor extends MethodVisitor { - - public ELMethodVisitor(final int api) { - super(api); - } - - public ELMethodVisitor(final int api, final MethodVisitor methodVisitor) { - super(api, methodVisitor); - } - - @Override - public org.eclipse.persistence.internal.libraries.asm.AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { - if (customMethodVisitor == null) { - return super.visitAnnotation(descriptor, visible); - } else { - AnnotationVisitor annotationVisitor = customMethodVisitor.visitAnnotation(descriptor, visible); - //In case of lazy like org.eclipse.persistence.internal.jpa.metadata.accessors.objects.MetadataClass.m_isLazy == true annotationVisitor is null - return (annotationVisitor != null) ? annotationVisitor.unwrap() : null; - } - } - - @Override - public void visitInsn(final int opcode) { - if (customMethodVisitor == null) { - super.visitInsn(opcode); - } else { - customMethodVisitor.visitInsn(opcode); - } - } - - public void visitInsnSuper(final int opcode) { - super.visitInsn(opcode); - } - - @Override - public void visitIntInsn(final int opcode, final int operand) { - if (customMethodVisitor == null) { - super.visitIntInsn(opcode, operand); - } else { - customMethodVisitor.visitIntInsn(opcode, operand); - } - } - - public void visitIntInsnSuper(final int opcode, final int operand) { - super.visitIntInsn(opcode, operand); - } - - @Override - public void visitVarInsn(final int opcode, final int var) { - if (customMethodVisitor == null) { - super.visitVarInsn(opcode, var); - } else { - customMethodVisitor.visitVarInsn(opcode, var); - } - } - - public void visitVarInsnSuper(final int opcode, final int var) { - super.visitVarInsn(opcode, var); - } - - @Override - public void visitTypeInsn(final int opcode, final String desc) { - if (customMethodVisitor == null) { - super.visitTypeInsn(opcode, desc); - } else { - customMethodVisitor.visitTypeInsn(opcode, desc); - } - } - - public void visitTypeInsnSuper(final int opcode, final String desc) { - super.visitTypeInsn(opcode, desc); - } - - @Override - public void visitFieldInsn(final int opcode, final String owner, final String name, final String descriptor) { - if (customMethodVisitor == null) { - super.visitFieldInsn(opcode, owner, name, descriptor); - } else { - customMethodVisitor.visitFieldInsn(opcode, owner, name, descriptor); - } - } - - public void visitFieldInsnSuper(final int opcode, final String owner, final String name, final String descriptor) { - super.visitFieldInsn(opcode, owner, name, descriptor); - } - - @Override - public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc, boolean intf) { - if (customMethodVisitor == null) { - super.visitMethodInsn(opcode, owner, name, desc, intf); - } else { - customMethodVisitor.visitMethodInsn(opcode, owner, name, desc, intf); - } - } - - public void visitMethodInsnSuper(final int opcode, final String owner, final String name, final String desc, boolean intf) { - super.visitMethodInsn(opcode, owner, name, desc, intf); - } - - @Override - public void visitJumpInsn(final int opcode, final org.eclipse.persistence.internal.libraries.asm.Label label) { - if (customMethodVisitor == null) { - super.visitJumpInsn(opcode, label); - } else { - customMethodVisitor.visitJumpInsn(opcode, new LabelImpl(label)); - } - } - - public void visitJumpInsnSuper(final int opcode, final org.eclipse.persistence.internal.libraries.asm.Label label) { - super.visitJumpInsn(opcode, label); - } - - @Override - public void visitLabel(final org.eclipse.persistence.internal.libraries.asm.Label label) { - if (customMethodVisitor == null) { - super.visitLabel(label); - } else { - customMethodVisitor.visitLabel(new LabelImpl(label)); - } - } - - public void visitLabelSuper(final org.eclipse.persistence.internal.libraries.asm.Label label) { - super.visitLabel(label); - } - - @Override - public void visitLdcInsn(final Object cst) { - if (customMethodVisitor == null) { - super.visitLdcInsn(cst); - } else { - customMethodVisitor.visitLdcInsn(cst); - } - } - - public void visitLdcInsnSuper(final Object cst) { - super.visitLdcInsn(cst); - } - - @Override - public void visitIincInsn(final int var, final int increment) { - if (customMethodVisitor == null) { - super.visitIincInsn(var, increment); - } else { - customMethodVisitor.visitIincInsn(var, increment); - } - } - - public void visitIincInsnSuper(final int var, final int increment) { - super.visitIincInsn(var, increment); - } - - @Override - public void visitTableSwitchInsn(final int min, final int max, final org.eclipse.persistence.internal.libraries.asm.Label dflt, final org.eclipse.persistence.internal.libraries.asm.Label... labels) { - if (customMethodVisitor == null) { - super.visitTableSwitchInsn(min, max, dflt, labels); - } else { - LabelImpl[] labelsImpl = Arrays.stream(labels).map(value -> new LabelImpl(value)).toArray(size -> new LabelImpl[size]); - customMethodVisitor.visitTableSwitchInsn(min, max, new LabelImpl(dflt), labelsImpl); - } - } - - public void visitTableSwitchInsnSuper(final int min, final int max, final org.eclipse.persistence.internal.libraries.asm.Label dflt, final org.eclipse.persistence.internal.libraries.asm.Label... labels) { - super.visitTableSwitchInsn(min, max, dflt, labels); - } - - @Override - public void visitLookupSwitchInsn(final org.eclipse.persistence.internal.libraries.asm.Label dflt, final int keys[], final org.eclipse.persistence.internal.libraries.asm.Label labels[]) { - if (customMethodVisitor == null) { - super.visitLookupSwitchInsn(dflt, keys, labels); - } else { - LabelImpl[] labelsImpl = Arrays.stream(labels).map(value -> new LabelImpl(value)).toArray(size -> new LabelImpl[size]); - customMethodVisitor.visitLookupSwitchInsn (new LabelImpl(dflt), keys, labelsImpl); - } - } - - public void visitLookupSwitchInsnSuper(final org.eclipse.persistence.internal.libraries.asm.Label dflt, final int keys[], final org.eclipse.persistence.internal.libraries.asm.Label labels[]) { - super.visitLookupSwitchInsn(dflt, keys, labels); - } - - @Override - public void visitMultiANewArrayInsn(final String desc, final int dims) { - if (customMethodVisitor == null) { - super.visitMultiANewArrayInsn(desc, dims); - } else { - customMethodVisitor.visitMultiANewArrayInsn (desc, dims); - } - } - - public void visitMultiANewArrayInsnSuper(final String desc, final int dims) { - super.visitMultiANewArrayInsn(desc, dims); - } - - @Override - public void visitTryCatchBlock(final org.eclipse.persistence.internal.libraries.asm.Label start, final org.eclipse.persistence.internal.libraries.asm.Label end,final org.eclipse.persistence.internal.libraries.asm.Label handler, final String type) { - if (customMethodVisitor == null) { - super.visitTryCatchBlock(start, end, handler, type); - } else { - customMethodVisitor.visitTryCatchBlock(new LabelImpl(start), new LabelImpl(end), new LabelImpl(handler), type); - } - } - - public void visitTryCatchBlockSuper(final org.eclipse.persistence.internal.libraries.asm.Label start, final org.eclipse.persistence.internal.libraries.asm.Label end,final org.eclipse.persistence.internal.libraries.asm.Label handler, final String type) { - super.visitTryCatchBlock(start, end, handler, type); - } - - @Override - public void visitMaxs(final int maxStack, final int maxLocals) { - if (customMethodVisitor == null) { - super.visitMaxs(maxStack, maxLocals); - } else { - customMethodVisitor.visitMaxs(maxStack, maxLocals); - } - } - - public void visitMaxsSuper(final int maxStack, final int maxLocals) { - super.visitMaxs(maxStack, maxLocals); - } - - @Override - public void visitLocalVariable(final String name, final String desc, String signature, final org.eclipse.persistence.internal.libraries.asm.Label start, final org.eclipse.persistence.internal.libraries.asm.Label end, final int index) { - if (customMethodVisitor == null) { - super.visitLocalVariable(name, desc, signature, start, end, index); - } else { - customMethodVisitor.visitLocalVariable(name, desc, signature, new LabelImpl(start), new LabelImpl(end), index); - } - } - - public void visitLocalVariableSuper(final String name, final String desc, String signature, final org.eclipse.persistence.internal.libraries.asm.Label start, final org.eclipse.persistence.internal.libraries.asm.Label end, final int index) { - super.visitLocalVariable(name, desc, signature, start, end, index); - } - - @Override - public void visitLineNumber(final int line, final org.eclipse.persistence.internal.libraries.asm.Label start) { - if (customMethodVisitor == null) { - super.visitLineNumber(line, start); - } else { - customMethodVisitor.visitLineNumber(line, new LabelImpl(start)); - } - } - - public void visitLineNumberSuper(final int line, final org.eclipse.persistence.internal.libraries.asm.Label start) { - super.visitLineNumber(line, start); - } - - @Override - public void visitAttribute(final org.eclipse.persistence.internal.libraries.asm.Attribute attr) { - if (customMethodVisitor == null) { - super.visitAttribute(attr); - } else { - customMethodVisitor.visitAttribute(new AttributeImpl(attr)); - } - } - - public void visitAttributeSuper(final org.eclipse.persistence.internal.libraries.asm.Attribute attr) { - super.visitAttribute(attr); - } - - public org.eclipse.persistence.internal.libraries.asm.AnnotationVisitor visitAnnotationSuper(final String descriptor, final boolean visible) { - return super.visitAnnotation(descriptor, visible); - } - - @Override - public void visitEnd() { - if (customMethodVisitor == null) { - super.visitEnd(); - } else { - //should lead into infinite loop if visitEnd() is not implemented in customClassVisitor - customMethodVisitor.visitEnd(); - } - } - } - - MethodVisitor ow2MethodVisitor; - - public MethodVisitorImpl(MethodVisitor methodVisitor) { - this.ow2MethodVisitor = methodVisitor; - } - - public MethodVisitorImpl(final int api) { - this.ow2MethodVisitor = new ELMethodVisitor(api); - } - - public MethodVisitorImpl(final int api, final org.eclipse.persistence.asm.MethodVisitor methodVisitor) { - this.ow2MethodVisitor = new ELMethodVisitor(api, methodVisitor.unwrap()); - } - - public MethodVisitor getInternal(final org.eclipse.persistence.asm.MethodVisitor methodVisitor) { - this.customMethodVisitor = methodVisitor; - return this.ow2MethodVisitor; - } - - @Override - public void visitVarInsn(int opcode, int var) { - this.ow2MethodVisitor.visitVarInsn(opcode, var); - } - - @Override - public void visitVarInsnSuper(int opcode, int var) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitVarInsnSuper(opcode, var); - } - - @Override - public void visitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) { - this.ow2MethodVisitor.visitMethodInsn(opcode, owner, name, descriptor, isInterface); - } - - @Override - public void visitMethodInsnSuper(int opcode, String owner, String name, String descriptor, boolean isInterface) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitMethodInsnSuper(opcode, owner, name, descriptor, isInterface); - } - - @Override - public void visitInsn(int opcode) { - this.ow2MethodVisitor.visitInsn(opcode); - } - - @Override - public void visitInsnSuper(int opcode) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitInsnSuper(opcode); - } - - @Override - public void visitMaxs(int maxStack, int maxLocals) { - this.ow2MethodVisitor.visitMaxs(maxStack, maxLocals); - } - - @Override - public void visitMaxsSuper(int maxStack, int maxLocals) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitMaxsSuper(maxStack, maxLocals); - } - - @Override - public void visitEnd() { - this.ow2MethodVisitor.visitEnd(); - } - - @Override - public void visitCode() { - this.ow2MethodVisitor.visitCode(); - } - - @Override - public void visitLdcInsn(final Object value) { - this.ow2MethodVisitor.visitLdcInsn(value); - } - - @Override - public void visitLdcInsnSuper(final Object value) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitLdcInsnSuper(value); - } - - @Override - public void visitTypeInsn(final int opcode, final String type) { - this.ow2MethodVisitor.visitTypeInsn(opcode, type); - } - - @Override - public void visitTypeInsnSuper(final int opcode, final String type) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitTypeInsnSuper(opcode, type); - } - - @Override - public void visitFieldInsn(final int opcode, final String owner, final String name, final String descriptor) { - this.ow2MethodVisitor.visitFieldInsn(opcode, owner, name, descriptor); - } - - @Override - public void visitFieldInsnSuper(final int opcode, final String owner, final String name, final String descriptor) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitFieldInsnSuper(opcode, owner, name, descriptor); - } - - @Override - public void visitIntInsn(final int opcode, final int operand) { - this.ow2MethodVisitor.visitIntInsn(opcode, operand); - } - - @Override - public void visitIntInsnSuper(final int opcode, final int operand) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitIntInsnSuper(opcode, operand); - } - - @Override - public void visitLabel(final Label label) { - this.ow2MethodVisitor.visitLabel(label.unwrap()); - } - - @Override - public void visitLabelSuper(final Label label) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitLabelSuper(label.unwrap()); - } - - @Override - public void visitJumpInsn(final int opcode, final Label label) { - this.ow2MethodVisitor.visitJumpInsn(opcode, label.unwrap()); - } - - @Override - public void visitJumpInsnSuper(final int opcode, final Label label) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitJumpInsnSuper(opcode, label.unwrap()); - } - - @Override - public void visitFrame(final int type, final int numLocal, final Object[] local, final int numStack, final Object[] stack){ - this.ow2MethodVisitor.visitFrame(type,numLocal, local, numStack, stack); - } - - @Override - public void visitLineNumber(final int line, final Label start) { - this.ow2MethodVisitor.visitLineNumber(line, start.unwrap()); - } - - @Override - public void visitLineNumberSuper(final int line, final Label start) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitLineNumberSuper(line, start.unwrap()); - } - - @Override - public void visitLocalVariable(final String name, final String descriptor, final String signature, final Label start, final Label end, final int index) { - this.ow2MethodVisitor.visitLocalVariable(name, descriptor, signature, start.unwrap(), end.unwrap(), index); - } - - @Override - public void visitLocalVariableSuper(final String name, final String descriptor, final String signature, final Label start, final Label end, final int index) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitLocalVariableSuper(name, descriptor, signature, start.unwrap(), end.unwrap(), index); - } - - @Override - public void visitIincInsn(int var, int increment) { - this.ow2MethodVisitor.visitIincInsn(var, increment); - } - - @Override - public void visitIincInsnSuper(int var, int increment) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitIincInsnSuper(var, increment); - } - - @Override - public void visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) { - org.eclipse.persistence.internal.libraries.asm.Label[] labelsUnwrap = Arrays.stream(labels).map(value -> value.unwrap()).toArray(size -> new org.eclipse.persistence.internal.libraries.asm.Label[size]); - this.ow2MethodVisitor.visitTableSwitchInsn(min, max, dflt.unwrap(), labelsUnwrap); - } - - @Override - public void visitTableSwitchInsnSuper(int min, int max, Label dflt, Label... labels) { - org.eclipse.persistence.internal.libraries.asm.Label[] labelsUnwrap = Arrays.stream(labels).map(value -> value.unwrap()).toArray(size -> new org.eclipse.persistence.internal.libraries.asm.Label[size]); - ((ELMethodVisitor)this.ow2MethodVisitor).visitTableSwitchInsnSuper(min, max, dflt.unwrap(), labelsUnwrap); - } - - @Override - public void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) { - org.eclipse.persistence.internal.libraries.asm.Label[] labelsUnwrap = Arrays.stream(labels).map(value -> value.unwrap()).toArray(size -> new org.eclipse.persistence.internal.libraries.asm.Label[size]); - this.ow2MethodVisitor.visitLookupSwitchInsn(dflt.unwrap() , keys, labelsUnwrap); - } - - @Override - public void visitLookupSwitchInsnSuper(Label dflt, int[] keys, Label[] labels) { - org.eclipse.persistence.internal.libraries.asm.Label[] labelsUnwrap = Arrays.stream(labels).map(value -> value.unwrap()).toArray(size -> new org.eclipse.persistence.internal.libraries.asm.Label[size]); - ((ELMethodVisitor)this.ow2MethodVisitor).visitLookupSwitchInsnSuper(dflt.unwrap() , keys, labelsUnwrap); - } - - @Override - public void visitMultiANewArrayInsn(String desc, int dims) { - this.ow2MethodVisitor.visitMultiANewArrayInsn(desc, dims); - } - - @Override - public void visitMultiANewArrayInsnSuper(String desc, int dims) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitMultiANewArrayInsnSuper(desc, dims); - } - - @Override - public void visitTryCatchBlock(Label start, Label end, Label handler, String type) { - this.ow2MethodVisitor.visitTryCatchBlock(start.unwrap(), end.unwrap(), handler.unwrap(), type); - } - - @Override - public void visitTryCatchBlockSuper(Label start, Label end, Label handler, String type) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitTryCatchBlockSuper(start.unwrap(), end.unwrap(), handler.unwrap(), type); - } - - @Override - public void visitAttribute(Attribute attr) { - this.ow2MethodVisitor.visitAttribute(attr.unwrap()); - } - - @Override - public void visitAttributeSuper(Attribute attr) { - ((ELMethodVisitor)this.ow2MethodVisitor).visitAttributeSuper(attr.unwrap()); - } - - @Override - public AnnotationVisitor visitAnnotation(final String descriptor, final boolean visible) { - return new AnnotationVisitorImpl(ow2MethodVisitor.visitAnnotation(descriptor, visible)); - } - - @Override - public AnnotationVisitor visitAnnotationSuper(final String descriptor, final boolean visible) { - return new AnnotationVisitorImpl(((ELMethodVisitor)this.ow2MethodVisitor).visitAnnotationSuper(descriptor, visible)); - } - - @Override - public T unwrap() { - return (T)this.ow2MethodVisitor; - } -} diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/SerialVersionUIDAdderImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/SerialVersionUIDAdderImpl.java deleted file mode 100644 index 745572adc49..00000000000 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/SerialVersionUIDAdderImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0, - * or the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause - */ - -// Contributors: -// Oracle - initial API and implementation -package org.eclipse.persistence.asm.internal.platform.eclipselink; - -import org.eclipse.persistence.asm.ASMFactory; -import org.eclipse.persistence.internal.libraries.asm.ClassVisitor; -import org.eclipse.persistence.internal.libraries.asm.commons.SerialVersionUIDAdder; - -public class SerialVersionUIDAdderImpl extends org.eclipse.persistence.asm.SerialVersionUIDAdder { - - private class ElSerialVersionUIDAdder extends SerialVersionUIDAdder { - - public ElSerialVersionUIDAdder(final ClassVisitor classVisitor) { - super(ASMFactory.ASM_API_SELECTED, classVisitor); - } - } - - private ElSerialVersionUIDAdder elSerialVersionUIDAdder; - - public SerialVersionUIDAdderImpl(final org.eclipse.persistence.asm.ClassVisitor classVisitor) { - this.elSerialVersionUIDAdder = new ElSerialVersionUIDAdder((classVisitor != null) ? classVisitor.unwrap() : null); - } - - @Override - public T unwrap() { - return (T)this.elSerialVersionUIDAdder; - } - -} diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/TypeImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/TypeImpl.java deleted file mode 100644 index fb7074d4bd5..00000000000 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/eclipselink/TypeImpl.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2023 Oracle and/or its affiliates. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v. 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0, - * or the Eclipse Distribution License v. 1.0 which is available at - * http://www.eclipse.org/org/documents/edl-v10.php. - * - * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause - */ - -// Contributors: -// Oracle - initial API and implementation -package org.eclipse.persistence.asm.internal.platform.eclipselink; - -import org.eclipse.persistence.internal.libraries.asm.Type; - -import java.lang.reflect.Method; -import java.util.Arrays; - -public class TypeImpl extends org.eclipse.persistence.asm.Type { - - private Type type = null; - - public TypeImpl() { - } - - public TypeImpl(final Class clazz) { - if (clazz != null) { - this.type = Type.getType(clazz); - } else { - this.type = Type.VOID_TYPE; - } - } - - public TypeImpl(final String typeDescriptor) { - this.type = Type.getType(typeDescriptor); - } - - @Override - public String getDescriptor() { - return this.type.getDescriptor(); - } - - @Override - public String getInternalName() { - return this.type.getInternalName(); - } - - @Override - public int getSort() { - return this.type.getSort(); - } - - @Override - public int getOpcode(final int opcode) { - return this.type.getOpcode(opcode); - } - - @Override - protected String getMethodDescriptorInternal(final Method method) { - return this.type.getMethodDescriptor(method); - } - - @Override - protected String getMethodDescriptorInternal(org.eclipse.persistence.asm.Type returnType, org.eclipse.persistence.asm.Type... argumentTypes) { - Type[] unwrappedArgumentTypes = Arrays.stream(argumentTypes).map(value -> value.unwrap()).toArray(size -> new org.eclipse.persistence.internal.libraries.asm.Type[size]); - return this.type.getMethodDescriptor(returnType.unwrap(), unwrappedArgumentTypes); - } - - @Override - public String getClassName() { - return this.type.getClassName(); - } - - @Override - public T unwrap() { - return (T)this.type; - } -} diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/ow2/ClassReaderImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/ow2/ClassReaderImpl.java index 0e8edda2012..8d9f82898d9 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/ow2/ClassReaderImpl.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/asm/internal/platform/ow2/ClassReaderImpl.java @@ -72,5 +72,4 @@ public String[] getInterfaces() { public T unwrap() { return (T)this.ow2ClassReader; } - } diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/config/SystemProperties.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/config/SystemProperties.java index ea2ca7867d3..0e7dc671ebc 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/config/SystemProperties.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/config/SystemProperties.java @@ -265,8 +265,7 @@ public class SystemProperties { *

* Allowed Values (case sensitive String): *

    - *
  • "eclipselink" (DEFAULT) - use ASM implementation from org.eclipse.persistence.asm project.
  • - *
  • "ow2" - use ASM implementation from org.ow2.asm project.
  • + *
  • "ow2" (DEFAULT) - use ASM implementation from org.ow2.asm project.
  • *
*/ public static final String ASM_SERVICE = "eclipselink.asm.service"; diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/localization/i18n/ExceptionLocalizationResource.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/localization/i18n/ExceptionLocalizationResource.java index 28e799a007d..addc75a1f43 100644 --- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/localization/i18n/ExceptionLocalizationResource.java +++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/localization/i18n/ExceptionLocalizationResource.java @@ -259,7 +259,7 @@ public class ExceptionLocalizationResource extends ListResourceBundle { { "wrap_convert_exception", "An exception occurred while calling {0} on converter class {1} with value {2}"}, { "ora_pessimistic_locking_with_rownum", "Pessimistic locking with query row limits is not supported."}, { "bean_validation_constraint_violated", "One or more Bean Validation constraints were violated while executing Automatic Bean Validation on callback event: {0} for class: {1}. Please refer to the embedded constraint violations for details."}, - { "unsupported_classfile_version", "The {0} class was compiled with an unsupported JDK. Report this error to the EclipseLink open source project."}, + { "unsupported_classfile_version", "The {0} class was compiled with an unsupported JDK and can not be read. Current ASM supports JDK {1} at most. Please upgrade OW2 ASM dependencies."}, { "json_pgsql_missing_class_on_classpath", "Missing {0} on classpath."}, { "json_pgsql_jsonvalue_to_database_type", "JSON value to database type conversion failed."}, { "json_pgsql_pgobject_conversion", "Database PGobject conversion failed."}, diff --git a/foundation/org.eclipse.persistence.core/src/test/java/module-info.java b/foundation/org.eclipse.persistence.core/src/test/java/module-info.java index 8324b41e10d..656c0630390 100644 --- a/foundation/org.eclipse.persistence.core/src/test/java/module-info.java +++ b/foundation/org.eclipse.persistence.core/src/test/java/module-info.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2023 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at @@ -20,7 +20,6 @@ requires jakarta.mail; requires jakarta.json; requires jakarta.xml.bind; - requires org.eclipse.persistence.asm; requires org.eclipse.persistence.core; requires junit; diff --git a/foundation/org.eclipse.persistence.nosql/pom.xml b/foundation/org.eclipse.persistence.nosql/pom.xml index c92d4c31b7f..d9472231428 100644 --- a/foundation/org.eclipse.persistence.nosql/pom.xml +++ b/foundation/org.eclipse.persistence.nosql/pom.xml @@ -85,10 +85,25 @@ test-jar test
- + - org.eclipse.persistence - org.eclipse.persistence.asm + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util test
diff --git a/jpa/eclipselink.jpa.spring.test/pom.xml b/jpa/eclipselink.jpa.spring.test/pom.xml index 75d3112bbc1..587b6316f54 100644 --- a/jpa/eclipselink.jpa.spring.test/pom.xml +++ b/jpa/eclipselink.jpa.spring.test/pom.xml @@ -68,6 +68,27 @@ org.eclipse.persistence.jpa.test.framework test + + + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util + test + jakarta.transaction diff --git a/jpa/eclipselink.jpa.test.jse/pom.xml b/jpa/eclipselink.jpa.test.jse/pom.xml index 3729d6290e4..b31fb65b2d7 100644 --- a/jpa/eclipselink.jpa.test.jse/pom.xml +++ b/jpa/eclipselink.jpa.test.jse/pom.xml @@ -52,12 +52,6 @@ test - - - org.eclipse.persistence - org.eclipse.persistence.asm - test - org.ow2.asm @@ -163,11 +157,6 @@ junit ${junit.version} - - org.eclipse.persistence - org.eclipse.persistence.asm - ${eclipselink.asm.version} - org.ow2.asm asm diff --git a/jpa/eclipselink.jpa.test/pom.xml b/jpa/eclipselink.jpa.test/pom.xml index a6d37c3ce72..8e541eee082 100644 --- a/jpa/eclipselink.jpa.test/pom.xml +++ b/jpa/eclipselink.jpa.test/pom.xml @@ -137,10 +137,25 @@ jaxb-xjc test - + - org.eclipse.persistence - org.eclipse.persistence.asm + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util test diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/metadata/MetadataASMFactoryTest.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/metadata/MetadataASMFactoryTest.java index 439afe45e65..8610bafd636 100644 --- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/metadata/MetadataASMFactoryTest.java +++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/metadata/MetadataASMFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2022 Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2023 Oracle and/or its affiliates. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at @@ -53,7 +53,7 @@ public static Test suite() { suite.addTest(new MetadataASMFactoryTest("testMetadataAnnotations")); suite.addTest(new MetadataASMFactoryTest("testAnnotationsWithCycle")); suite.addTest(new MetadataASMFactoryTest("testAnnotationsWithPrimitiveCycle")); - suite.addTest(new MetadataASMFactoryTest("testReadFallback")); + suite.addTest(new MetadataASMFactoryTest("testReadClassBuildByUknownJDK")); return suite; } @@ -97,7 +97,7 @@ public void testAnnotationsWithPrimitiveCycle() { } } - public void testReadFallback() { + public void testReadClassBuildByUknownJDK() { SessionLog log = AbstractSessionLog.getLog(); try { LW tracker = new LW(); @@ -105,8 +105,12 @@ public void testReadFallback() { ClassLoader cl = new EmployeeLoader(MetadataASMFactoryTest.class.getClassLoader()); MetadataAsmFactory maf = new MetadataAsmFactory(new MetadataLogger(null), cl); MetadataClass employee = maf.getMetadataClass("org.eclipse.persistence.testing.tests.jpa22.metadata.Employee"); - Assert.assertNull(tracker.msg); - Assert.assertNotNull(employee.getAnnotation("jakarta.persistence.Entity")); + //Check existence of the log message + Assert.assertNotNull(tracker.msg); + //Check, that at least some metadata are available + Assert.assertNotNull(employee); + //jakarta.persistence.Entity annotation can't be read as class is build by unknown JDK + Assert.assertNull(employee.getAnnotation("jakarta.persistence.Entity")); } finally { AbstractSessionLog.setLog(log); } diff --git a/jpa/eclipselink.jpa.testapps/README.md b/jpa/eclipselink.jpa.testapps/README.md index bfb3f7f7a89..c7ffc8e5032 100644 --- a/jpa/eclipselink.jpa.testapps/README.md +++ b/jpa/eclipselink.jpa.testapps/README.md @@ -261,7 +261,6 @@ echo ' - diff --git a/jpa/eclipselink.jpa.testapps/jpa.test.weaving/pom.xml b/jpa/eclipselink.jpa.testapps/jpa.test.weaving/pom.xml index 5340b40e9be..a886e6072ea 100644 --- a/jpa/eclipselink.jpa.testapps/jpa.test.weaving/pom.xml +++ b/jpa/eclipselink.jpa.testapps/jpa.test.weaving/pom.xml @@ -85,23 +85,6 @@ default-test - - asm-eclipselink-test - - test - - - - org.ow2.asm:asm - org.ow2.asm:asm-commons - org.ow2.asm:asm-tree - org.ow2.asm:asm-util - - - eclipselink - - - asm-ow2-test @@ -111,9 +94,6 @@ ow2 - - org.eclipse.persistence.asm - diff --git a/jpa/eclipselink.jpa.testapps/pom.xml b/jpa/eclipselink.jpa.testapps/pom.xml index f3b8be02855..9a505ba0271 100644 --- a/jpa/eclipselink.jpa.testapps/pom.xml +++ b/jpa/eclipselink.jpa.testapps/pom.xml @@ -243,12 +243,6 @@ - - - org.eclipse.persistence - org.eclipse.persistence.asm - test - org.ow2.asm @@ -412,9 +406,24 @@ ${project.version} - org.eclipse.persistence - org.eclipse.persistence.asm - ${eclipselink.asm.version} + org.ow2.asm + asm + ${asm.version} + + + org.ow2.asm + asm-commons + ${asm.version} + + + org.ow2.asm + asm-tree + ${asm.version} + + + org.ow2.asm + asm-util + ${asm.version} diff --git a/jpa/eclipselink.jpa.wdf.test/pom.xml b/jpa/eclipselink.jpa.wdf.test/pom.xml index d107c13ea2f..45a6aa5ef3c 100644 --- a/jpa/eclipselink.jpa.wdf.test/pom.xml +++ b/jpa/eclipselink.jpa.wdf.test/pom.xml @@ -78,10 +78,25 @@ jakarta.ejb-api test - + - org.eclipse.persistence - org.eclipse.persistence.asm + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util test diff --git a/jpa/org.eclipse.persistence.jpa.modelgen/pom.xml b/jpa/org.eclipse.persistence.jpa.modelgen/pom.xml index b1eb51377e7..2a1ac77ed07 100644 --- a/jpa/org.eclipse.persistence.jpa.modelgen/pom.xml +++ b/jpa/org.eclipse.persistence.jpa.modelgen/pom.xml @@ -50,10 +50,25 @@ junit test - + - org.eclipse.persistence - org.eclipse.persistence.asm + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util test diff --git a/jpa/org.eclipse.persistence.jpa/pom.xml b/jpa/org.eclipse.persistence.jpa/pom.xml index d4402b94f53..aabbb5a8e6e 100644 --- a/jpa/org.eclipse.persistence.jpa/pom.xml +++ b/jpa/org.eclipse.persistence.jpa/pom.xml @@ -32,11 +32,6 @@ - - org.eclipse.persistence - org.eclipse.persistence.asm - runtime - org.eclipse.persistence org.eclipse.persistence.core @@ -197,7 +192,6 @@ * - org.eclipse.persistence.internal.libraries.asm*;version="${version;==;${@}}", org.eclipse.persistence.json;resolution:=optional, * diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataAsmFactory.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataAsmFactory.java index 78c92597d26..34c65be465a 100644 --- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataAsmFactory.java +++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metadata/accessors/objects/MetadataAsmFactory.java @@ -105,48 +105,14 @@ protected void buildClassMetadata(MetadataClass metadataClass, String className, } catch (IllegalArgumentException iae) { // class was probably compiled with some newer than officially // supported and tested JDK - // in such case log a warning and try to re-read the class - // without class version check - if (stream != null) { - if (markSupported) { - try { - stream.reset(); - } catch (IOException e) { - try { - stream.close(); - } catch (IOException ex) { - //ignore - } - stream = readResource(resourceString); - } - } else { - try { - stream.close(); - } catch (IOException ex) { - //ignore - } - stream = readResource(resourceString); - } - try { - //Second argument checkClassVersion=false means, that EclipseLink ASM implementation is used - //as checkClassVersion is not visible by public constructor - ClassReader reader = ASMFactory.createClassReader(stream, false); - Attribute[] attributes = new Attribute[0]; - reader.accept(visitor, attributes, ClassReader.valueInt("SKIP_CODE") | ClassReader.valueInt("SKIP_DEBUG") | ClassReader.valueInt("SKIP_FRAMES")); - } catch (Exception e) { - SessionLog log = getLogger().getSession() != null - ? getLogger().getSession().getSessionLog() : AbstractSessionLog.getLog(); - // our fall-back failed, this is severe - if (log.shouldLog(SessionLog.SEVERE, SessionLog.METADATA)) { - SessionLogEntry entry = new SessionLogEntry(getLogger().getSession(), SessionLog.SEVERE, SessionLog.METADATA, e); - entry.setMessage(ExceptionLocalization.buildMessage("unsupported_classfile_version", new Object[] { className })); - log.log(entry); - } - addMetadataClass(getVirtualMetadataClass(className)); - } - } else { - addMetadataClass(getVirtualMetadataClass(className)); + // in such case log a error + SessionLog log = getLogger().getSession() != null ? getLogger().getSession().getSessionLog() : AbstractSessionLog.getLog(); + if (log.shouldLog(SessionLog.SEVERE, SessionLog.METADATA)) { + SessionLogEntry entry = new SessionLogEntry(getLogger().getSession(), SessionLog.SEVERE, SessionLog.METADATA, iae); + entry.setMessage(ExceptionLocalization.buildMessage("unsupported_classfile_version", new Object[] { className, ASMFactory.JAVA_LATEST_VERSION })); + log.log(entry); } + addMetadataClass(getVirtualMetadataClass(className)); } catch (Exception exception) { addMetadataClass(getVirtualMetadataClass(className)); } finally { diff --git a/jpa/org.eclipse.persistence.jpars.server/pom.xml b/jpa/org.eclipse.persistence.jpars.server/pom.xml index d842f11b9f4..056be160301 100644 --- a/jpa/org.eclipse.persistence.jpars.server/pom.xml +++ b/jpa/org.eclipse.persistence.jpars.server/pom.xml @@ -1,7 +1,7 @@ + - org.eclipse.persistence - org.eclipse.persistence.asm + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util test diff --git a/moxy/org.eclipse.persistence.moxy/pom.xml b/moxy/org.eclipse.persistence.moxy/pom.xml index e7a967e32d7..725f8a7812f 100644 --- a/moxy/org.eclipse.persistence.moxy/pom.xml +++ b/moxy/org.eclipse.persistence.moxy/pom.xml @@ -117,10 +117,25 @@ true test - + - org.eclipse.persistence - org.eclipse.persistence.asm + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util test @@ -185,10 +200,6 @@ org.eclipse.persistence.internal.jaxb.many, * - - org.eclipse.persistence.internal.libraries.asm*;version="${version;==;${@}}", - * -
@@ -330,7 +341,6 @@ - diff --git a/pom.xml b/pom.xml index ffc26a232d0..bac4ccd4f56 100644 --- a/pom.xml +++ b/pom.xml @@ -186,7 +186,6 @@ DRAFT - 9.6.0 9.6 2.1.2 2.0.1 @@ -316,17 +315,6 @@ org.eclipse.persistence.parent ${project.version} - - org.eclipse.persistence - org.eclipse.persistence.asm - ${eclipselink.asm.version} - - - org.eclipse.persistence - org.eclipse.persistence.asm - ${eclipselink.asm.version} - sources - org.eclipse.persistence diff --git a/sdo/eclipselink.sdo.test.server/src/it/resources/wildfly/elResources.xml b/sdo/eclipselink.sdo.test.server/src/it/resources/wildfly/elResources.xml index b50fff75466..20d4b1f11a3 100644 --- a/sdo/eclipselink.sdo.test.server/src/it/resources/wildfly/elResources.xml +++ b/sdo/eclipselink.sdo.test.server/src/it/resources/wildfly/elResources.xml @@ -1,6 +1,6 @@ - + - org.eclipse.persistence - org.eclipse.persistence.asm + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util test @@ -277,7 +292,6 @@ * - org.eclipse.persistence.internal.libraries.asm*;version="${version;==;${@}}", jakarta.activation;resolution:=optional, jakarta.mail.internet;resolution:=optional, * diff --git a/testing/server-oracle/pom.xml b/testing/server-oracle/pom.xml index bc745507887..0efa7488976 100644 --- a/testing/server-oracle/pom.xml +++ b/testing/server-oracle/pom.xml @@ -1,7 +1,7 @@ + - org.eclipse.persistence - org.eclipse.persistence.asm + org.ow2.asm + asm + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util test