dotCMS targets OpenJDK-based “LTS” (Long Term Supported) versions of Java. As of dotCMS v5.2 we will still target, test and ship with Java 8 for our code, cloud and containers. There are many flavors of Java but our internal testing of dotCMS is currently done using the latest OpenJDK v8. dotCMS has already accomplished a POC of what a Java 11 migration would look like for our codebase and there are a number of changes that must take place - with regards to the containers we run in (Tomcat) and the tooling we can provide, e.g. incompatibilities with OSGI and library versions, that are disruptive and will be disruptive to our customers. This means we are moving slowly and mindfully to support Java 11. dotCMS plans to begin migrating our codebase to Java 11 in Q2 2020.
While Oracle now only provides Java 8 support to customers with large Oracle support contracts. However there are a number of other companies who provide long term support for Java 8 under different auspices, and will continue to provide long-term support for both Java 8 and other LTS Java versions in the future. dotCMS will leverage OpenJDK and the long-term support of it provided by industry leaders to insure ongoing support and stability for our customers.
In 2017, Oracle announced a change to Java’s release policy to prioritize modernization and features over long term support and stability. At this time, Oracle changed from a 2 year major version release cycle to a faster release cycle of 6 months, with a major “LTS” (Long Term Supported) versions delivered every 3 years. This means, in practice, that Java 8 is an LTS version, followed by Java 11 and Java 15. Each LTS version of Java will be supported for a term of at least 8 years from its release date. The critical difference in this new Java release policy is that long term access to Oracle’s Java updates, patches and security fixes on the stable versions now require a support contract with Oracle.
The rise of OpenJDK
The change in Oracle's Java release and support cycle and have caused a great deal of uncertainty in the Java Community. Fortunately, before this policy change, Oracle released a majority of the Java code base to the OpenJDK project and Java community under the GPL. With this OpenJDK release, a number of companies and organizations have stepped into the vacuum left by Oracle to offer long term supported cross-platform Java builds that provide alternatives for customers who are not paid Oracle customers, and who wish to prioritize stability over rapid releases.
dotCMS leverages the support of these other large organizations to ensure we can provide stable long-term support for Java. dotCMS now uses the standard OpenJDK 1.8 build supported by Amazon Linux for both our testing and our installations. We no longer run or test with Oracle's JDK. We will support Java 11 in the near future, most likely by the second half of 2019.
Supported OpenJDK 8 Options (as of Jan 2019)
The following companies and organizations provide long term support for Java 1.8 based on the OpenJDK. Although dotCMS does not explicitly test on all these releases, dotCMS does test on the standard OpenJDK release, and since all of these versions are built upon the OpenJDK, dotCMS is expected to work without issues on all of these versions.
- AdoptOpenJDK: https://adoptopenjdk.net/
- A consortium led by IBM/Eclipse
- RedHat: https://access.redhat.com/articles/1299013
- RedHat is now part of IBM
- OpenJDK: https://openjdk.java.net/
- Offers Java builds with multiple flavors of JVMs
- Azul Zulu: https://www.azul.com/downloads/zulu/
- Certified and publicly usable builds of OpenJDK can be installed by following the instructions on their site.
- AWS Corretto: https://aws.amazon.com/corretto