Project Jigsaw
The primary goals of this Project were to:
-
Make it easier for developers to construct and maintain libraries
and large applications; -
Improve the security and maintainability of Java SE Platform 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 use in small computing devices and dense cloud deployments.
To achieve these goals we designed and implemented a standard module system for the Java SE 9 Platform and applied that system to the Platform itself and to its Reference Implementation, JDK 9. The module system is powerful enough to modularize the JDK and other large legacy code bases, yet is still approachable by all developers.
Now that we've delivered on these goals this Project will, going forward, host additional work to improve the module system and the modular platform as motivated by feedback from actual use.
This Project is sponsored by the Compiler Group.
Key documents, presentations, & other resources
- The State of the Module System (written overview, Mark Reinhold)
- Make Way for Modules! (30m video overview, Mark Reinhold)
- Prepare for JDK 9 (50m video, Alan Bateman)
- Modular Development with JDK 9 (60m video, Alex Buckley)
- Project Jigsaw: Under the Hood (50m video, Alex Buckley)
- Modules in One Lesson & Migrating to Modules (50m live-coding videos, Mark Reinhold)
- Quick-Start Guide
- JEPs
- JSR 376: Java Platform Module
System
- Requirements
- Specification, including:
- Issue summary
- Additional presentations
- Mailing list: jigsaw-dev (you must subscribe to the list in order to post to it)
- Source code
Development history
Work on Project Jigsaw began in August 2008 with an initial exploratory phase. Work on the design and implementation for Java 9 began in 2014.
The reorganization of the source code (JEP 201) was merged into JDK 9 build 27, in August 2014.
The restructuring of run-time images to support modules (JEP 220) was merged into JDK 9 build 41, in December 2014.
JSR 376, for the Java 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 of The State of the Module System, together with JEP 261 and the first early-access builds containing the prototype module system, were published in September 2015.
An initial list of open issues in the proposed specification was published in March 2016.
An updated version of The State of the Module System, with new material on compatibility and migration, was also published in March 2016.
The module system itself, specified by JSR 376 and implemented by JEP 261, was merged into JDK 9 build 111 in March 2016.
Work on Project Jigsaw completed in July 2017 and was delivered for general use as part of JDK 9 on 21 September 2017.