Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News OpenJDK Project Releases Java Module System (JSR 277) and Improved Modularity (JSR 294) EA Snapshot

OpenJDK Project Releases Java Module System (JSR 277) and Improved Modularity (JSR 294) EA Snapshot

The OpenJDK project has released an early access source code snapshot of implementations of the Java Module System (JSR 277) and Improved Modularity Support (JSR 294). JSR 277 addresses modularity from a deployment unit perspective, addressing distribution format, versioning, dependencies, repositories, runtime, and support tools necessary for modules. JSR 294 addresses modularity from a development perspective, introducing a new language construct, called "superpackages," for information hiding.

Currently implemented features include:

  • Implementation of the classes in java.module
  • Module initialization and class loading
  • LocalRepository and URLRepository core functionality
  • Launching modules using the java command
  • Prototype jam packaging tool

The project has a fair amount of documentation available:

For additional insight, a Google Tech Talk featuring Stanley Ho, JSR 277 specification lead, and Michal Ciernia, a contributing member in the expert group, details the current design.

Andreas Sterbenz offers these additional pertinent random notes regarding the snapshot:

  • This is a live development snapshot. It is not a beta. Nothing is complete and polished.
  • It is source code for developers. No binaries at this time.
  • Not much of the JSR 294 implementation is included, because not much exists so far. This will change.
  • The way to get the source is by downloading a ZIP file that includes all source code in the j2se workspace. That's why it is 68 MB, not because the Modules implementation is that large. We expect to get something more convenient - such as a Mercurial repository - before too long.
  • All the new code in the Modules project is under the GPLv2 (plus classpath exception).
  • Regression and unit tests are included.

Rate this Article