Oleg Nenashev
2018-06-25 09:53:47 UTC
Hi all,
As a part of the Jenkins & Java 10+ hackathon
<https://jenkins.io/blog/2018/06/08/jenkins-java10-hackathon/> we
discovered a need to introduce Multi-release JARs
<http://openjdk.java.net/jeps/238> in some components in order to utilize
better APIs available in Java 9 and above. It was mostly required for
cleanup of Illegal Reflective Access warnings, but in some cases it also
allows to utilize better APIs without breaking compatibility with older
Java versions. E.g. there is
https://github.com/jenkinsci/lib-process-utils/pull/3 from Nicolas de Loof
(see his blogpost
<https://blog.loof.fr/2018/06/multi-release-jar-with-maven.html> for more
info about the approach).
Background:
- In medium-term after the Java 11 LTS release Oracle is about stopping
shipping official older OpenJDK releases to non-commercial customers, and
we may be interested to get ready to that
- During the hackathon a number of contributors (Nicolas, Sam van Oort,
Devin Nusbaum, Olivier Lamy, Jeff Thompshon, etc.) investigated Jenkins
tooling issues and solved some compatibility issues, and we are getting
close to being able to build Jenkins core and plugins on JDK10
- During the Hackathon Olivier Vernin has added support of JDK10 to
ci.jenkins.io, so our infrastructure is probably ready
Proposal:
- Allow requiring JDK 10+ to *build* Jenkins components
- It includes Jenkins core libs, plugins and potentially the core
itself
- It's up to maintainers to decide when they are ready to accept such
requirement in components they maintain
- Require such components to retain compatibility with Java 8 (as
long as Jenkins Core supports it)
- Require such components to have Jenkinsfiles running tests on Java 8
and Java 10+
- Be explicit that all Java 10+ support is available in the experimental
mode until Jenkins officially supports it (currently we consider Java 10/11
support as a preview mode - docs
<https://jenkins.io/doc/administration/requirements/java/#running-jenkins>
)
What do you think?
I could create an info JEP for it if it makes sense in this case. Probably
too much overhead.
Best regards,
Oleg
As a part of the Jenkins & Java 10+ hackathon
<https://jenkins.io/blog/2018/06/08/jenkins-java10-hackathon/> we
discovered a need to introduce Multi-release JARs
<http://openjdk.java.net/jeps/238> in some components in order to utilize
better APIs available in Java 9 and above. It was mostly required for
cleanup of Illegal Reflective Access warnings, but in some cases it also
allows to utilize better APIs without breaking compatibility with older
Java versions. E.g. there is
https://github.com/jenkinsci/lib-process-utils/pull/3 from Nicolas de Loof
(see his blogpost
<https://blog.loof.fr/2018/06/multi-release-jar-with-maven.html> for more
info about the approach).
Background:
- In medium-term after the Java 11 LTS release Oracle is about stopping
shipping official older OpenJDK releases to non-commercial customers, and
we may be interested to get ready to that
- During the hackathon a number of contributors (Nicolas, Sam van Oort,
Devin Nusbaum, Olivier Lamy, Jeff Thompshon, etc.) investigated Jenkins
tooling issues and solved some compatibility issues, and we are getting
close to being able to build Jenkins core and plugins on JDK10
- During the Hackathon Olivier Vernin has added support of JDK10 to
ci.jenkins.io, so our infrastructure is probably ready
Proposal:
- Allow requiring JDK 10+ to *build* Jenkins components
- It includes Jenkins core libs, plugins and potentially the core
itself
- It's up to maintainers to decide when they are ready to accept such
requirement in components they maintain
- Require such components to retain compatibility with Java 8 (as
long as Jenkins Core supports it)
- Require such components to have Jenkinsfiles running tests on Java 8
and Java 10+
- Be explicit that all Java 10+ support is available in the experimental
mode until Jenkins officially supports it (currently we consider Java 10/11
support as a preview mode - docs
<https://jenkins.io/doc/administration/requirements/java/#running-jenkins>
)
What do you think?
I could create an info JEP for it if it makes sense in this case. Probably
too much overhead.
Best regards,
Oleg
--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/9cb9e3e2-79c0-4f2a-80ee-1588e23f568f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/9cb9e3e2-79c0-4f2a-80ee-1588e23f568f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.