JDK 8 (Almost) Feature Complete
JDK 8 has reached Milestone 7 in JDK 8 build b91. M7 is the Feature Complete milestone, where all features and unit tests have been implemented and integrated. Unfortunately, not all features were delivered on time. Three JEPs (JDK Enhancement Proposal) are still in progress, although they are estimated to be completed for JDK build b93. The good news is that all JEPs related to Project Lambda were delivered. Mark Reinhold, Chief Architect of the Java Platform Group, also said that the delay in the Feature Complete milestone will not have any effect on later milestones.
Here are the completed JEPs that part of M7.
- 101 Generalized Target-Type Inference
- 104 Annotations on Java Types
- 107 Bulk Data Operations for Collections
- 109 Enhance Core Libraries with Lambda
- 115 AEAD CipherSuites
- 118 Access to Parameter Names at Runtime
- 119 javax.lang.model Implementation Backed by Core Reflection
- 120 Repeating Annotations
- 123 Configurable Secure Random-Number Generation
- 126 Lambda Expressions & Virtual Extension Methods
- 161 Compact Profiles
- 162 Prepare for Modularization
- 171 Fence Intrinsics
- 176 Mechanical Checking of Caller-Sensitive Methods
- 178 Statically-Linked JNI Libraries
- 179 Document JDK API Support and Stability
- 184 HTTP URL Permissions
- 185 JAXP 1.5: Restrict Fetching of External Resources
JEP 185 is a late addition which addresses some security issues in the XML APIs. Here are the 3 JEPs that were not completed on time.
- 140 Limited doPrivileged
- 155 Concurrency Updates
- 180 Handle Frequent HashMap Collisions with Balanced Trees
JEPs 140 and 180 are important security improvements. Changes in JEP 155 are needed to align the ConcurrentHashMap API with the Project Lambda streams API. JDK 8 will officially be feature complete once these remaining JEPs are completed.
The JDK 8 development schedule is divided into a sequence of milestone cycles. Most are six to eight weeks in length, with builds occurring roughly once a week. The remaining milestones are:
- 2013/09/05 M8 (Developer Preview)
- 2014/01/23 M9 (Final Release Candidate)
- 2014/03/18 GA (General Availability)
Developer Preview is a reasonably stable build suitable for testing by the developer community. Final Release Candidate is the build submitted for release testing. General Availability is the final release, ready for production use.