Shibboleth Java products are developed as part of a product platform expressed as a version of the
java-parent-project. Each platform:
- Requires a specific version of Java to compile, i.e., perform development;
- Requires a specific version of Java, or later, to execute;
- Supports specific versions of Java as an execution environment;
- Manages dependencies for significant Maven artifacts used as dependencies by our products;
- Establishes build defaults and site generation defaults for projects using the platform.
For our current platforms, the same version of Java is a minimum for both compilation and execution. This may not always be the case.
Product platforms are based on versions of Java that themselves have the long-term support (LTS) characteristics required in the Enterprise environment:
- Java 7 (July 2011)
- Java 8 (March 2014)
- Java 11 (September 2018, a.k.a. 18.9 LTS)
- Java 17 (expected September 2021)
Other non-LTS "feature" releases of Java, for example Java 9 and Java 10, are not available with long-term support and will not be used as the basis for product platforms.
Any product built using a given product platform is supported for use with the platform's originally specified Java execution environment for the life of the product. This support guarantee requires that the latest version of the Java runtime environment is used: for example, support under Java 7 is contingent on the latest version of Java 7 available being used.
Products built using a given product platform may also be supported for use with a later LTS release of Java at the Project's discretion; see under the individual platform sections below for details. Again, such support is dependent on the latest version of the given LTS release being in use.
The Shibboleth Project also tracks Java non-LTS feature releases (Java 9, 10, 12, ...) for compatibility but unless specifically called out as "supported" by a particular product platform below, execution under these versions of Java is not supported by the Project.
All Shibboleth Project supported products will always have a version which is supported under a current (i.e., not end of life) version of Java.
Java 7 Platform
The Java 7 platform (also referred to as the V3 platform) is based on Java 7 as both a development and execution environment. It is used by the following supported products:
- Identity Provider v3.x
- OpenSAML v3.x
- Java XML Security Tool v2.x
This platform is also used by the following preview product:
- Metadata Aggregator v0.9.2
The following execution environments are supported by this product platform:
- Java 7
- Java 8
- Java 11
The next release of the Shibboleth Metadata Aggregator will be made under the Java 8 platform.
Java 8 Platform
The Java 8 platform is based on Java 8 as both a development and execution environment.
We plan to release Metadata Aggregator v0.10 and v1.0 under this platform.
We intend to support Java 11 as an execution environment for Metadata Aggregator v1.0.
Java 11 Platform
The Java 11 platform will be based on Java 11 as both a development and execution environment.
We anticipate that the first product released based on this platform will be Identity Provider v4 and its associated OpenSAML release.
Java 6 Platform
The Java 6 platform (also referred to as the V2 platform) was based on a minimum of Java 6 as both a development and execution environment. It was used by the V2 Shibboleth Identity Provider. It is not used by any currently supported Shibboleth products.