Following the passing of the May 2016 deadline for a feature complete Java 9, Mark Reinhold, Chief Architect of the Java Platform, suggested a method to collectively review all work remaining in unfinished JEPs and decide whether to delay the project further in order to accommodate them, or to descope them. Although the process has not finished, the current state suggests a combination of both.
Reinhold has previously stated his view regarding the measures to be taken in the case where a new version of Java does not meet its deadline: on the one side, there is a core set functionality that gives meaning to the new version, and delivery has to be delayed in order to include this core functionality; on the other side, he emphasizes the importance of establishing a relatively predictable cadence for new versions, concluding that non-core functionality should be descoped if it's not going to be finished on time. This rationale supports the process proposed so as to select the JEPs for which Java 9 will wait, and the ones that will have to be derived at a later state.
This process expects JEP owners to either request an extension of the deadline, indicating the estimated date of delivery, or to drop Java 9 as their target. For those who do request the extension, a review process will determine whether the extension is granted or not. This process affects 11 JEPs out of 82.
Among the JEPs at risk, and judging by the state of the issue tracker, at the moment of writing this article 10 have requested a deadline extension, to which 7 have already been already granted; the other three still pending. The reviewed due date for these accepted JEPs is September 1st, meaning a delay of roughly three months. If we were to assume that the current picture represents the final decision, Java 9 would be affected by a further delay of three months, potentially pushing GA to June 2017, and four JEPs would be descoped to prevent further delays. The JEPs to potentially be descoped would be:
- JEP 110: HTTP/2 Client, September 1st as integration date, no due date provided.
- JEP 277: Enhanced deprecation, September 1st as integration date, due date September 29th.
- JEP 282: jlink, The Java Linker; no dates provided.
- JEP 284: New HotSpot Build System, extension not requested.
Although nothing is definitive yet, it seems that recent developments are shaping Java 9 closer to its final form. If the aforementioned JEPs are finally dropped, further analysis will be needed to assess the impact, especially around JEP 282 (jlink), which appears to be a fundamental component of the Module System.