Oracle Offers Java Enhancement Proposals for JDK 9
Oracle has released a set of proposed improvements for JDK 9, called Java Enhancement Proposals (JEPs), via a process that is meant to provide a way to stimulate discussion and development of new features before they become formal Java Specification Requests (JSRs) submitted to the Java Community Process (JCP).
The current list of JEPs aimed at JDK 9, which is expected in early 2016, includes:
- Process API Updates (JEP 102), which aims to improve the API for controlling and managing OS processes.
- Improve Contended Locking (JEP 143), which aims to improve the performance of contended Java object monitors.
- Segmented Code Cache (JEP 197), which aims to divide the code cache into distinct segments, each of which contains compiled code of a particular type, in order to improve performance and enable future extensions.
- Light Weight JSON API (JEP 198), which aims to provide a lightweight API for consuming and generating JSON documents and data streams.
- Smart Java Compilation, Phase Two (JEP 199), which aims to improve the sjavac (smart-javac internal wrapper) tool so that it can be used by default in the JDK build, and generalize it so that it can be used to build large projects other than the JDK.
- Modular Source Code (JEP 209), which aims to reorganize the JDK source code into modules, enhance the build system to compile modules, and enforce module boundaries at build time.
The JEPs are being offered outside the JCP, but they are wending their way through a process of their own -- the JEP Process -- which defines an approach to collecting, reviewing, sorting and recording proposed enhancements of the JDK. The main goal of the JEP Process is "to produce a regularly updated list of proposals to serve as the long-term Roadmap for JDK Release Projects and related efforts." That roadmap looks three years ahead "to allow sufficient time for the most complex proposals to be investigated, defined and implemented." The JEP Process also defines "process states" of each JEP, such as "draft," "posted, "submitted," "candidate, "funded" and "completed."
In his explanation of the JEP Process, Mark Reinhold, chief architect of Oracle's Java Platform Group, defines an "enhancement" as "an effort to design and implement a nontrivial change to the JDK code base or to do some other kind of work whose goals, progress and result are worth communicating broadly." The "JDK Roadmap" is the list of JEPs that have been judged as candidates for current and future JDK Release Projects by the OpenJDK Lead.
Reinhold hastens to add that the JEP is not "in any way" meant to supplant the JCP. "If a proposal accepted into this process intends to revise existing standard interfaces, or to define new ones, then a parallel effort to design, review and approve those changes must be undertaken in the JCP, either as part of a Maintenance Review of an existing JSR or in the context of a new JSR," he writes
Oracle releases periodic early access "snapshots" of the binaries and documentation for JDK 9 on its Oracle Technology Network Web site. An early access release of JDK 9 (build b29), based on code available on OpenJDK at the time it was built, is available for download now. Oracle warns that these early access releases: "might not include the latest security patches."