Skip to content

Please publish org-netbeans-insane-hook.jar to Maven Central #3743

@basil

Description

@basil

Description

netbeans-13-bin.zip contains a JAR file at netbeans/harness/modules/ext/org-netbeans-insane-hook.jar. I cannot seem to find org-netbeans-insane-hook.jar anywhere on Maven Central. Please publish this JAR file to Maven Central.

See below for the motivation and reasoning behind this request.

Use case/motivation

The Jenkins project consumes org.netbeans.modules:org-netbeans-insane in jenkinsci/jenkins-test-harness. When upgrading from RELEASE126 to RELEASE130 in jenkinsci/jenkins-test-harness#397, we started getting the following error:

java.lang.NoClassDefFoundError: org/netbeans/insane/hook/MakeAccessible
	at org.netbeans.insane.impl.InsaneEngine.processClass(InsaneEngine.java:224)
	at org.netbeans.insane.impl.InsaneEngine.process(InsaneEngine.java:185)
	at org.netbeans.insane.impl.InsaneEngine.traverse(InsaneEngine.java:73)
	at org.netbeans.insane.impl.LiveEngine.traceImpl(LiveEngine.java:165)
	at org.netbeans.insane.impl.LiveEngine.trace(LiveEngine.java:143)
	at org.jvnet.hudson.test.MemoryAssert.fromRoots(MemoryAssert.java:300)
	at org.jvnet.hudson.test.MemoryAssert.assertGC(MemoryAssert.java:187)
	... 32 more
Caused by: java.lang.ClassNotFoundException: org.netbeans.insane.hook.MakeAccessible
	at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	... 39 more

Looking into this further, I see that in order to adapt to 04ed090 from #3206, we will need to add --patch-module=java.base=org-netbeans-insane-hook.jar --add-exports=java.base/org.netbeans.insane.hook=ALL-UNNAMED to our test JVM arguments on Java 9 (and later) and -Xbootclasspath/p:org-netbeans-insane-hook.jar to our test JVM arguments on Java 8 (and below). One of the first problems I am having in doing so is that I cannot seem to find org-netbeans-insane-hook.jar anywhere on Maven Central.

I found it buried in netbeans-13-bin.zip, a 427 MiB .zip archive, but it is not practical to download and extract this during a Jenkins plugin build. Checking in org-netbeans-insane-hook.jar into Git is not practical either, as this JAR needs to be available when running tests from multiple Jenkins plugin repositories.

How should the Jenkins project proceed? I can think of one solution: for the NetBeans project to publish org-netbeans-insane-hook.jar to Maven Central. The Jenkins project could then fetch this artifact during our plugin builds and consume it using the test JVM arguments given above.

Related issues

See #3206 and JENKINS-67974.

CCing @JaroslavTulach as the author of the breaking change and @neilcsmith-net regarding release management.

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions