Released earlier this year, Java SE 6 adds new support of dynamic scripting languages, plus other tweaks to improve layout and windows-like renderings.

There’s little about the release of the test kit that comes as a surprise. Sun has released beta versions and previews of the TCK since last fall, and both it and the Apache Foundation have long made known their differing views on open source licensing.

Sun’s commitment to GPL v2 (not the new version) was made clear by Jonathan Schwartz back at JavaOne 2006.

The GPL requires that all technology enhancements for the software be contributed back to the community under the same license. By contrast, Apache is more freewheeling, allowing vendors to keep their extensions or enhancements to themselves. It’s the license used by the Eclipse Foundation.

What makes the dispute more than academic is that the license standoff between Sun and Apache threatens the status of Harmony, which is Apache’s implementation of Java SE. License differences are preventing Apache from updating Harmony beyond SE 5, which was previously made available by Sun under a more general research license.

In a letter dated April 10, 2006, Geir Magnusson Jr., who is vice president for Apache’s JCP projects, termed Sun’s use of GPL unacceptable, claiming further that the restrictions of GPL are contrary to the terms of the Java Community Process’s (JCP’s) Java Specification Participation Agreement (JSPA).

With release of the Java SE TCK last week, Sun evangelist Rich Green acknowledged in his blog that, We knew when we chose the GPL and the free software model for Java technology that we couldn’t satisfy everyone’s desires. Green claims that GPL’s spirit is truer to the goals of the JCP because the Apache license could enable some vendors to fork Java.

I’ve slept well at night knowing that Sun has done our utmost to balance the priorities of open source communities along with the responsibilities and obligations that we have with the myriad of enterprises, individual developers and consumers who have invested in the promise of Write Once, Run Anywhere, Green concluded.

Sun’s OpenJDK Test Compatibility Kit for Java SE 6 is available now.

Our View

Not surprisingly, the Sun/Apache tiff has a lot of historical baggage. It’s rooted in Sun’s fear of other vendors hijacking Java in much the same way that Eclipse has hijacked Sun’s vision of a unified Java tooling environment. Today, Java tooling has, with a few exceptions (Oracle and Sun) coalesced under the Eclipse umbrella, so you could say that Sun won the battle (there is a single de facto standard tooling environment for Java) but has obviously lost the war.

Ironically, when Sun ditched the CDDL license, where it exerted more control, in favor of GPL, it was seen as a move for Sun to get Java into the mainstream of open source development. But in doing so, it has obviously run afoul of Apache which liked the old rules.

You could also view this as yet another proxy battle between Sun, which invented Java, and IBM, which makes the most money off Java. And so in the long run, Java SE technology will fork, as you will have the SE 6 (and higher) available only through Sun, while most Eclipse vendors are likely to stay with SE 5, where they can still grab an Apache implementation.