Modularisation dropped from Java 8.
The project to modularise Java, Jigsaw, originally planned for Java 7 and deferred to Java 8, has now been pushed back to Java 9, which is due to arrive in 2015. Mark Reinhold, Chief Architect of the Java Platform Group at Oracle, says in his blog that his proposal to defer Project Jigsaw met with evenly divided feedback, but ultimately the decision rested with the Java SE 8 Expert Group (JSR337). That group showed all supporting the deferral of modularising Java’s run-time and a strong majority supporting the plan to push the entire modularisation effort to Java SE 9. A final and formal resolution is still pending but is unlikely to change course.
Despite the deferral, work on preparing the way for modularisation will still be done in Java 8, ready for Java 9. A Java Enhancement Proposal, JEP162 “Prepare for Modularisation”, sets out a plan to smooth the transition by making changes such as deprecating problematic APIs, adding command-line tools to show static dependencies and switching to ServiceLoader. These changes should make the eventual transition to modularisation easier.
The Oracle architect also believes that there is still progress to be made in the converging of Java SE and the high-end profiles of Java ME, and another proposal, JEP161 lays out a plan to define a number of subset profiles for Java SE which could allow the platform to be deployed and run on small devices. For example, an initial draft sees core libraries such as lang, io, nio and util making up a “Compact1″ profile, with the addition of sql, xml, dom, sax and rmi making up “Compact2″; a “Compact3″ profile would bring in many more libraries.
Reinhold closes by saying that “deferring Jigsaw to a Java 9 release in 2015 is by no means a pleasant decision,” but that it does appear to be the “best available option”.