Notes on the Java SE Platform, the OpenJDK Project, and the JCP
I hadn't really thought much about the relationships between Java SE, the OpenJDK project, and the JCP in the past. Or, perhaps it's more correct to say that I had some vague notions, but had never taken the time to think about what the actual relationships might be.
Danny Coward, at the start of his presentation ("Java SE: The Road Forward, 2011 Edition"), clarified the situation, and showed that there really is a distinct separation between Java SE, OpenJDK, and the JCP. Here's what he said.
Java SE is a software platform. It consists of a set of documentation, prescribed implementations, Technology Compatibility Kits (TCK), etc. In other words, it's primarily a bunch of paper, all produced by the JCP. You can't use Java SE in itself, because what it really is is a description of a language platform; it exists prior to, or above, an actual language implementation.
Given this starting point, it becomes clear what the OpenJDK project is: it's an implementation of the Java SE platform -- specifically, Oracle's implementation (with recently growing participation from big companies like IBM, Apple, RedHat). So, if you look at OpenJDK, will you see a one-to-one correspondance between line items in the Java SE documentation and implementations within the OpenJDK? You'd certainly better! But, that's just the starting point for the OpenJDK project. Beyond implementing the specific requirements laid out in Java SE, the OpenJDK project includes many additional features, including tools, deployment capabilities, etc.
It's a bit like Linux distributions, where a single kernal is packaged in many different ways with many different added features, by different development teams. Except that Java SE would really be the description or definition of a kernel, not an actual downloadable software package.
An interesting point Danny made: the Java SE platform doesn't specify or require garbage collection. That's an addition that has been engineered in the various implementations. In other words, you could create a Java implementation that has no garbage collector and it could still be a valid Java SE implementation.
More to come...
Since my last blog post, lots of other people have posted significant java.net blogs:
- java.net Community Manager Sonya Barry wrote about her experience at The Server Side Java Symposium;
- Haim Michael published a post about the Scala IntelliJ Plugin, and a series of Java Script posts;
- Alexander Potochkin continued a series with Swing in a better world: Checked exceptions;
- Cay Horstmann was Having a Racket with Pictures and Continuations; and
- Jan Haderka showed how to
Find pages using any paragraph in Magnolia.
Our current java.net poll asks How would you rate the responsiveness and ease-of-use of the bugs.sun.com website? Voting ends Monday.
Our latest java.net
href="http://www.java.net/archive/spotlight">Spotlight is Eric S Chan's new article,
OpenICOM: A JPA Framework for Integrated Collaboration Environments, Part 1 -
This article is the first part of the three parts series to present a new project http://java.net/projects/open-icom in java.net to incubate a JPA framework for developing integrated collaboration environments. The first part explains the advantages of the JPA programming model, which embodies the design patterns that are well-suited for managing...
We're also still featuring Adam Bateman's JDK 7 nearing the endgame -
Just a reminder that JDK 7 is nearing the endgame and now is the right time to grab the latest JDK 7 build and give it a test drive. Once it goes beyond the end of March then the release will start to get locked down and it will get harder to get fixes or changes in (don't leave it too late). The important thing is to make sure that your existing code works well...
Here are the stories we've recently featured in our Java news section.
Dustin Marx investigates JDK 7 JMX Platform Management Beans: A First Peek -
One of the new features anticipated for JDK 7 is advertised in the Java SE 7 preview as Enhanced JMX Agent and MBeans. In this post, I look at portions of the enhanced JMX and MXBean support. Specifically, I briefly cover new-to-JDK7 PlatformManagedObject interface and ManagementFactory.getAllPlatformMXBeanInterfaces() method...
Joe Darcy reports on Project Coin EclipseCon 2011:
This afternoon at EclipseCon I gave a talk on Project Coin: Small Language Changes in JDK 7; the slides have been posted. An earlier talk at the conference gave a demo of the current Eclipse support for the Project Coin features; my talk included a demo of the "quick fix" hints to introduce Coin features in code provided by NetBeans 7.0 Beta 2.
Geertjan Wielenga talks about Serbian Students in Belgrade & The NetBeans Platform
In Belgrade, at the Serbian NetBeans Platform Training 2011, I tried out the panorama photo thingy on my new Android and it kind of works quite well... Zoran Sevarac, the Neuroph developer, also showed off the image recognition feature in Neuroph Studio (yet another NetBeans Platform application)...
Shai Almog talks about LWUIT List Rendering: The Easy Way. Generic List Cell Renderer:
LWUIT is really powerful and flexible, we took the power and flexibility of Swing and went even further (styles, painters) and one such power is the cell renderer. This is a concept we derived from Swing which is both remarkably powerful and pretty hard for newbies to figure out, frankly its pretty hard for everyone... As part of the GUI builder work we needed a way to customize rendering for a List...
Interview with Steve Harris, Senior VP of Application Server Development at Oracle on the Java EE 7. Joining us this week on the Java All Star Developer Panel are Dalibor Topic, Java Free and Open Source Software Ambassador, and Alexis Moussine-Pouchkine, Java EE Developer Advocate...
Alexis Moussine-Pouchkine announces that Grizzly 2.0 is here! -
With the release of GlassFish 3.1 and the new Java EE 7 JSRs being filed, it was easy to miss other announcements such as the release of Grizzly 2.0. Grizzly 2.0 features many brand new APIs (it's called 2.0 for a reason!), updated WebSockets & Comet and documentation (start with the
Geertjan Wielenga talks about Fighting Hunger & Poverty via Java with the NetBeans Platform:
The training in Mexico at CIMMYT, which is near Mexico City, has come to an end and here is the inevitable group pic... In the front row you see, holding a NetBeans Platform certificate, Tito who leads the development of some NetBeans Platform work at CIMMYT, with on his left Hector who is the instructor of the group. Students from the Philippines and one from Denmark...
Alexis Moussine-Pouchkine catalogs the GlassFish 3.1 Screencasts (so far):
One new thing we tried for the release of GlassFish 3.1 was to do not only blogs (see coverage), but also screencasts done mostly by the engineers themselves but also from product managers. Screencasts are not easy to produce - they take time and the result is not always what you had hoped for (technical issues, length, scenario not well thought out) but I have to say...
Subscriptions and Archives: You can subscribe to this blog using the java.net Editor's Blog Feed. You can also subscribe to the Java Today RSS feed and the java.net blogs feed. You can find historical archives of what has appeared the front page of java.net in the java.net home page archive.