Thursday, October 6, 2016

JDK 9

The goal of this Project is to produce an open-source reference implementation of the Java SE 9 Platform, to be defined by a forthcoming JSR in the Java Community Process.

The schedule and features of this release are proposed and tracked via the JEP Process, as amended by the JEP 2.0 proposal.

Schedule

2016/05/26 Feature Complete
2016/08/11 All Tests Run
2016/09/01 Rampdown Start
2016/10/20 Zero Bug Bounce
2016/12/01 Rampdown Phase 2
2017/01/26 Final Release Candidate
2017/03/23 General Availability

The milestone definitions are the same as those for JDK 8.

Status

We are past the Feature Complete milestone, but that does not mean that the feature set is frozen. If you own a JEP or a small enhancement that is not yet complete then you can request an extension via the FC extension-request process.

Features

JEPs targeted to JDK 9, so far

102: Process API Updates
110: HTTP 2 Client
143: Improve Contended Locking
158: Unified JVM Logging
165: Compiler Control
193: Variable Handles
197: Segmented Code Cache
199: Smart Java Compilation, Phase Two
200: The Modular JDK
201: Modular Source Code
211: Elide Deprecation Warnings on Import Statements
212: Resolve Lint and Doclint Warnings
213: Milling Project Coin
214: Remove GC Combinations Deprecated in JDK 8
215: Tiered Attribution for javac
216: Process Import Statements Correctly
217: Annotations Pipeline 2.0
219: Datagram Transport Layer Security (DTLS)
220: Modular Run-Time Images
221: Simplified Doclet API
222: jshell: The Java Shell (Read-Eval-Print Loop)
223: New Version-String Scheme
224: HTML5 Javadoc
225: Javadoc Search
226: UTF-8 Property Files
227: Unicode 7.0
228: Add More Diagnostic Commands
229: Create PKCS12 Keystores by Default
231: Remove Launch-Time JRE Version Selection
232: Improve Secure Application Performance
233: Generate Run-Time Compiler Tests Automatically
235: Test Class-File Attributes Generated by javac
236: Parser API for Nashorn
237: Linux/AArch64 Port
238: Multi-Release JAR Files
240: Remove the JVM TI hprof Agent
241: Remove the jhat Tool
243: Java-Level JVM Compiler Interface
244: TLS Application-Layer Protocol Negotiation Extension
245: Validate JVM Command-Line Flag Arguments
246: Leverage CPU Instructions for GHASH and RSA
247: Compile for Older Platform Versions
248: Make G1 the Default Garbage Collector
249: OCSP Stapling for TLS
250: Store Interned Strings in CDS Archives
251: Multi-Resolution Images
252: Use CLDR Locale Data by Default
253: Prepare JavaFX UI Controls & CSS APIs for Modularization
254: Compact Strings
255: Merge Selected Xerces 2.11.0 Updates into JAXP
256: BeanInfo Annotations
257: Update JavaFX/Media to Newer Version of GStreamer
258: HarfBuzz Font-Layout Engine
259: Stack-Walking API
260: Encapsulate Most Internal APIs
261: Module System
262: TIFF Image I/O
263: HiDPI Graphics on Windows and Linux
264: Platform Logging API and Service
265: Marlin Graphics Renderer
266: More Concurrency Updates
267: Unicode 8.0
268: XML Catalogs
269: Convenience Factory Methods for Collections
270: Reserved Stack Areas for Critical Sections
271: Unified GC Logging
272: Platform-Specific Desktop Features
273: DRBG-Based SecureRandom Implementations
274: Enhanced Method Handles
275: Modular Java Application Packaging
276: Dynamic Linking of Language-Defined Object Models
277: Enhanced Deprecation
278: Additional Tests for Humongous Objects in G1
279: Improve Test-Failure Troubleshooting
280: Indify String Concatenation
281: HotSpot C++ Unit-Test Framework
282: jlink: The Java Linker
283: Enable GTK 3 on Linux
284: New HotSpot Build System
285: Spin-Wait Hints
287: SHA-3 Hash Algorithms
288: Disable SHA-1 Certificates
289: Deprecate the Applet API
290: Filter Incoming Serialization Data
292: Implement Selected ECMAScript 6 Features in Nashorn
Last update: 2016/8/4 19:47 UTC

In a recent communication, Mark Reinhold, chief architect of the Java Platform Group at Oracle, suggested delaying the general availability of Java 9 by six months, to provide more time to finish Project Jigsaw. After some deliberation the delay was accepted, setting the general availability of Java 9 to March 2017, exactly three years after the release of Java 8.

Mark Reinhold has previously talked about the conflict of features vs. schedule, manifesting a preference towards keeping a relatively fixed schedule even at the expense of deferring features to a later release. He has, however, argued in favour of exceptions when the feature in question is considered the flagship feature of the newer version. For Java 9 the flagship feature is Project Jigsaw, so given the fact that it would slip the initial schedule, and considering it has seen reasonable progress in recent months, the community accepted the delay.

This decision aligned with a similar one that was taken for Java 8. When it became apparent that Java 8's flaghip feature Project Lambda wouldn't be ready on schedule, a delay was also proposed and accepted. 

Project Jigsaw was originally scheduled for release in Java 8, but in 2013 Reinhold announced it would be deferred to Java 9 rather than hold up that release, and announced a two year cadence for future Java releases and accordingly a March 2016 release of Java 9. Then last May Reinhold set the official schedule GA date as September 2016, also a six month delay. If Reinhold's latest schedule holds, Java 9's release will be a full three years after the prior release. 

Java 10 has not been scheduled but the flagship feature is expected to be Project Valhalla, who's goal is to provide advanced Java VM and language features such as value types, generic specialization, and enhanced volatiles.

September 18–22, 2016 | San Francisco JavaOne KeynotesOpenWorld Keynotes Java Community Keynote Stephen Chin, Java Community Manager, Oracle Show all speakers Watch full-length keynote Accelerating Innovation with Java: The Future Is Today John Duimovich, Java CTO and IBM Distinguished Engineer, IBM Watch full-length keynote Engineering the Red Planet Dr. Anita Sengupta, Research Professor, University of Southern California Watch full-length keynote The Java Keynote at JavaOne 2016 Georges Saab, Vice President of Development, Oracle Show all speakers Watch full-length keynote Enabling a Smart and Connected World with Java Michael Greene, Vice President and General Manager of System Technologies and Optimization in the Software and Services Group, Intel Watch full-length keynote https://www.oracle.com/javaone/on-demand/index.html?bcid=5147916031001 https://www.oracle.com/javaone/on-demand/index.html?bcid=5138679338001 https://www.oracle.com/javaone/on-demand/index.html?bcid=5131273315001 https://www.oracle.com/javaone/on-demand/index.html?bcid=5131093508001 https://www.oracle.com/javaone/on-demand/index.html?bcid=5131206266001 https://www.oracle.com/javaone/on-demand/index.html?bcid=5130996435001