A lot already has been made of the Apache Foundation’s announcement on Tuesday that it would not vote to approve the Java SE 7 specification if a vote comes to the JCP. Until Oracle offers Apache the Test Compatibility Kit that it has long sought to validate the operation of the Apache Harmony project, the foundation will not be playing nice with the JCP.
In its statement, the Apache Foundation said, “The ASF has been entitled to a license for the test kit for Java SE (the ‘TCK’) that will allow the ASF to test and distribute a release of the Apache Harmony project under the Apache License. Oracle is violating their contractual obligation as set forth under the rules of the JCP by only offering a TCK license that imposes additional terms and conditions that are not compatible with open-source or Free software licenses.”
It went on to say that it will vote against Java SE 7, and that the foundation will end its relationship with the JCP if its rights as implementers of Java are not upheld. “The lack of active, strong and clear enforcement of those rights implies that the JSPA (Java Specification Participation Agreement) agreements are worthless, confirming that JCP specifications are nothing more than proprietary documentation,” it said.
This is not a shocking revelation. And it’s not a credible threat. The Apache Foundation is free to vote “no” on the Java SE 7 specification, but it won’t stop the eventual release of OpenJDK 7.
This type of posturing is not uncommon within the JCP. In fact, when OSGi was being pushed through as a standard in 2007, Sun itself pulled the same routine by being the only corporate “no” vote in every step of the approval process. And yet, today OSGi is JSR 291, despite the objections of Sun at the time.
And rest assured, Oracle will not be giving the TCK for Java SE 5 to the Apache Foundation. Sun’s reasoning for this was that the TCK was encumbered by intellectual property rights, and thus would require a herd of lawyers and man hours to prepare for public release, time and money which would not earn Sun anything in return.
Since the acquisition of Sun, Oracle has actively worked against the Apache Harmony project, most recently by allying with IBM around the OpenJDK and eliciting a formal “no more Harmony” announcement from IBM. Of course, internally, IBM isn’t actually stopping its use of Harmony, nor is it planning to. But the company won’t be contributing to the project anymore. Instead, its Java developers will be focusing on the OpenJDK, and that’s a big deal for the Java that Android is built upon.
The Apache Harmony project is an open-source implementation of the Java SE 5 and 6 JDKs with runtimes for Linux and Windows desktops and servers.
Harmony was a darling at IBM. The company took up the Harmony mantle soon after the project began in 2006, and has since used Harmony libraries in some of its commercial WebSphere products. This happened even without Harmony passing the TCK, so in the end the argument that Harmony is crippled unless Oracle releases its TCK is somewhat moot.
Rather, this entire confrontation is a continuation of the open hostilities between the Apache Foundation and Sun Microsystems. This long-standing feud has changed only in that Oracle has replaced Sun.
Call it a tempest in a teakettle. In order to effectively block the approval of the Java SE 7 specification, the Apache Foundation will have to rally the other members of the JCP against Oracle and the OpenJDK. While Google is a sure win for Apache thanks to Oracle’s recent lawsuits against the company for its use of Harmony-based Java on the Android platform, it’s also Apache’s only ally.
On the outside, it would seem that Red Hat would be a willing ally as well, but then Red Hat has already contributed huge amounts of code to OpenJDK, including IcedTea, the project that arguably allowed the OpenJDK to be a complete Java long before Sun was ready to fill in the gaps that remained when proprietary code had been removed from the platform.
In the final analysis, nothing has really changed between Oracle and the Apache Foundation. Unless Apache can gather an army of supporters within the JCP executive committee and within the Java SE 7 expert group, it might be able to create a thorn in OpenJDK’s side. But at present, this does not appear likely. In truth, Apache will most likely take two votes out of 16 away from the OpenJDK approval process, and that won’t do much to stop the project’s march towards completion.