The proposed GA release date of Java 9 has been accepted, giving the team more time to iron out issues with Project Jigsaw, among others.
— Mark Reinhold (@mreinhold) October 18, 2016
According to the latest update from Mark Reinhold, Oracle’s chief architect of the Java platform, the release timeline has changed to reflect the new feature extension:
- 2016/05/26 Feature Complete
- 2016/12/22 Feature Extension Complete
- 2017/01/05 Rampdown Start
- 2017/02/09 All Tests Run
- 2017/02/16 Zero Bug Bounce
- 2017/03/16 Rampdown Phase 2
- 2017/07/06 Final Release Candidate
- 2017/07/27 General Availability
“Feature Extension Complete” is the date by which JEPs and small enhancements that have been granted extensions must be integrated into the master forest. Although the Feature Complete milestone has been met, uncompleted JEPs or small enhancements can be granted extensions.
At the time of writing, of the 85 JEPs scheduled for Java 9, 6 JEPs are “integrated”. This means that the code and unit tests have been integrated into the master code base, but is not yet complete. There are two more stages: “complete”, when testing has been completed and only bug fixes are expected, and “closed/delivered”, when shipped.
The integrated JEPs are:
- 110: HTTP 2 Client (see Java 9 series: HTTP/2 Client for more information)
- 200: The Modular JDK
- 220: Modular Run-Time Images
- 238: Multi-Release JAR Files
- 261: Module System
- 282: jlink: The Java Linker
The largest hold up is the Module system. In the proposed schedule change, Mark Reinhold wrote: “We recently received critical feedback that motivated a redesign of the module system’s package-export feature, without which we’d have failed to achieve one of our main goals.” This led to the introduction of “weak modules“.
2 JEPS are still at the “targeted” stage, the stage before integration (277: Enhanced Deprecation and 290: Filter Incoming Serialization Data). See the JEP process for an overview of the life of a JEP.