Status: Resolved (View Workflow)
- JAXB Plugin is released to the Common Update Center
- minimumJavaVersion is set to 8 unless it blows up
- There are few plugins using this plugin as a dependency
- JAXB Plugin as a detached plugin on Java 11 + (Core patch), and it's bundled into WAR
- We need to explore whether it is feasible. It may be helpful to keep plugins compatible without patches on the plugin side
What do we need to test?
- Jetty && SLOCCount Plugin
- Tomcat && SLOCCount Plugin
- relates to
JENKINS-28942 Allow plugins to declare that they do not use certain implied dependencies
JENKINS-51965 Add support of JAXB unpackaging for Java 9+ in WAR Exploder
JENKINS-55620 SloccountPublisher fails on Java 11 without --add-modules java.xml.bind
JENKINS-55202 Performance Signature Plugin: JAXB API is missing with Java 11
- links to
2.2.11 released to make testing more easy. https://github.com/jenkinsci/jenkins/pull/3865 in review to add JAXB api plugin as detached only on Java 11 runtime.
So, quick update:
JAXB Plugin is released to the Common Update Center
minimumJavaVersion is set to 8 unless it blows up
Released as 2.2.11 with minimumJavaVersion set on Java 8.
There are few plugins using this plugin as a dependency
Only SlocCount has been tested successfully in https://github.com/jenkinsci/sloccount-plugin/pull/53. I need to redo tests for completeness with https://github.com/jenkinsci/jenkins/pull/3865 (see below), but basically this is just automating the plugin detachment, which I tested manually, so I don't anticipate any new issue.
I don't know of another plugin that would be easy enough to try.
I'm actually considering creating a simple plugin that would exercise the various cases around Java 11 known issues (JAXB as here, but also JAF, java.sql, etc.)
JAXB Plugin as a detached plugin on Java 11 + (Core patch), and it's bundled into WAR
We need to explore whether it is feasible. It may be helpful to keep plugins compatible without patches on the plugin side
https://github.com/jenkinsci/jenkins/pull/3865 is in review to add the support in Jenkins for detaching plugins for a min Java runtime version (Java 11 in this case)
- In this PR, I had to add various exclusions to break dependency cycles and avoid a StackOverflowError. This is really growing ugly, and Jesse hinted about implementing JENKINS-28942 already.
- JENKINS-28942 does indeed look to me like the right long term correction: this is the only way we can avoid adding JAXB to the long and growing list of detached plugins, and hence hope cleaning up this from the Core in the future. Without this, basically we will not be really able to know what plugin use of doesn't use JAXB.
Jetty && SLOCCount Plugin
Tomcat && SLOCCount Plugin
- Jetty & SLOCCount done in https://github.com/jenkinsci/sloccount-plugin/pull/53, and more specifically demoed in the linked Docker image: https://github.com/batmat/jaxb-java11-demo
- Tomcat: not done yet.
we are using JAXB quite heavily for ur plugin: https://plugins.jenkins.io/performance-signature-dynatrace
I want to use ur plugin as a dependency for Java 11 compatibility, but the build job of the plugin on ci.jenkins.io fails: https://ci.jenkins.io/job/Plugins/job/performance-signature-dynatrace-plugin/job/master/54/console
Do u know why?
Basically i want to fix https://issues.jenkins-ci.org/browse/JENKINS-55202
rpionke this should be fixed https://github.com/jenkinsci/performance-signature-dynatrace-plugin/pull/7
I tested the new release of the JAXB Plugin and it works with and without a container. I will release the plugin in the next few days.
Thanks a lot for your effort!
Works in Tomcat 8.5.37 on Java 11.
Sysprops for possible future reference:
Note: I also tried Tomcat 9.0.14, but got a blank page using Java 8, so didn't try on Java 11. Not considering it a blocker for Java 11 context because failing on Java 8 too (didn't even install the sloccount plugin).
(Side note: speaking with my personal cap, I am in the opinion anyway we should officially de-support running Jenkins in Tomcat).
I plan to release an alpha version as soon as https://github.com/jenkins-infra/repository-permissions-updater/pull/999 is merged to be able to do more tests easily.
Then I think I'll sync with the Java 11 support team before actually releasing into the main Update Center.