Oracle Launches JDK 7 Release Candidate
Oracle this week unveiled the first and probably only release candidate of the Java Development Kit 7 (JDK 7), the next major release of the Java SE platform, and the first new version of Java to make it out of the open source community in five years. It's also the first new version published since Oracle acquired Sun Microsystems and became the corporate steward of the Java language and platform. The final version is set for general availability on July 28.
Oracle announced the availability of the JDK7 RC on Thursday (July 7) at an international launch event streamed over the Web. The event included keynotes from Oracle's Redwood Shores, Calif., headquarters, presentations from Java Community Process (JCP) members in Brazil and England, and a day of online sessions and panels.
Adam Messinger, Oracle's VP of Development and leader of the Java Development Team, kicked off the launch with an interview with a conversation with Oracle chief Java architect Mark Reinhold. When Messinger asked what the most significant thing about this release might be, Reinhold quipped, "We're finally shipping it!"
Reinhold told viewers/attendees that this release was really more evolutionary than revolutionary.
"We all know that, for various business and political reasons, this release has taken some time," he said. "This is not the revolutionary release that some of our past releases have been. It's more of an evolutionary release. There are some significant improvements, but no really earth-shattering or ground-breaking kinds of features."
This release candidate (build 147) includes 13 changes, more than half of which are administrative updates that don't affect the actual code, Reinhold wrote in a pre-launch blog. The rest are what he called "true showstoppers," including several hard VM crashes and a JIT correctness bug identified by an Eclipse unit test.
Among the significant improvements Reinhold cited in this release is a new set of I/O APIs. Known as Java Specification Request (JSR) 203, or "NIO.2," the APIs support a new filesystem interface, scalable asynchronous I/O operations, socket-channel binding and configuration, and multicast datagrams.
"We finally have a real file system API that will let you do things like manipulate symbolic links and access filesystem-specific operations," he said.
Reinhold also mentioned the Fork/Join Framework (JSR 166 – "Concurrency Utilities"), which is a set of medium-level utilities designed to provide functionality commonly needed in concurrent programs. The utilities will provide a means of providing true parallelism on the platform, Reinhold said, which is "the first step towards enabling Java for multi-core applications."
Modularization is another important part of this release. Oracle is pushing what the company describes on its Web site as "A large-scale effort to refactor, or break up, the Java SE platform into smaller, separate, interdependent modules." Individual modules, the company says, can then be downloaded as required by the Java virtual machine and/or Java applications, effectively shrinking the size of the runtime on the user's machine.
This release also emphasizes multi-language support. JSR 292a ("InvokeDynamic") adds new byte-code to support dynamically typed languages in the Java platform, including dynamic scripters such as Ruby and Python.
The list of enhancements in this JDK 7 RC also includes:
•Strict class-file checking
•JSR 334: Small language enhancements (Project Coin)
•Upgrade class-loader architecture
•Method to close a URLClassLoader
•Concurrency and collections updates (jsr166y)
•Separate user locale and user-interface locale
•SCTP (Stream Control Transmission Protocol)
•SDP (Sockets Direct Protocol)
•Use the Windows Vista IPv6 stack
•Elliptic-curve cryptography (ECC)
•XRender pipeline for Java 2D
•Create new platform APIs for 6u10 graphics features
•Nimbus look-and-feel for Swing
•Swing JLayer component
•Update the XML stack
•Enhanced JMX Agent and Mbeans