JEP | Name | Category | Summary |
---|---|---|---|
135 | Base64 Encoding & Decoding | |
Define a standard API for Base64 encoding and decoding. |
101 | Generalized Target-Type Inference | |
Smoothly expand the scope of method type-inference to support (i) inference in method context and (ii) inference in chained calls. |
103 | Parallel Array Sorting | |
Add additional utility methods to java.util.Arrays that use the JSR 166 Fork/Join parallelism common pool to provide sorting of arrays in parallel. |
104 | Type Annotations | |
Extend the set of annotatable locations in the syntax of the Java programming language to include names which indicate the use of a type as well as (per Java SE 5.0) the declaration of a type. |
105 | DocTree API | |
Extend the Compiler Tree API to provide structured access to the content of javadoc comments. |
106 | Add Javadoc to javax.tools | |
Extend the javax.tools API to provide access to javadoc. |
107 | Bulk Data Operations for Collections | |
Add functionality to the Java Collections Framework for bulk operations upon data. This is commonly referenced as "filter/map/reduce for Java." The bulk data operations include both serial (on the calling thread) and parallel (using many threads) versions of the operations. Operations upon data are generally expressed as lambda functions. |
109 | Enhance Core Libraries with Lambda | |
Enhance the Java core library APIs using the new lambda language feature to improve the usability and convenience of the library. |
112 | Charset Implementation Improvements | |
Improve the maintainability and performance of the standard and extended charset implementations. |
113 | MS-SFU Kerberos 5 Extensions | |
Add the MS-SFU extensions to the JDK's Kerberos 5 implementation. |
114 | TLS Server Name Indication (SNI) Extension | |
Add support for the TLS Server Name Indication (SNI) Extension to allow more flexible secure virtual hosting and virtual-machine infrastructure based on SSL/TLS protocols. |
115 | AEAD CipherSuites | |
Support the AEAD/GCM cipher suites defined by SP-800-380D, RFC 5116, RFC 5246, RFC 5288, RFC 5289 and RFC 5430. |
118 | Access to Parameter Names at Runtime | |
Provide a mechanism to easily and reliably retrieve the parameter names of methods and constructors at runtime via core reflection. |
119 | javax.lang.model Implementation Backed by Core Reflection | |
Provide an implementation of the javax.lang.model.* API backed by core reflection rather than by javac. In other words, provide an alternate API to access and process the reflective information about loaded classes provided by core reflection. |
120 | Repeating Annotations | |
Change the Java programming language to allow multiple application of annotations with the same type to a single program element. |
121 | Stronger Algorithms for Password-Based Encryption | |
Provide stronger Password-Based-Encryption (PBE) algorithm implementations in the SunJCE provider. |
123 | Configurable Secure Random-Number Generation | |
Enhance the API for secure random-number generation so that it can be configured to operate within specified quality and responsiveness constraints. |
124 | Enhance the Certificate Revocation-Checking API | |
Improve the certificate revocation-checking API to support best-effort checking, end-entity certificate checking, and mechanism-specific options and parameters. |
126 | Lambda Expressions & Virtual Extension Methods | |
Add lambda expressions (closures) and supporting features, including method references, enhanced type inference, and virtual extension methods, to the Java programming language and platform. |
127 | Improve Locale Data Packaging and Adopt Unicode CLDR Data | |
Create a tool to convert LDML (Locale Data Markup Language) files into a format usable directly by the runtime library, define a way to package the results into modules, and then use these to incorporate the de-facto standard locale data published by the Unicode Consortium's CLDR project into the JDK. |
128 | Unicode BCP 47 Locale Matching | |
Define APIs so that applications that use BCP 47 language tags (see RFC 5646) can match them to a user's language preferences in a way that conforms to RFC 4647. |
129 | NSA Suite B Cryptographic Algorithms | |
Provide implementations of the cryptographic algorithms required by NSA Suite B. |
130 | SHA-224 Message Digests | |
Implement the SHA-224 message-digest algorithm and related algorithms. |
131 | PKCS#11 Crypto Provider for 64-bit Windows | |
Include the SunPKCS11 provider in the JDK for 64-bit Windows. |
133 | Unicode 6.2 | |
Extend existing platform APIs to support version 6.2 of the Unicode Standard. |
117 | Remove the Annotation-Processing Tool (apt) |
Pruning
|
Remove the apt tool, associated API, and documentation from the JDK. |
122 | Remove the Permanent Generation |
Pruning
|
Remove the permanent generation from the Hotspot JVM and thus the need to tune the size of the permanent generation. |
136 | Enhanced Verification Errors | |
Provide additional contextual information about bytecode-verification errors to ease diagnosis of bytecode or stackmap deficiencies in the field. |
138 | Autoconf-Based Build System | |
Introduce autoconf (./configure-style) build setup, refactor the Makefiles to remove recursion, and leverage JEP 139: Enhance javac to Improve Build Speed. |
139 | Enhance javac to Improve Build Speed | |
Reduce the time required to build the JDK and enable incremental builds by modifying the Java compiler to run on all available cores in a single persistent process, track package and class dependences between builds, automatically generate header files for native methods, and clean up class and header files that are no longer needed. |
140 | Limited doPrivileged | |
Enable code to assert a subset of its privileges without otherwise preventing the full access-control stack walk to check for other permissions. |
142 | Reduce Cache Contention on Specified Fields | |
Define a way to specify that one or more fields in an object are likely to be highly contended across processor cores so that the VM can arrange for them not to share cache lines with other fields, or other objects, that are likely to be independently accessed. |
147 | Reduce Class Metadata Footprint | |
Reduce HotSpot's class metadata memory footprint in order to improve performance on small devices. |
148 | Small VM | |
Support the creation of a small VM that is no larger than 3MB. |
149 | Reduce Core-Library Memory Usage | |
Reduce the dynamic memory used by core-library classes without adversely impacting performance. |
150 | Date & Time API | |
Define a new date, time, and calendar API for the Java SE platform. |
153 | Launch JavaFX Applications | |
Enhance the java command-line launcher to launch JavaFX applications. |
155 | Concurrency Updates | |
Scalable updatable variables, cache-oriented enhancements to the ConcurrentHashMap API, ForkJoinPool improvements, and additional Lock and Future classes. |
156 | G1 GC: Reduce need for full GCs | |
Enhance G1 so that it does not rely on full GCs to perform class unloading or any other critical operations. |
160 | Lambda-Form Representation for Method Handles | |
Improve the implementation of method handles by replacing assembly language paths with an optimizable intermediate representation and then refactoring the implementation so that more work is done in portable Java code than is hardwired into the JVM. |
161 | Compact Profiles | |
Define a few subset Profiles of the Java SE Platform Specification so that applications that do not require the entire Platform can be deployed and run on small devices. |
162 | Prepare for Modularization | |
Undertake changes to smooth the eventual transition to modules in a future release, provide new tools to help developers prepare for the modular platform, and deprecate certain APIs that are a significant impediment to modularization. |
164 | Leverage CPU Instructions for AES Cryptography | |
Improve the out-of-box AES Crypto performance by using x86 AES instructions when available, and by avoiding unnecessary re-expansion of the AES key. |
166 | Overhaul JKS-JCEKS-PKCS12 Keystores | |
Facilitate migrating data from JKS and JCEKS keystores by adding equivalent support to the PKCS#12 keystore. Enhance the KeyStore API to support new features such as entry metadata and logical views spanning several keystores. Enable the strong crypto algorithms introduced in JEP-121 to be used to protect keystore entries. |
168 | Network Discovery of Manageable Java Processes | |
Define a lightweight network protocol for discovering running and manageable Java processes within a network subnet. |
170 | JDBC 4.2 | |
Minor enhancements to JDBC to improve usability and portability |
171 | Fence Intrinsics | |
Add three memory-ordering intrinsics to the sun.misc.Unsafe class. |
172 | DocLint | |
Provide a means to detect errors in Javadoc comments early in the development cycle and in a way that is easily linked back to the source code. |
173 | Retire Some Rarely-Used GC Combinations | |
Remove three rarely-used combinations of garbage collectors in order to reduce ongoing development, maintenance, and testing costs. |
174 | Nashorn JavaScript Engine | |
Design and implement a new lightweight, high-performance implementation of JavaScript, and integrate it into the JDK. The new engine will be made available to Java applications via the existing javax.script API, and also more generally via a new command-line tool. |
175 | PowerPC/AIX Port | |
Add Linux/PowerPC64 and AIX/PowerPC64 to the set of supported OpenJDK platforms. |
176 | Mechanical Checking of Caller-Sensitive Methods | |
Improve the security of the JDK's method-handle implementation by replacing the existing hand-maintained list of caller-sensitive methods with a mechanism that accurately identifies such methods and allows their callers to be discovered reliably. |
177 | Optimize java.text.DecimalFormat.format | |
Optimize java.text.DecimalFormat.format by taking advantage of numerical properties of integer and floating-point arithmetic to accelerate cases with two or three digits after the decimal point. |
178 | Statically-Linked JNI Libraries | |
Enhance the JNI specification to support statically linked native libraries. |
179 | Document JDK API Support and Stability | |
There is a long-standing shortcoming in the JDK in terms of clearly specifying the support and stability usage contract for com.sun.* types and other types shipped with the JDK that are outside of the Java SE specification. These contracts and potential evolution policies should be clearly captured both in the source code of the types and in the resulting class files. This information can be modeled with JDK-specific annotation types. |
180 | Handle Frequent HashMap Collisions with Balanced Trees | |
Improve the performance of java.util.HashMap under high hash-collision conditions by using balanced trees rather than linked lists to store map entries. Implement the same improvement in the LinkedHashMap class. |
184 | HTTP URL Permissions | |
Define a new type of network permission which grants access in terms of URLs rather than low-level IP addresses. |
185 | Restrict Fetching of External XML Resources | |
Enhance the JAXP APIs to add the ability to restrict the set of network protocols that may be used to fetch external resources. |
192 | String Deduplication in G1 | |
Reduce the Java heap live-data set by enhancing the G1 garbage collector so that duplicate instances of String are automatically and continuously deduplicated. |
195 | Scalable Native Memory Tracking | |
Improve the scalability of native memory tracking. |
196 | Nashorn Optimistic Typing | |
Improve Nashorn performance by making assumptions about specific types used in arithmetic and array indexing operations, by being prepared to recover when those assumptions prove incorrect, and by improving the HotSpot JVM's ability to optimize non-Java bytecode. |
202 | Nashorn Class Filter | |
Provide fine-grained control over access to Java classes from JavaScript code. |
203 | Nashorn: Lexically-Scoped Variable & Constant Declarations | |
Implement the lexically-scoped variable (let) and constant (const) declarations of the forthcoming ECMAScript 6 specification. |
204 | JavaFX Accessibility | |
Enhance existing JavaFX controls to support assistive technologies and provide a public API so that developers can write their own accessible controls. |
205 | New Controls for JavaFX | |
Add a spinner control, a formatted-text control, and a standard set of alert dialogs to JavaFX. |
206 | Modernize the JavaFX Media Stack on Mac OS X | |
Port the JavaFX media stack on Mac OS X from QTKit and Quicktime, which have been deprecated, to the newer AVFoundation framework. |
207 | Leverage CPU Instructions to Improve SHA Performance on SPARC | |
Improve SHA secure-hashing performance by adding C2 intrinsics for SPARC processors that have SHA instructions. |
208 | Java Packager Improvements | |
Provide additional features and bundlers and an improved native-platform experience in the Java Application Packager. |
209 | JavaFX Scene Builder Update | |
Update Scene Builder (SB) to support the new JavaFX features introduced in the 8u40 release and also address the most critical limitations of the SB 2.0 release, in particular the handling of FXML references. No significant new features will be added. |
210 | LambdaForm Reduction and Caching | |
Reduce LambdaForm creation and use caching to improve the performance of dynamic languages. |
239 | Update JavaFX/WebView to Newer Version of WebKit | |
Update the JavaFX WebView component to use the latest version of WebKit. |
242 | JVM Trace Events for Failed Allocations | |
Add trace events to expose information about threads that trigger garbage-collection operations and threads that are waiting for such operations to complete. |