After years of delays and speculation, as a part of Project Jigsaw, module system has finally been integrated into JDK 9 early access build 111. The changeset covers 4 different JEPs as follows:
-
JEP 282: jlink: The Java Linker ('jlink' being a tool to assemble a set of modules (and their dependencies) to generate an optimized custom run-time image as defined in JEP 220: Modular Run-Time Images. JEP 220 was integrated in JDK 9 early access build 41.)
Mark Reinhold's blog post dated 2016/03/25 explains Project Jigsaw with respect to the "six JEPs implemented by dozens of engineers over many years."
The last major component, the module system itself (JSR 376 and JEP 261), was integrated into JDK 9 earlier this week and is now available for testing in early-access build 111.
Reinhold also recommend his Devoxx BE 2015 keynote and The State of Module System, "to start learning about the module system itself".
Reinhold's blog post closed with the following:
The module-system design will continue to evolve in the JSR for a while yet, based on feedback and experience. The implementation will evolve in parallel in the Project Jigsaw “Jake” forest, and we’ll continue to publish bleeding-edge early-access builds based on that code, separately from the more-stable JDK 9 builds.
InfoQ has previously covered Project Jigsaw and modularity in Java as a part of JavaOne 2015 keynotes news and was also covered by Nicolai Parlog. More recently at QCon London, Simon Ritter dived into the fundamentals of modularity in Java in his presentation on 'Project Jigsaw in JDK 9: Modularity Comes To Java'.