This page covers the implementation of the modularity specifications defined by JSR 277 and JSR 294 as well as the related work in the JDK. It is targeted for inclusion in JDK 7.
Superpackages are a new language construct for information
hiding that is being defined by JSR 294, and it defines the
linguistic unit of modularity in the Java programming language. The
Java Module System defined by JSR 277 builds on top of that by
defining the deployment unit of modularity; it adds the versioning
scheme, distribution format, repository and the comprehensive
runtime architecture for the deployment of module-based
applications and libraries. In addition to the specifications
defined by JSR 277 and JSR 294, other parts of the JDK will be
updated to take advantage of the new features, for example the Java
launcher program (
java.util.ResourceBundle API, the java.util.ServiceLoader API,
The Modules project hosts the reference implementation of the new core functionality and serves as an umbrella for other related work items developed by other OpenJDK groups.
Note that this is a live snapshot of the ongoing development project before it is integrated into the main OpenJDK source tree. At this time, the code may not be as stable or complete as the rest of OpenJDK. It is made available to allow all members of OpenJDK community to collaborate in the development process and to allow for early feedback from interested observers.
The implementation project tracks the specifications developed by JSR 277 and JSR 294. However, it may sometimes be out-of-sync with those specifications. At times it may lag behind them or certain features may not be implemented. At other times the implementation may prototype features to explore their feasibility before they are added to the specifications.
- Implementation of the classes in java.module
- Module initialization and class loading
- LocalRepository and URLRepository core functionality
- Launching modules using the
Not yet implemented:
- See the daily bug list emails on the modules-dev list
JSR 277 early draft (October 2006, new draft expected soon)
JSR 277 expert group observer mailing list.
JSR 277 APIs. The source for the
java.modulepackage is available under the directory
src/share/classesin the implementation sources.
JSR 294 superpackage strawman
JSR 294 expert group mailing list and archive.
JSR 294 reflective APIs. The sources for the class
java.lang.reflect.Superpackageas well as the proposed updates to
java.lang.ClassLoaderare available under the directory
src/share/classesin the implementation sources. Also available are the updates to the
javax.lang.modelAPIs that will be made by a maintenance revision of JSR 269.
- Source bundle available at the OpenJDK download site.
Getting started with the Modules project