Modules

The Modules Project was inactive and was subsequently dissolved Oct 2023. The approach described here was superseded by Project Jigsaw.

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.

Introduction

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 (bin/java), the java.util.ResourceBundle API, the java.util.ServiceLoader API, etc.

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.

Status

Early access source code is now available from the OpenJDK download site. Please read the notes below and check out the documentation.

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.

Features

Currently implemented:

Not yet implemented:

Specifications

Source Code

Documentation

Community