Find JSRs
Submit this Search

Ad Banner

Summary  |  Proposal  |  Detail (Summary & Proposal)  |  Nominations
JSRs: Java Specification Requests
JSR 379: JavaTM SE 9 Release Contents

Stage Access Start Finish
Final Release Download page 21 Sep, 2017  
Final Approval Ballot View results 29 Aug, 2017 11 Sep, 2017
Proposed Final Draft Download page 01 Aug, 2017  
Public Review Ballot View results 25 Apr, 2017 08 May, 2017
Public Review Download page 21 Mar, 2017 20 Apr, 2017
Early Draft Review Download page 17 Jan, 2017 16 Feb, 2017
Expert Group Formation   28 Jun, 2016 13 Jul, 2016
JSR Review Ballot View results 14 Jun, 2016 27 Jun, 2016
JSR Review   18 May, 2016 13 Jun, 2016
Status: Final
JCP version in use: 2.10
Java Specification Participation Agreement version in use: 2.0

The Umbrella JSR for the ninth edition of the Java SE Platform.

Expert Group Transparency:
  Public Project Page
  Public Communications
  Issue Tracking


Specification Leads
  Iris Clark Oracle
Star Spec Lead Mark Reinhold Oracle
Expert Group
  Azul Systems, Inc.
: Simon Ritter
: Tim Ellison
: Iris Clark
: Mark Reinhold
Red Hat
: Andrew Haley
: Volker Simonis

Updates to the Original JSR

The following changes have been made to the original proposal:

Proposal update 2016.06.29:

Initial Expert Group Membership:

Azul Systems: Simon Ritter
Google: Kevin Bourrillion
IBM: Tim Ellison
Oracle: Iris Clark
Oracle: Mark Reinhold
Red Hat: Andrew Haley

Original Java Specification Request (JSR)

Identification | Request | Contributions

Section 1. Identification

Submitting Member: Oracle

Name of Contact Person: Iris Clark

E-Mail Address:

Telephone Number: +1 408 276 3909

Fax Number: -

Specification Lead Member: Oracle America, Inc.

Specification Leads: Iris Clark, Mark Reinhold

E-Mail Address:,

Telephone Number: +1 408 276 3909, +1 408 276 7256

Fax Number: -

Initial Expert Group Membership:

Red Hat

Note that this information has been updated from this original proposal.

Supporting this JSR:

Red Hat

Section 2: Request

2.1 Please describe the proposed Specification:

The Java Platform, Standard Edition ("Java SE") is the core Java platform for general-purpose computing. In this release of the platform, Java SE 9, we intend to address a number of areas based upon trends in the programming community, trends in hardware architectures, and above all our continued commitment to ensuring the broadest possible success of core Java technology for years to come.

The Java SE 9 Platform Specification will build upon the Java Language Specification, the Java Virtual Machine Specification, and the Java SE APIs defined in Java SE 8. As an Umbrella Platform Specification, this document will specify significant features by reference to other Specifications which are either defined in new Component JSRs or revised in JCP Maintenance Releases of existing such JSRs. This Specification will directly specify smaller features, enhancements, clarifications, and bug fixes that are not part of any Component JSR Specification.

The primary changes proposed for this release of the Java SE Platform are the introduction of a module system and the use of that system to modularize the Platform itself. The module system will be specified by JSR 376; the modularization of the Platform, being a global concern, will be specified by this Umbrella JSR.

2.2 What is the target Java platform? (i.e., desktop, server, personal, embedded, card, etc.)

This JSR defines a release of the Java SE platform targeted at embedded, desktop, server, and cloud environments.

2.3 The Executive Committees would like to ensure JSR submitters think about how their proposed technology relates to all of the Java platform editions. Please provide details here for which platform editions are being targeted by this JSR, and how this JSR has considered the relationship with the other platform editions.

This JSR defines version 9 of the Java platform, Standard Edition.

2.4 What need of the Java community will be addressed by the proposed specification?

The introduction of a module system will address two fundamental needs of all large Java applications, namely reliable configuration and strong encapsulation, as explained in JSR 376. The application of the module system to the Java SE Platform itself will enable implementations of the Platform to be configured as needed for use in small computing devices and dense cloud deployments, to improve their security by encapsulating implementation-internal APIs, and to improve their performance via more effective ahead-of-time, whole-program optimization techniques.

2.5 Why isn't this need met by existing specifications?

While existing (in progress) JSRs and open-source projects have investigated the evolution of the Java language, the JVM, and the Java SE APIs, only a platform JSR can unite the results of these investigations into a new edition of the Java SE platform.

2.6 Please give a short description of the underlying technology or technologies:

The technologies that make up Java SE 9 will be described in component JSRs and smaller features enumerated in the Java SE 9 Platform Specification. Candidate lists are proposed in section 3.1.

2.7 Is there a proposed package name for the API Specification? (i.e., javapi.something, org.something, etc.)

The Java SE platform itself does not have a single package name. All of its requirements are reflected in the packages of its constituent Java SE APIs.

2.8 Does the proposed specification have any dependencies on specific operating systems, CPUs, or I/O devices that you know of?


2.9 Are there any security issues that cannot be addressed by the current security model?

None are known at this time.

2.10 Are there any internationalization or localization issues?

None are known at this time.

2.11 Are there any existing specifications that might be rendered obsolete, deprecated, or in need of revision as a result of this work?

The Java Language Specification, the Java Virtual Machine Specification, the Java Native Interface, and other elements of the Java SE Platform Specification will be revised by this JSR.

2.12 Please describe the anticipated schedule for the development of this specification.

Expert Group formation: June 2016
Early Draft Review: July 2016
Public Review: September 2016
Proposed Final Draft: January 2017
Final Release: March 2017

2.13 Please describe the anticipated working model for the Expert Group working on developing this specification.

The Expert Group will communicate primarily via e-mail, using a publicly-readable mailing list.

2.14 Provide detailed answers to the transparency checklist, making sure to include URLs as appropriate:

  • Is the schedule for the JSR publicly available, current, and updated regularly?

    We intend this to be the case.

  • Can the public read and/or write to a wiki for the JSR?

    We do not plan to have a wiki, but there will be a well-known public home web page for the JSR.

  • Is there a publicly accessible discussion board for the JSR that you read and respond to regularly?

    No. There will be three public mailing lists (see 2.18, below).

  • Have you spoken at conferences and events about the JSR recently?

    Yes. Members of the Java SE team at Oracle, as well as external contributors, have spoken and written about planned enhancements for some time at several conferences including FOSDEM, JavaOne, Jfokus, and Devoxx.

  • Are you using open-source processes for the development of the RI and/or the TCK?

    The source code for the Reference Implementation will be developed in the JDK 9 Project, in the OpenJDK Community, similar to development for Java SE 8. The weekly early-access builds are available for anyone to test and review.

  • What are the Terms of Use required to use the collaboration tools you have prepared to use with the Expert Group, so that prospective EG members can judge whether they are compatible with the JSPA?

  • What is the location of your publicly-accessible Issue list? In order to enable EC members to judge whether Issues have been adequately addressed, the list must make a clear distinction between Issues that are still open, Issues that have been deferred, and those that are closed, and must indicate the reason for any change of state.

  • What is the mechanism for the public to provide feedback on your JSR?

    The public "comments" list (see 2.18, below).

  • Where is the publicly-accessible document archive for your Expert Group?

    (See 2.20, below.)

  • Does the Community tab for my JSR have links to and information about all public communication mechanisms and sites for the development of my JSR?

    We intend this to be the case.

  • Do you have a Twitter account or other social networking feed which people can follow for updates on your JSR?


  • Which specific areas of feedback should interested community members (such as the Adopt-a-JSR program) provide to improve the JSR (please also post this to your Community tab)?

    Feedback in all areas is welcomed.

2.15 Please describe how the RI and TCK will de delivered, i.e. as part of a profile or platform edition, or stand-alone, or both. Include version information for the profile or platform in your answer.

The RI will be the Java Development Kit (JDK), version 9. The TCK will be the Java Compatibility Kit (JCK), version 9.

2.16 Please state the rationale if previous versions are available stand-alone and you are now proposing in 2.13 to only deliver RI and TCK as part of a profile or platform edition (See sections 1.1.5 and 1.1.6 of the JCP 2 document).

(Not applicable.)

2.17 Please provide a description of the business terms for the Specification, RI and TCK that will apply when this JSR is final.

These are the licenses for the specification and the TCK. They are similar to those for Java SE 8 (JSR 337). Minor adjustments to these licenses may be necessary to allow modular run-time images.

Similar to Java SE 8, the RI will be made available under the GNU General Public License, version 2 for the virtual machine and the GNU General Public License, version 2, with the Classpath Exception. for class libraries and portions of the virtual machine that expose public APIs

2.18 Please describe the communications channel you have established for the public to observe Expert Group deliberations, provide feedback, and view archives of all Expert Group communications.

We will implement a trio of mailing lists in an approach already used by earlier JSRs, including that for Java SE 8 (JSR 337):

  • Expert Group discussions will be carried out on an "experts" mailing list, limited to Expert Group members.
  • The "observers" list will be for those who wish to monitor and, perhaps, discuss the EG's progress. Messages sent to the "experts" list will automatically be forwarded to this list. Anyone may subscribe to this list, and any subscriber may post. EG members are under no obligation to follow the traffic on this list.
  • The "comments" list will be for sending comments, suggestions, and other feedback directly to the EG. Only EG members may subscribe to this list, but anyone may post. The EG will read all messages sent to this list, and will record feedback in the issue tracker as appropriate.

The archives of all of these lists will be publicly readable.

2.19 What is the URL of the Issue Tracker that the public can read, and how does the public log issues in the Issue Tracker?

The public may log issues to the Issue Tracker,, by sending mail to the public "comments" lists (see 2.18, above).

2.20 Please provide the location of the publicly accessible document archive you have created for the Expert Group.

Section 3: Contributions

3.1 Please list any existing documents, specifications, or implementations that describe the technology. Please include links to the documents if they are publicly available.

The following JSR will be proposed for inclusion as a component of the Java SE 9 Umbrella JSR. The final Java SE 9 Platform Specification might not include this JSR, and it might include some JSRs which are not listed here.

  • JSR 376: Java Platform Module System

The following pre-existing component JSRs will be subsumed by the Umbrella JSR:

Maintenance Releases are planned for the following pre-existing component JSRs:

The following core Java SE specifications will be modified under the auspices of this Umbrella JSR to incorporate changes made for routine maintenance and small-scale enhancements:

  • Java Language Specification
  • JVM Specification
  • Java SE APIs
  • Java Native Interface

Smaller features will be specified directly by this Umbrella JSR. Many of these are being prototyped in the JDK 9 Project and are described, for now, by JDK Enhancement Proposals (JEPs). Each feature listed below includes a link to the corresponding JEP document as a convenience, but that document will not be a normative part of the Java SE 9 Platform Specification. The final Specification might not include all of these features, and it might include some features which are not listed here.

Platform Modular Run-Time Images
Module System (JSR 376)
Multi-Release JAR Files
New Version-String Scheme
The Modular JDK
Language Elide Deprecation Warnings on Import Statements
Local-Variable Type Inference
Milling Project Coin
Core Libraries Convenience Factory Methods for Collections
Enhanced Deprecation
Enhanced Method Handles
Platform Logging API and Service
Process API Updates
Spin-Wait Hints
Variable Handles
Networking HTTP/2 Client
Security Create PKCS12 Keystores by Default
DRBG-Based SecureRandom Implementations
Datagram Transport Layer Security (DTLS)
OCSP Stapling for TLS
TLS Application-Layer Protocol Negotiation Extension
Client Libraries Deprecate the Applet API
Multi-Resolution Images
Platform-Specific Desktop Features
TIFF Image I/O
XML XML Catalogs

3.2 Explanation of how these items might be used as a starting point for the work.

See section 2.1.