The final parts of the Apache Harmony TCK debate began to play out today. There is a lot to look at.
IBM joins Oracle on OpenJDK
These press releases are very bland of course, and the far more interesting comments come from the blogs of the key players. In particular, from Bob Sutor, VP of Linux and open source at IBM:
The press release is coy. Here, a key IBM executive is being explicit. Their intention is to move all development work from Apache Harmony to OpenJDK. While never solely an IBM project, I would expect this to effectively mean the termination of the Harmony project.
I've spent a lot of time writing up the politics and issues behind the Sun/Apache Harmony TCK dispute. Here Bob clearly outlines the end game of that dispute.
IBM clearly came to the conclusion that there was never, ever going to be a TCK for Apache Harmony, and that they had no means of recourse against Oracle. Its clear that they disagreed with this, but took the pragmatic view that the dispute needed to end, and they had the weaker hand.
That said, it is clear to me that IBM have got some elements that they want in a form of quid pro quo. This is outlined in the "leadership position" and "reforms in the JCP" sections.
It is perhaps not widely known that there was a JCP face to face meeting at the end of last week. It is clear that discussions at that meeting were key to the announcement today.
The blog from Henrik Stahl, Senor Director Product Management Oracle, summarises Oracle's views and links to the JCP:
This blog links the announcement today back to the JCP and discussions of its future. As indicated, we are not going to see the results of that meeting for a few weeks.
Other blogs have indicated that IBM is likely to contribute primarily to the class libraries, rather than the JVM (where Oracle and IBM compete). This is obviously a pretty pragmatic, simple and practical way for two large companies to work together without damaging their businesses. Providing that management/leadership can be worked out - which appears to be an improved JCP.
In my opinion, Sun Microsystems behaved atrociously towards Apache Harmony. The promise made was clear:
That promise (and associated legal agreements) were broken.
Pretending that Sun behaved with the slightest element of decency in this matter is being utterly blind to the facts. They made an executive level choice to shaft the Apache Software Foundation with the explicit knowledge that they would not be sued by a Not-For-Profit.
But lets not reserve that much credit for Oracle, who supported Apache up until the point they bought Sun. And then opposed them. Once again, another game of executive level politics. (Remember that when Oracle sued Google it became impossible for Apache Harmony to be recognised, as doing so would destroy Oracle's case.)
Apache and the JCP
Clearly, IBM have decided that Apache Harmony has served its purpose. There was no way that Oracle was going to be the "nice guy" it once professed to be. There was no way Harmony was ever going to be certified as Java. So IBM made the pragmatic choice.
Given the actions of Oracle, frankly IBM had little choice. What remains to be seen is what deal was done in the JCP as the balancing factor.
Because that deal really matters.
Clearly, there will be no TCK for Apache Harmony, ever. The legal agreements that Apache signed which entitle them to the TCK have been rendered useless.
So, why should Apache stay in the JCP?
This is the Billion Dollar Question. And its answer could terminate projects like Apache Tomcat, Geronimo, MyFaces, OpenEJB and OpenJPA in their current form if Apache decides to leave the JCP.
I hope that the deal cut in the JCP is good. Because for the sake of the industry, it needs to be. The Java community needs Apache, and Apache implemented specifications, and I hope everyone recognises that.
I'd also note that the executive committee in charge of the vote on Java SE 7 has 16 members. IBM and Oracle are only two votes. Oracle needs to have got the support of others to actually get the vote to pass. My guess is that the vote will pass, simply because there is no other game in town.
Today, IBM took the pragmatic decision to end hostilities over Apache Harmony and move on. This is clearly a good choice for IBM, and probably the best we could hope for Java. It does mean that Apache Harmony is effectively dead.
But frankly, Sun, now Oracle, have got away with murder.
Whether the Apache Software Foundation can stomach staying in the JCP is, I would say, still an open question. Lets hope the deal that was cut is really positive. Because it really is time for the Java industry to move on.
Apache Software Foundation member, speaking personally
Oracle Java Champion, speaking personally
Not a committer on Harmony or OpenJDK