Prior to Java 9, there was a period of overlap where the newly GA version was "bedded in", before declaring it the preferred version. Free updates would continue on the previous version, even after it lost its primary status, for a period of time (typically 12+ months) to allow a clean cutover. However with the change to a strict time-based schedule, which InfoQ reported on in the autumn, this traditional free support period has apparently also come to an end.

The old approach suited the ecosystem well - as in practice only teams who were directly dependent on a brand new feature migrated immediately. Even shops that wanted to upgrade aggressively tended to wait for at least a couple of minor updates. Modern software platforms are incredibly complex, and so it is entirely normal for there to be minor implementation flaws in a .0.0 release.

Many teams did not want to take the risk of immediate updates, and so this relaxed approach was a good fit for a range of risk appetites among application owners. When the new version contains eagerly-expected features (e.g. Java 8 lambdas), then the adoption curve is correspondingly steep, and for "nice-to-have" releases it is appreciably more shallow.

Since the switch to the new release process, it has emerged that Oracle's announced roadmaps seem to have some significant weaknesses that have not been addressed. It appears that Oracle's new roadmap diverges significantly from expectations and from all previous versions.

In a recent blog post, Simon Ritter from Azul Systems has produced this image, that shows the release cadence, in as far as it can be deduced from Oracle's public statements. The post also outlines Azul's proposed support solution.

As it stands, there is no longer any grace period whereby a new version of Java is "bedded in" and continues to be supported. Instead, as soon as a new version is released, it becomes the default and production shops are expected to swap to it immediately if they want to be supported by Oracle for free - a "cliff-edge".

It should also be noted that, despite being developed under the old "train" release model, Java 9 has no long-term support options of any kind. No serious enterprise should be introducing Java 9 to their environment if they are not prepared to move from it again quickly - Oracle has made it very clear that it has no long-term future from their perspective.

Oracle spokesman, Donald Smith remarked on Twitter:

As with JDK 6 and JDK 7 Updates Projects in the past, if a suitable party steps forward to maintain the JDK 9 Updates series further once the final Oracle-led JDK 9 Update release has been published, we will discuss how to best enable such a transition on this Project's mailing list.

The reality of the situation is that the vast majority of Java shops in the world use free-to-purchase Java and have no formal support contract with Oracle or any other vendor. Oracle's strategy could be interpreted as an attempt to try to change this and force corporate customers towards commercial support contracts.

However, even if this is the intention, it is seemingly at odds with another aspect of the new Java release model. Oracle has announced explicitly that they will start shipping OpenJDK binaries as official releases from Java 10. This can only be a tacit acknowledgement of the fact that OpenJDK is now a drop-in replacement for OracleJDK.

InfoQ approached Oracle for comment, but they have not responded formally at press time.