Start at the corners

Puzzling out Java’s modular future: Project Jigsaw in phase two

Lucy Carey

Mark Reinhold announces gear shift from explorative stages to creation of production-quality design and implementation for Jigsaw in Java 9.

For many, the absence of Project Jigsaw in Java 8 was the one
chink in an otherwise warmly received release. Although the
inclusion of the Compact Profiles feature did go some way to
meeting more immediate platform footprint scalability needs, for
many, modularization is still a sticking point. Fortunately, things
are looking up for Jigsaw.  

latest blog post has revealed that the
project is now stepping up a gear from its research phase in which
the Oracle crew have “designed and prototyped

one particular approach
to meeting a

draft set of requirements
.” According to
Reinhold, the Jigsaw team has 
now reached phase
two of their work: creating a living, breathing production-quality
design and implementation for JDK 9 and  Java SE 9.

To this end, Reinhold reveals that he has penned
a new document to collect goals and requirements. Spurred on by
some well-publicized security mishaps, the onus will be on taking
into account lessons learnt from past misadventures, and creating
truly watertight software. This will be written “at a broader and
more abstract level than the

previous document
so as not to
over-constrain the solution space.” He adds that the document will
be one of the jumping points for the upcoming Java Platform Module
System JSR.

Emphasising the enormity of the impact Jigsaw
will have on the JDK, wisely, the team are proceeding in large
steps, each one with a corresponding JEP, rather than crash landing
a fully formed monster feature onto the platform. The initial three
JEPs will propose a specific modular structure for the JDK, re-sort
the JDK source code, excluding binaries, and then modularize the
binary images at a later stage.

The fourth JEP will serve as an intro to the
module system itself, which will be aligned with the module-system
JSP. Whilst this might seem a backward way of going about things,
Reinhold explains that because the primary JEPs only need to make
minimal assumptions about the module system’s capabilities, “work
on them can proceed in parallel with work on the module-system JEP
and JSR.”

If you’d like to learn more about this
long-anticipated initiative, you might find the following video
useful. In this talk, filmed at JAX Mainz, 2013, Paul Sandoz
explains Jigsaw’s key goals and design principles, shows its
application to the Java platform, and demonstrates how you can use
it to create your own modular libraries and


comments powered by Disqus