Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jakartaee-tck-dev] Signature test tooling update may be needed for generating signature map files on Java SE 11...


On 11/17/21 2:47 PM, Scott Marlow wrote:


On 11/17/21 1:32 PM, Scott Marlow wrote:

FYI, the below failure goes away if we include the JDK8/jre/lib/rt.jar in the sigTestClasspath when running against Java SE 11.  This implies two possible solutions:

This seems worth trying but will require Eclipse approval (CQ) I think to bring further signature tooling code changes into the Platform TCK.

https://github.com/scottmarlow/netbeans-apitest/tree/sync_with_originalrepo_master + https://github.com/scottmarlow/jakartaee-tck/tree/build_signatures contains changes for this and https://ci.eclipse.org/jakartaee-tck/job/jakartaee-tck-scottmarlow/job/build_signatures/ is testing with updated signature map files. 


  • Or make further changes to netbean sig test tool to avoid the below failure via more -IgnoreJDKClass enhancements like we did for EE 9.1.

This is kind of a deep dive approach that would take more time + hacking.  IMO, we are better either doing a rewrite or exploring other tooling options () than following this path.


I tried the third solution with common-annotations-api but not all API classes (see https://gist.github.com/scottmarlow/125ccc2afdd4858ec911d1cd601cb7d6).  For example, jakarta.annotation.Resource was not included but should of been.



Scott

On 11/16/21 3:58 PM, Scott Marlow wrote:

As mentioned in [1], we are seeing the below failure trying to reference JDK classes during signature map file generation.  I suspect that we need to update com/sun/tdk/signaturetest/Main.java [2]  to add a new option -IgnoreJDKClass similar to the [3] change we made earlier this year for EE 9.1. 

"
java.lang.ClassNotFoundException: java.lang.annotation.Annotation
    at com.sun.tdk.signaturetest.classpath.ClasspathImpl.findClass(ClasspathImpl.java:346)
    at com.sun.tdk.signaturetest.loaders.BinaryClassDescrLoader.load(BinaryClassDescrLoader.java:243)
    at com.sun.tdk.signaturetest.core.ClassHierarchyImpl.load(ClassHierarchyImpl.java:180)
    at com.sun.tdk.signaturetest.core.ClassHierarchyImpl.load(ClassHierarchyImpl.java:164)
    at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.addInheritedFromInterfaces(MemberCollectionBuilder.java:391)
    at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.addInherited(MemberCollectionBuilder.java:372)
    at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.getMembers(MemberCollectionBuilder.java:297)
    at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.getMembers(MemberCollectionBuilder.java:243)
    at com.sun.tdk.signaturetest.core.MemberCollectionBuilder.createMembers(MemberCollectionBuilder.java:118)
    at com.sun.tdk.signaturetest.Setup.create(Setup.java:483)
    at com.sun.tdk.signaturetest.Setup.run(Setup.java:164)
    at com.sun.tdk.signaturetest.Setup.main(Setup.java:143)
    at com.sun.tdk.signaturetest.Main.main(Main.java:99)
"

The build_signatures.sh [4] is a work in progress for generating the signature map files.

Scott

[1] https://github.com/eclipse-ee4j/jakartaee-tck/issues/767#issuecomment-970653750
[2] https://github.com/jtulach/netbeans-apitest/blob/master/src/main/java/com/sun/tdk/signaturetest/Main.java
[3] https://github.com/jtulach/netbeans-apitest/commit/72e39bb6285e85d1d280171d1583b98b55853c52
[4] https://github.com/scottmarlow/jakartaee-tck/blob/build_signatures/docker/build_signatures.sh


Back to the top