Intro
Overall Presentation Goal
Speaker's Qualification
What are the problems?
JSR-277: Java Module System
Module for Development and Deployment
Defining a Superpackage (JSR-294)
Superpackage w/JSR-277 Annotations
Compile a Superpackage
Logical View of Java Module
Module Naming
Version Numbers
Module Export
Module Import
Module Import Policy
Other Information in Metadata
JAM (JAva Module) Format
Physical View of Java Module
Repository
Repository in Delegation
Possibilities with Repository
Runtime
ClassLoading
Impact to the Java Runtime
Extensible Architecture
Current Status
Post-EDR Topics
Summary
Q&A
The JSR-277 (Java Module System) specification seeks to address many issues associated with Java Archives (JARs), including the lack of version control, the difficulties in distributing multiple JARs for deployment, the classpath hell, JAR hell, and extension hell, etc. that have been well known to many Java developers for years.
The specification defines an architecture with first-class modularity, packaging and deployment support in the Java platform, including a distribution format, a versioning scheme, a repository infrastructure, and runtime support.
JSR 277 is targeted to be delivered as a component of Java SE 7.0.
This presentation will go over the high level design of the Java Module System described in the early draft specification, and the integration between JSR-277 and JSR-294 (Improved Modularity Support in the Java Programming Language) for ease of development and information hiding.
Stanley M. Ho is the architect for the Java Deployment team in J2SE at Sun Microsystems, Inc. He has been involved with Java since JDK 1.1 when he joined the JavaBeans team. He was the technical lead or the main contributor in many projects, including Java Web Start, Java Update, JDK/JRE Install-On-Demand, Java Upgrade (Migration from Microsoft VM), J2EE Client Access Service, Java Plug-in, JavaBeans/ActiveX Bridge, etc. His current focus is to improve ease-of-deployment in Mustang (J2SE 6.0) and Dolphin (J2SE 7.0).