Project Jigsaw: Module-System Development Dashboard

This page contains the list of outstanding work that is currently known to be required in order to fully prototype the Jigsaw module system. The tasks are organized by milestone so as to serve as a high-level plan.

See the modularization dashboard for tasks related to JDK modularization.

Move to new build, Feb/March 2013 (tentative)

JDK 8 is transitioning to the new build system. The transition date is not set in stone at this time but once the transition is done then the old build system will be on life support. It is critical to Jigsaw development to transition to the new build system as soon as possible after the JDK 8 mainline transitions.

Task Owner Effort Description/Status Last Update

Write up module/directory structure layout, including details as to how each tool (jpkg for example) handles the structure

Alan/Jon S Plan to have this done by early/mid Nov 2012. 2012/10/19
Sync up jigsaw/jigsaw Karen/Jon/Mandy/Alan S

jigsaw/jigsaw is still at jdk8-b48, need to get to jdk8-latest before the build work can continue.

Big merges required in langtools and hotspot repository due to significant changes in the upstream forst.

The sync up will require several updates to the module definitions too.

Status: done, jigsaw/jigsaw now up to jdk8-b63.


Build system for Jigsaw. Initially this may require the source code to be in shuffled form (build shuffle script). It may also require that the runtime support for modulepath to be in place.

Eric + Jigsaw Team L Build team resources currently focused on completing new build system in JDK 8. 2012/11/1

Main Design Points Prototyped, June 2013 (tentative)

The primary goal is to have brought the code to the point where the main design points have been prototyped and demonstrated, in preparation for submitting the module-system JSR.

Task Owner Effort Status Last Update
Publish design document Mark M

First version of "Big Picture" published. Needs to be refreshed and follow-on draft needs to be published covering other aspects of the design/approach.

javac changes to enforce exports Jon Implemented but not pushed due to concerns about test impact.

Will re-visit after JDK 8 M6 milestone

Scopes Alex, Jon, Mandy, maybe Paul M

Alex has written up the Language/VM changes here.

Scopes requires support in javac and also changes to the runtime, in particular the resolver.

Visibility and Accessibility Karen L Goals of visibility and access checking for modules:
  • Ensure that applications cannot see or access components that are intended for a restricted audience.
  • Ensure consistent visibility and accessibility across all stages of a module's life-cycle, including consistent distinctions between visibility and accessibility exceptions.
  • Continue to support existing visibility and access boundaries, while adding new ones.
  • Create visibility and accessibility rules that are explicit and clear to users.
Runtime support for modulepath Alan M

More complicated than the original working prototype because of the VM/Jigsaw interface and other changes.

Plan to also look into supporting augmenting existing modules to allow for patching (-Xbootclasspath/p replacement) and white-box testing. Need further investigate/prototyping first.

Goal to have in jigsaw/jigsaw by end 2012.

Container Support Mark XL

Containers are critical to supporting application servers, test harnesses, maybe annotation processors and also critical for Java agents.

Current goal is to scope this out by end 2012.


Source Code Restructuring, no target date

The goal for this milestone is to restructure the JDK source as modules.

Task Owner Effort Description and Status
Source code restructure M

Script to shuffle to/from module layout checked in.

Still to do:

  • Platform specific declarations in module-info, can we avoid needing to have more than one module-info per module?
  • Check in sources into source tree
  • Run experiments to validate and refine proposed source code restructure (need to get experience with wider teams on whether module path layout works for bug fixing, implementation features, one module, multiple modules, etc)
  • Do to the big hg move, need to decide when is the appropriate time to do this.
Jigsaw build work, phase 2 Erik M

This is placeholder for a second phase of (likely) build work.