You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2021/04/02 17:38:03 UTC

[tomee-jakarta] branch master updated: Migrate to new CXF code

This is an automated email from the ASF dual-hosted git repository.

jlmonteiro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee-jakarta.git


The following commit(s) were added to refs/heads/master by this push:
     new 8ff8008  Migrate to new CXF code
8ff8008 is described below

commit 8ff80081159503c6812c143f5b07c9c4b6992caa
Author: Jean-Louis Monteiro <jl...@tomitribe.com>
AuthorDate: Fri Apr 2 19:35:40 2021 +0200

    Migrate to new CXF code
---
 .../apache/cxf/jaxb/JAXBContextInitializer.java    | 39 ++++++++++++----------
 1 file changed, 21 insertions(+), 18 deletions(-)

diff --git a/transform/src/patch/java/org/apache/cxf/jaxb/JAXBContextInitializer.java b/transform/src/patch/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
index 37b2d07..6e247aa 100644
--- a/transform/src/patch/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
+++ b/transform/src/patch/java/org/apache/cxf/jaxb/JAXBContextInitializer.java
@@ -51,10 +51,12 @@ import javax.xml.namespace.QName;
 import org.apache.cxf.common.classloader.ClassLoaderUtils;
 import org.apache.cxf.common.jaxb.JAXBUtils;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.common.spi.ClassGeneratorClassLoader;
 import org.apache.cxf.common.util.ASMHelper;
 import org.apache.cxf.common.util.ASMHelper.ClassWriter;
 import org.apache.cxf.common.util.ASMHelper.MethodVisitor;
-import org.apache.cxf.common.util.ASMHelper.Opcodes;
+import org.apache.cxf.common.util.ASMHelperImpl;
+import org.apache.cxf.common.util.OpcodesProxy;
 import org.apache.cxf.common.util.ReflectionUtil;
 import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.service.ServiceModelVisitor;
@@ -559,46 +561,47 @@ class JAXBContextInitializer extends ServiceModelVisitor {
 
     @SuppressWarnings("unused")
     private Object createFactory(Class<?> cls, Constructor<?> contructor) {
-        String newClassName = cls.getName() + "Factory";
-        ASMHelper helper = new ASMHelper();
-        ClassWriter cw = helper.createClassWriter();
+        final String newClassName = cls.getName() + "Factory";
+        final ASMHelper helper = new ASMHelperImpl();
+        final ClassWriter cw = helper.createClassWriter();
+        final OpcodesProxy opCodes = helper.getOpCodes();
         MethodVisitor mv;
 
-        cw.visit(Opcodes.V1_6, Opcodes.ACC_PUBLIC + Opcodes.ACC_SUPER,
-                 ASMHelper.periodToSlashes(newClassName), null, "java/lang/Object", null);
+        cw.visit(opCodes.V1_6, opCodes.ACC_PUBLIC + opCodes.ACC_SUPER,
+                 StringUtils.periodToSlashes(newClassName), null, "java/lang/Object", null);
 
         cw.visitSource(cls.getSimpleName() + "Factory" + ".java", null);
 
-        mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "<init>", "()V", null, null);
+        mv = cw.visitMethod(opCodes.ACC_PUBLIC, "<init>", "()V", null, null);
         mv.visitCode();
-        mv.visitVarInsn(Opcodes.ALOAD, 0);
-        mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
-        mv.visitInsn(Opcodes.RETURN);
+        mv.visitVarInsn(opCodes.ALOAD, 0);
+        mv.visitMethodInsn(opCodes.INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
+        mv.visitInsn(opCodes.RETURN);
         mv.visitMaxs(1, 1);
         mv.visitEnd();
 
-        mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "create" + cls.getSimpleName(),
-                            "()L" + ASMHelper.periodToSlashes(cls.getName()) + ";", null, null);
+        mv = cw.visitMethod(opCodes.ACC_PUBLIC, "create" + cls.getSimpleName(),
+                            "()L" + StringUtils.periodToSlashes(cls.getName()) + ";", null, null);
         mv.visitCode();
         String name = cls.getName().replace(".", "/");
-        mv.visitTypeInsn(Opcodes.NEW, name);
-        mv.visitInsn(Opcodes.DUP);
+        mv.visitTypeInsn(opCodes.NEW, name);
+        mv.visitInsn(opCodes.DUP);
         StringBuilder paraString = new StringBuilder(32).append("(");
 
         for (Class<?> paraClass : contructor.getParameterTypes()) {
-            mv.visitInsn(Opcodes.ACONST_NULL);
+            mv.visitInsn(opCodes.ACONST_NULL);
             paraString.append("Ljava/lang/Object;");
         }
         paraString.append(")V");
 
-        mv.visitMethodInsn(Opcodes.INVOKESPECIAL, name, "<init>", paraString.toString(), false);
+        mv.visitMethodInsn(opCodes.INVOKESPECIAL, name, "<init>", paraString.toString(), false);
 
-        mv.visitInsn(Opcodes.ARETURN);
+        mv.visitInsn(opCodes.ARETURN);
         mv.visitMaxs(1, 1);
         mv.visitEnd();
 
         cw.visitEnd();
-        Class<?> factoryClass = helper.loadClass(newClassName, cls, cw.toByteArray());
+        Class<?> factoryClass = ClassGeneratorClassLoader.loadClass(newClassName, cls, cw.toByteArray());
         try {
             return factoryClass.newInstance();
         } catch (Exception e) {