Oracle have announced the second set of enhancement proposals (known as JEPs) that will deliver features for Java 9, including major news about Java modularity.
The first round of features was announced on August 11th, and was a relatively modest, although useful, set of features. By contrast, this announcement contains some of the real meat for Java developers. Following the commitment made by Oracle that the delayed modularity project will ship as part of JDK 9, Oracle have produced a series of four JEPs to deliver a redesigned solution for Java modularity.
Oracle's Java engineering team have already delivered JEP 162 (Prepare for Modularization) and JEP 201 (Modular Source Code). The second of these JEPs completely changed the layout of the JDK source, and rearranged it to align with the new module boundaries. The description of the module system itself is contained in JEP 200, although this has not actually been delivered yet, presumably because the details may change depending upon issues encountered when building the implementation.
The new batch of JEPs includes JEP 220 (Modular Runtime Images), and this is effectively the point of no return for modularity. After this point, The Java runtime system will no longer be contained in jar files, and instead will be composed of modules. Files such as rt.jar and tools.jar will be a thing of the past. The new system will consist solely of modules, although the platform will continue to accept and run applications and libraries packaged as jar files. The intention is that over time, application developers wil migrate to the new modular formats as well.
Mark Reinhold, Chief Architect for the Java platform, commented that for the Java runtime system contained in the JRE and JDK: "The JAR format has run its course. It's time to move on". He also recognized that the move to a modular system will have major implications for IDEs, tool makers and many frameworks, as the current introspection mechanisms rely upon a URI syntax that is tied to the legacy JAR format.The outreach programme is being run by Oracle's Quality group, with community support from the London Java Community and a global group of JUGs under the AdoptOpenJDK and AdoptAJSR projects. A number of key open source projects have already been contacted, including Apache projects: Ant, Builds, log4j, Hadoop and CXF as well as Eclipse, Hudson, IntelliJ, RedHat Netty, Redhat Tools, TestNG.
Oracle are also preparing a draft of a Java Specification Request to cover the module system specification as a new Java standard.