Project Jigsaw was the effort to apply the concepts and features of modularity to the Java platform itself. The modularization of the platform essentially solves both the problems described previously. We'll look at how later in this chapter, but let's begin looking at the work that was done for Project Jigsaw and how it affects developers interacting with the Java platform.
The project itself was a huge effort that involved the following high-level steps:
- Re-organizing the platform source code to make it more conducive for modularization.
- Defining and building modules with predefined input and output interfaces and with a clear dependency map.
- Encapsulating internal classes and allowing usage for only public APIs.
- Providing tools for generating smaller and modular runtime images as an alternative to the monolithic rt.jar.
Let's deep-dive...