Skip to main content

Here Comes A Regular

Posted by editor on February 15, 2008 at 7:58 AM PST

A big day for OpenJDK

Yesterday afternoon was an eventful one if you're on the OpenJDK mailing lists. All of a sudden, there was a flurry of activity, with one announcement after another. The most significant of which has to do with the OpenJDK community's first JDK 6 source drop.

I sent the URL for this to some friends on IRC and immediately got a question about JDK6uN, suggesting some pretty serious confusion about the various JDK projects. Let's see if I can help with that.

Since its launch, the OpenJDK project has been producing a GPL (with classpath exception) version of the evolving Java 7 standard. From the Free and Open Source Java FAQ:

We're open-sourcing these components from an early build of JDK 7. JDK 6 is the current shipping production release, and is stable. Hence we're releasing these components from the JDK 7 tree. At this stage, the only significant differences between the JDK 6 and 7 versions of these components are minor bug fixes and enhancements that have already been integrated into the JDK 7 tree. JDK 7 is the next feature release where all the action will be for innovation and new capabilities.

Now, of course, we don't really know what's going to be in Java 7, as there isn't even yet a JSR to specify its contents. So a while back, Joe Darcy proposal a JDK 6 project. In effect, this is a backport of these early Java 7 sources (which, unlike Sun's released JDK 6, are GPL+CPE), to the JDK 6 specification (viz., JSR-270).

To clarify, then: Sun's JDK 6 is release-quality, under the old licenses (BCL, SCSL, or JRL, as appropriate). JDK6uN is the more modular, "consumer JRE" update of that VM. And the OpenJDK 6 project is the GPL source release that isn't yet production quality.

OK, so we're all good with that, right? Good, because the Java Today section is all about OpenJDK today, starting with this announcement of the first source release from the OpenJDK JDK 6 project. Due to IP encumbrances, some classes are not available as source, and are instead provided as "binary plugs" for Windows, Solaris (32- and 64-bit) and Linux (i586 and AMD64). More details about the project are available in Joe Darcy's blog and his initial project proposal.

Meanwhile, a very early -- version 0.01, in fact -- release of the OpenJDK Developers' Guide has been posted as part of the OpenJDK project. "When the JDK was released under the GPLv2 license in May 2007, the need for a detailed document for contributors was anticipated. Translating rather sophisticated institutional knowledge into a format suitable for non-Sun employees is always a challenge. This document attempts to address the needs of developers who wish to participate in the future of the JDK." This initial release includes the "Repositories", "Change Planning and Guidelines: Fixing a Bug", and "Producing a Changeset" sections.

More source and fewer binary plugs will be coming in the next OpenJDK drop, according to Phil Race's message imaging and color classes binary plugs no longer needed (soon). "One of the most glaring holes to date in the openjdk sources are a couple of dozen 2D classes visible at the API level in the packages java.awt.color, java.awt.image, and java.awt.image.renderable. These have been held back from the sources (but included in the binary plugs) until we (Sun) established we could release these under GPL v2 +CP (ie same as most of the rest as OpenJDK). Just today we got the OK to do that, so at the next opportunity these classes will appear in the open jdk sources."

While we're talking Java 7, let's go ahead and bring up what's probably the most-discussed potential feature proposed for it. The latest Poll asks "Which Java 7 closure proposal do you support?" Cast your vote on the front page, then visit the results page for current tallies and discussion.



Its the title of a song from "The Replacements" if I am not mistaken.

I'm not sure what the title has to do with the actual story, but I'm still loving your work, thanks very much.