The primary goals of this Project were to:
Make it easier for developers to construct and maintainlibraries
and large applications;
Improve the security and maintainability of Java SEPlatform Implementations in general, and the JDK in particular;
Enable improved application performance; and
Enable the Java SE Platform, and the JDK, to scale down for usein small computing devices and dense cloud deployments.
To achieve these goals we designed and implemented a standardmodule system for the Java SE 9 Platform and applied thatsystem to the Platform itself and to its Reference Implementation,JDK 9. The module system is powerfulenough to modularize the JDK and other large legacy code bases, yetis still approachable by all developers.
Now that we'vedelivered on thesegoals this Project will, going forward, host additional work toimprove the module system and the modular platform as motivated byfeedback from actual use.
This Project is sponsored by theCompiler Group.
Work on Project Jigsawbegan in August2008 with an initialexploratoryphase. Work on the design and implementation for Java 9began in2014.
The reorganization of the source code (JEP201) was merged into JDK 9 build 27, in August2014.
The restructuring of run-time images to support modules(JEP 220) was merged into JDK 9build 41, in December 2014.
JSR 376, for theJava Platform Module System,was approved by the JCP Executive Committee in December 2014.
The plan for encapsulating most internal APIs (JEP 260) was posted in August 2015.
The initial version ofThe Stateof the Module System, together withJEP261 and the firstearly-access builds containingthe prototype module system, were published in September2015.
An initial list ofopen issues in theproposed specification was published in March 2016.
An updated version ofThe State of theModule System, with new material on compatibility andmigration, was also published in March 2016.
The module system itself, specified byJSR376 and implemented byJEP 261, wasmergedinto JDK 9 build 111 in March 2016.
Work on Project Jigsawcompleted in July2017 and was delivered for general use as part ofJDK 9 on 21 September 2017.