Oracle has changed how new versions of Java is going to be released. This write-up explains the new versioning process and how Java updates had been getting released lately.
Earlier Java Releases:
Java versions earlier than JDK 8 used to follow more of a “Waterfall” development approach.
At the beginning of a release cycle, a list of new features that are going to be included in the upcoming version of Java are decided and the new version is not released until all features are complete.
Earlier versions of Java used to be released every 2 to 3 years.
Lately Java has moved to 6 months cycle - updates are now released March and September of every year.
Releases are following more of an “Agile” approach meaning all features that are complete will make it to the release. Release will not be delayed due to incomplete features. Incomplete features will be part of future versions.
As promised, Java versions have been getting released every six months with the latest version of version 14 released recently.
Licensing, Support and Bug Fixes:
Oracle JDK (from JDK 11) can only be used in production with a commercial support contract.
The only free JDK 11 and later will be Open JDK binaries.
Free updates for Open JDK versions would be available until next release that is typically every 6 months.
JDK 8 provided by Oracle can be used indefinitely for free.
Public updates of JDK 8 for commercial use are supported until Jan, 2019. Personal use updates are extended until 2020.
If commercial applications need stability, need to move on to paid version of Java.
Only certain releases are marked as long-term support releases with security updates and bug fixes available for more than 6 months.
There will be an LTS release roughly every 3 years.
Deprecation and Clean-ups:
Java has been in development for 24 years. There are about 4,000 public classes in JDK 8. In order to keep the codebase clean, Oracle has announced that older/unused features would be deprecated and cleaned up more often than it used to be.
Java has been moving faster with versioning changes. Enterprise applications using Java, should move along faster with Java upgrades to keep up with these release changes.