jakartaee / jaxb-tck

Other
4 stars 16 forks source link

Compile JAXB TCK at the Java SE 11 level #64

Closed gurunrao closed 2 years ago

gurunrao commented 2 years ago

Compile JAXB TCK at the Java SE 11 level for Jakarta EE 10.

gurunrao commented 2 years ago

JAXB JDK build issue -

echo ":-) xml_schema/msData files precompiled at date" | /usr/bin/tee precompile-xml_schema/msData.ok :-) xml_schema/msData files precompiled at Friday 24 September 2021 12:41:13 PM IST /usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /home/guru/oracle/jaxb-tck/jaxb-tck-build/XMLB-TCK-3.0/classes:/home/guru/oracle/jaxb-tck/asm-7.0.jar:/home/guru/oracle/jaxb-tck/asm-commons-7.0.jar:/usr/lib/jvm/java-11-openjdk-amd64/lib/tools.jar org.apache.river.tool.ClassDep -in com -in javasoft -cp /home/guru/oracle/jaxb-tck/jaxb-tck-build/XMLB-TCK-3.0/classes com.sun.jck.utils.installer.Installer >/home/guru/oracle/jaxb-tck/jaxb-tck-build/installer-classes.lst Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 Exception in thread "main" java.lang.UnsupportedOperationException: This feature requires ASM7 at org.objectweb.asm.ClassVisitor.visitNestMember(ClassVisitor.java:236) at org.objectweb.asm.ClassReader.accept(ClassReader.java:651) at org.objectweb.asm.ClassReader.accept(ClassReader.java:391) at org.apache.river.tool.classdepend.ReferencedClasses.compute(ReferencedClasses.java:56) at org.apache.river.tool.classdepend.ClassDepend.getDependencyRelationshipMap(ClassDepend.java:284) at org.apache.river.tool.ClassDep.compute(ClassDep.java:885) at org.apache.river.tool.ClassDep.main(ClassDep.java:1330) make[1]: [../zip.mk:57: /home/guru/oracle/jaxb-tck/jaxb-tck-build/installer-classes.lst] Error 1 make[1]: Leaving directory '/home/guru/oracle/jaxb-tck/jaxb-tck/build/XMLB-TCK' make: [Makefile:82: XMLB-TCK-build] Error 2

logs - build_jaxb.zip

scottmarlow commented 2 years ago

sounds like we need the newer ASM artifact.

gurunrao commented 2 years ago

sounds like we need the newer ASM artifact.

Have tried with 7.1, 9.0, 9.1 ASM, without any success.

lukasj commented 2 years ago

can you try to add asm7 to the other cp option (no idea what that option is good for but sounds like some "dynamic" classpath):

/usr/lib/jvm/java-11-openjdk-amd64/bin/java
-cp /home/guru/oracle/jaxb-tck/jaxb-tck-build/XMLB-TCK-3.0/classes:/home/guru/oracle/jaxb-tck/asm-7.0.jar:/home/guru/oracle/jaxb-tck/asm-commons-7.0.jar:/usr/lib/jvm/java-11-openjdk-amd64/lib/tools.jar
org.apache.river.tool.ClassDep
-in com
-in javasoft
-cp /home/guru/oracle/jaxb-tck/jaxb-tck-build/XMLB-TCK-3.0/classes  <-- HERE
com.sun.jck.utils.installer.Installer
gurunrao commented 2 years ago

Modified other 'cp' as below:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /home/guru/oracle/jaxb-tck/jaxb-tck-build/XMLB-TCK-3.0/classes:/home/guru/oracle/jaxb-tck/asm-7.0.jar:/home/guru/oracle/jaxb-tck/asm-commons-7.0.jar:/usr/lib/jvm/java-11-openjdk-amd64/lib/tools.jar org.apache.river.tool.ClassDep -in com -in javasoft -cp /home/guru/oracle/jaxb-tck/jaxb-tck-build/XMLB-TCK-3.0/classes:/home/guru/oracle/jaxb-tck/asm-7.0.jar:/home/guru/oracle/jaxb-tck/asm-commons-7.0.jar: com.sun.jck.utils.installer.Installer >/home/guru/oracle/jaxb-tck/jaxb-tck-build/installer-classes.lst
Exception in thread "main" java.lang.UnsupportedOperationException: This feature requires ASM7
    at org.objectweb.asm.ClassVisitor.visitNestMember(ClassVisitor.java:236)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:651)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:391)
    at org.apache.river.tool.classdepend.ReferencedClasses.compute(ReferencedClasses.java:56)
    at org.apache.river.tool.classdepend.ClassDepend.getDependencyRelationshipMap(ClassDepend.java:284)
    at org.apache.river.tool.ClassDep.compute(ClassDep.java:885)
    at org.apache.river.tool.ClassDep.main(ClassDep.java:1330)

have also tried removing second '-cp' as below:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java -cp /home/guru/oracle/jaxb-tck/jaxb-tck-build/XMLB-TCK-3.0/classes:/home/guru/oracle/jaxb-tck/asm-7.0.jar:/home/guru/oracle/jaxb-tck/asm-commons-7.0.jar org.apache.river.tool.ClassDep -in com -in javasoft com.sun.jck.utils.installer.Installer >/home/guru/oracle/jaxb-tck/jaxb-tck-build/installer-classes.lst
Exception in thread "main" java.lang.UnsupportedOperationException: This feature requires ASM7
    at org.objectweb.asm.ClassVisitor.visitNestMember(ClassVisitor.java:236)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:651)
    at org.objectweb.asm.ClassReader.accept(ClassReader.java:391)
    at org.apache.river.tool.classdepend.ReferencedClasses.compute(ReferencedClasses.java:56)
    at org.apache.river.tool.classdepend.ClassDepend.getDependencyRelationshipMap(ClassDepend.java:284)
    at org.apache.river.tool.ClassDep.compute(ClassDep.java:885)
    at org.apache.river.tool.ClassDep.main(ClassDep.java:1330)
lukasj commented 2 years ago

hm, then the only idea is to double check the content of jaxb-tck-build/XMLB-TCK-3.0/classes folder to see if it contains "some" asm (or just reorder the classpath, so the classes folder is at the end)

gurunrao commented 2 years ago

hm, then the only idea is to double check the content of jaxb-tck-build/XMLB-TCK-3.0/classes folder to see if it contains "some" asm (or just reorder the classpath, so the classes folder is at the end)

there are no asm classes at jaxb-tck-build/XMLB-TCK-3.0/classes

scottmarlow commented 2 years ago

Sounds like we need a newer version of org.apache.river.tool.classdepend.ReferencedClasses that specifies to enable ASM7 via the ASM API.

scottmarlow commented 2 years ago
svn checkout http://svn.apache.org/repos/asf/river/jtsk/trunk river

grep -r Opcodes\.ASM --include=*.java
modularize/apache-river/tools/classdep/src/main/java/org/apache/river/tool/classdepend/AbstractDependencyVisitor.java:        super(Opcodes.ASM5);
modularize/apache-river/tools/classdep/src/main/java/org/apache/river/tool/classdepend/AbstractDependencyVisitor.java:        if (ann != null) return new AnnotationVisit(Opcodes.ASM5, ann);
modularize/apache-river/tools/classdep/src/main/java/org/apache/river/tool/classdepend/AbstractDependencyVisitor.java:        return new MethodVisit(Opcodes.ASM5, super.visitMethod(api, desc, desc, desc, exceptions));
modularize/apache-river/tools/classdep/src/main/java/org/apache/river/tool/classdepend/AbstractDependencyVisitor.java:  new SignatureReader(signature).accept(new SignatureVisit(Opcodes.ASM5));
modularize/apache-river/tools/classdep/src/main/java/org/apache/river/tool/classdepend/AbstractDependencyVisitor.java:  new SignatureReader(signature).acceptType(new SignatureVisit(Opcodes.ASM5));
modularize/apache-river/tools/classdep/src/main/java/org/apache/river/tool/classdepend/AbstractDependencyVisitor.java:            if (ann != null) return new AnnotationVisit( Opcodes.ASM5, ann);
modularize/apache-river/tools/classdep/src/main/java/org/apache/river/tool/classdepend/AbstractDependencyVisitor.java:            if (ann != null) return new AnnotationVisit(Opcodes.ASM5, ann );

To support JDK11 version of ASM, we need to update to reference Opcodes.ASM7

gurunrao commented 2 years ago

PR https://github.com/eclipse-ee4j/jaxb-tck/pull/67 has been merged to master.