Oracle has announced that they intend to move Java to a release every six months.

The news was first hinted at in minutes of the August meeting of the JCP Executive Committee and was confirmed by Oracle spokesman Donald Smith this morning in a post on his blog. The new release schedule is intended to begin immediately after the release of Java 9, with the next release of Java to come in early 2018.

Along with the new cadence Oracle are announcing a major shift in how they build and release Java. Oracle intends to produce and distribute OpenJDK binaries as the primary JDK for developers going forward. This will replace the proprietary-licensed Oracle JDK as the primary release artifact distributed by Oracle.

The OpenJDK binaries will be licensed under the GPLv2 with "Classpath Exception" and will be free from the redistribution, binary patching and other restrictions that have historically encumbered the Oracle JDK license. The Oracle JDK product will still exist, but in the form of long-term support releases as part of an Oracle support contract.

Mark Reinhold, chief architect for Java, cites delays with Java 8 and 9 under the current train-based release model as a major motivation for faster releases.

Java's current release cycle is intended to be two years, but Java 9 has encountered significant delays due to the Java Platform Modules System (Jigsaw) and is now around 18 months late. Java 8 was also delayed for around eight months in order to address security issues. Java 9 is currently scheduled for general availability on September 21st.

Under the new release schedule Oracle proposes strict time-based releases, known as feature releases. These will appear every year in March and September and will have version numbers of the form 18.3, 18.9, 19.3 and so on. Unlike the current train-based model, these releases will not be delayed to accommodate a major feature. New features will not be merged to a release source control repo until they are feature complete - if they miss a release, they must be retargeted for the following release or later.

The intention of this model is to prevent problems with a keystone feature (such as Lambdas in Java 8 or Modules in Java 9) from delaying a release that contains other features that would be useful to developers.

In addition to the feature releases, Oracle will continue to ship update releases every quarter, in January, April, July, and October. This means that each feature release will receive two updates before the next feature release. The content of update releases will also be strictly limited and only permitted to contain fixes of security issues, regressions or bugs in recently-added features.

Reinhold explains the overall view as:

Developers who prefer rapid innovation, so that they can leverage new features in production as soon as possible, can use the most recent feature release or an update release thereof and move on to the next one when it ships.

For enterprises and organizations who don't necessarily want or need to upgrade at a rapid pace, Oracle is proposing to produce a long-term support (LTS) release every three years. These releases will be supported for a minimum of three years, and possibly longer, depending on market reaction.

Oracle is proposing that under the new model, the first proposed LTS release would be "18.9" and a final decision is expected after discussion with other OpenJDK contributors and assessing proposal feedback. Java 8 would also be regarded as a special LTS release and be supported until 2025.

Smith comments that:

OpenJDK binaries become the primary channel for developers to access the latest innovation in the Java SE platform, the Oracle JDK will remain as a long term support LTS offering for Oracle’s commercial and support customers.

Outside of Oracle, Martijn Verburg - leader of the London Java Community - had this comment about the proposed new schedule:

The intention from Oracle to release Java earlier and more often can only be a good thing for the Java ecosystem. Java 9 with Jigsaw and Incubation modules has laid down a great platform for this to become a reality.



Oracle does has a serious release engineering challenge on their hands, but there’s plenty of institutional knowledge there and in the wider OpenJDK community in order to make this happen. I expect some bumps along the way but look forward to a regular cadence, with other Java implementers getting access to the draft specifications as they’re in flight so that they can also release early and often.

Oracle has frequently been subjected to criticism over the pace of new releases of Java. The platform is in the unenviable position of being used by both large enterprises and as the foundation of a large amount of open-source platforms and languages that are used to a faster release cycle. Today's announcement is clearly an attempt to square that circle of expectations. It remains to be seen how Java developers and Oracle's customers will respond to the proposed changes.