Java versions, Shibboleth products and the parent project
Ian Young
ian at iay.org.uk
Thu Sep 14 07:04:49 EDT 2017
Hi,
This note describes the way in which future Java-based products from the Shibboleth project will make use of, and require, different versions of the Java SE platform. If you are a user of Shibboleth Java-based products, you will want to read this to understand which versions of Java will be required for execution of these products in the future.
If you develop against or on top of Shibboleth Java-based projects, you will need to understand the more detailed technical information here describing how the Java Parent Project is evolving to accommodate these dependency changes.
Java Platform Versioning
Shibboleth IdP V3 was based on a "V3 stack" based on Java 7: everything in the V3 stack, including IdP V3 itself, required a minimum of Java 7 both for compilation and execution.
Java 7 has not received public updates since April 2015; the only currently supported version of Java is Java 8, which Oracle indicates will be supported with public updates only until September 2018:
http://www.oracle.com/technetwork/java/eol-135779.html
We expect that Java 9 will be available on 21 September 2017. After the release of Java 9, things get a bit more complicated, as Oracle will be changing both the release cadence and version number scheme used for Java:
https://mreinhold.org/blog/forward-faster
https://mmilinkov.wordpress.com/2017/09/07/java-free-at-last/
http://wildfly-development.1055759.n5.nabble.com/Moving-Java-Forward-Faster-td5718125.html
Although we have yet to see how this new structure for Java releases works out in practice, it seems reasonable to assume that Shibboleth products will be built around the new "Long Term Support" (LTS) versions expected to be released every three years. The first of these (18.9) is scheduled for September 2018.
Given these timescales, we anticipate that the following product releases will be based on appropriate versions of the Java platform as follows:
* Shibboleth IdP 3.x: Java 7
* Shibboleth MDA 0.10: Java 8
* Shibboleth MDA 1.0: Java 9
* Shibboleth IdP 4.x: Java 9 *or* 18.9 LTS, dependent on timing
These Java versions will be required both for compilation and execution of the named products.
Shibboleth Parent Project
All Java-based Shibboleth projects inherit one variant or another of a Maven "super POM" describing a consistent platform including both Java and important dependencies. Historically, this has been referred to using the version of the Shibboleth IdP with which it was associated: "the V2 POM", "the V3 POM". In order to prepare for the next few years, we are changing this scheme as follows:
* the java-parent-project-v3 repository has been renamed as java-parent-project
* the version numbering convention for these artifacts has been changed from a single integer (e.g., "10") to a full three-part MAJOR.MINOR.PATCH versioning scheme
* The MAJOR version of a parent POM is now the version of Java on which the platform is based (e.g., "7", "8", "9"). Post Java 9, this will become the year component of the associated LTS release (e.g., "18")
* The MINOR version of a parent POM replaces the old single integer
* The PATCH version of a parent POM will only be used for changes made to enable patch releases of other products; in most cases, we expect this not to be necessary through version overriding in the product being maintained
* the TRUNK-SNAPSHOT convention has been retired in favour of the normal NEXT.NEXT.NEXT-SNAPSHOT convention for all branches
* the master branch of the repository now represents the 8.0.0-SNAPSHOT version of the parent POM; this will be developed as a Java 8-based platform for, initially, Shibboleth MDA 0.10.0 and "V8" versions of java-support and spring-extensions. This development can be tracked in JPAR-96 in JIRA:
https://issues.shibboleth.net/jira/browse/JPAR-96
* a new maint-7 branch of the repository represents the 7.11.0-SNAPSHOT version of the parent POM; all current development projects (e.g., Shibboleth IdP V3.x) have been adjusted to inherit this version
* Maven coordinates for the parent POM have been changed from net.shibboleth:parent-v3 back to net.shibboleth:parent (which was the convention prior to the original V2/V3 split)
If you are working on non-Shibboleth projects and make use of the Shibboleth parent POM, you may need to:
* change the location from which you clone the repository, if you do that
* change the Maven coordinates of the parent POM
* change the referenced version of the parent POM
-- Ian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3563 bytes
Desc: not available
URL: <http://shibboleth.net/pipermail/dev/attachments/20170914/1c87961f/attachment-0001.p7s>
More information about the dev
mailing list