Recent JEP Updates: Fence Intrinsics, DocLint, Retire 3 GC Combinations, Nashorn
JDK Enhancement Proposals (JEPs) are a public record of proposals for updating and enhancing the OpenJDK. JEP 1, the JDK Enhancement-Proposal and Roadmap Process, created in 2011, describes the "process for collecting, reviewing, sorting, and recording the results of proposals for enhancements to the JDK and for related efforts, such as process and infrastructure improvements." If you're interested in tracking what's happening with respect to JDK enhancement via a compact, formal set of documents, following JEPs as they're updated is a good way to do it.
The four latest JEPs (171-174), all created in November, provide an interesting look at some of the thinking that's going into OpenJDK planning and development right now.
JEP 171: Fence Intrinsics
JEP 171: Fence Intrinsics was created by Doug Lea. This JEP proposes to "Add three memory-ordering intrinsics to the
sun.misc.Unsafe class." So, what's this really about? If you read further into JEP 171, you find that this enhancement is largely related to the evolution of memory and hardware, both recent innovations and the cumulative changes that have taken place since Java was created a couple decades ago. Specifically, the JEP will address the problem that "JVMs don't have advertised mechanisms providing memory orderings that were not envisioned originally or in the JSR 133 memory model specs." Just for reference, JSR 133 was finalized in 2004. Indeed, a lot has changed since then.
JEP 172: DocLint
JEP 172: DocLint was authored by Jonathan Gibbons. Its purpose is to "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." Essentially, intelligence will be added to the
javadoc tool to detect some of the more common errors in Javadoc comments entered by developers (for example, bad syntax, bad HTML, bad references). The result will be improved Javadoc documentation, and reduced propagation of erroneous documentation forward into new releases.
JEP 173: Retire Some Rarely-Used GC Combinations
JEP 173: Retire Some Rarely-Used GC Combinations, authored by Bengt Rutisson, seeks to "Remove three rarely-used combinations of garbage collectors in order to reduce ongoing development, maintenance, and testing costs." Specifically, garbage collection combinations DefNew + CMS, ParNew + SerialOld, and Incremental CMS will be removed, because they "add extra complexity to the GC code base and consume valuable testing resources while adding very little value to the users."
Significant Nashorn features will include:
- based on the ECMAScript-262 Edition 5.1 language specification
- javax.script (JSR 223) API support
jep-changes email list
If you'd like to know when a new JEP is created, or when a JEP is updated, subscribe to the jep-changes OpenJDK email list.
- Cay Horstmann, A First Look at Scala Macros;
- John Ferguson Smart, Functional Test Coverage - taking BDD reporting to the next level;
- W Brian Leonard, Hello Oracle Cloud;
- W Brian Leonard, Oracle HR Schema Objects in the Cloud.
Our current Java.net poll asks you to respond to the prompt, In 2013, my own work will be most affected by new developments related to... Voting will be open until Friday, January 25.
Here are our latest Java.net Spotlights.
Tori Wieldt - Oracle User Group Leaders' Summit:
Several Java User Group (JUG) leaders participated in the Oracle User Group Leaders' Summit this week at Oracle HQ. The International Oracle User Group Community (IOUC) is a community of leaders representing Oracle users groups worldwide. Members include leaders from over 900 Oracle user groups, and leaders from communities focused on Java, MySQL and Solaris...
GNU/Andrew - Security and Browser Plugins:
I don’t like to go into too much detail about security updates, but I think it’s necessary to point out a few facts about the one we released yesterday, given some of the inaccuracies I’ve seen been spread on Twitter and elsewhere. Patches were belatedly approved for OpenJDK 7u. OpenJDK 6 is not affected...
Roger Brinkley - Java Spotlight Episode 116: Dr. Heinz Kabutz on Java concurrency @heinzkabutz:
Interview with Dr. Heinz Kabutz, Java Champion, on Java concurrency. Heinz is a Java programmer living on the beaches of the Island of Crete, where he publishes his entertaining "Java Specialists' Newsletter", read by about 70000 Java experts in at least 130 countries. Warning: for advanced Java programmers and those with a sense of humor...
Oracle Security Alert for CVE-2013-0422:
This Security Alert addresses security issues CVE-2013-0422 (US-CERT Alert TA13-010A - Oracle Java 7 Security Manager Bypass Vulnerability) and another vulnerability affecting Java running in web browsers. These vulnerabilities are not applicable to Java running on servers, standalone Java desktop applications or embedded Java applications. They also do not affect Oracle server-based software...
Markus Eisele - Selecting Your Java EE 6 Application Server:
The number one question I get asked is: "Which Java EE Application server should we use?". With the growing adoption of Java EE 6, new compatible application servers get certified. The current official compatibility and certification matrix lists 12 different products certified for the Full Profile, the Web Profile or both. Here is what I do to narrow the solution space down...
Here are the stories we've recently featured in our Java News section:
- Martijn Verburg: A Garbage Collection Analysis of PCGen, the popular Open Source Character Generator;
- Alex Collins: The final keyword in Java;
- Dustin Marx: Hamcrest Containing Matchers;
- Tim Boudreau: The Java Security Exploit in (Mostly) Plain English;
- Marcus Lagergren: Implementing Dynamic Languages on the JVM;
- Geertjan Wielenga: Icons for NetBeans Platform Applications on Windows;
- Pierre Ernst: Look-ahead Java deserialization;
- Geertjan Wielenga: How to Create a Custom "JSF Pages from JPA Entity Classes" Code Generator;
- GNU/Andrew: Zero and IcedTea 2.3.4;
- Chris Mayer: London startup of the week: JClarity;
- Partha Bhattacharjee: Gradle - A Maven perspective.;
- Dustin Marx: Determining JDK Installation;
- Adam Bien: The Obvious But Ignored Way To Save Money (And Increase Productivity);
- Micha Kops: A short Introduction to ScalaTest; and
- Arun Gupta: JAX-RS Client API and GlassFish 4 - Logging HTTP messages (TOTD #194).