Sun Microsystems today announced the release of a new license for Java Compatibility Kit (JCK). The specially drafted OpenJDK Community TCK License - as the name suggests - is designed to benefit the OpenJDK community by allowing much easier access to the JCK and therefore ensuring conformance to the Java standard is maintained. This is clearly a great boost to the credibility for the open source version.
While Sun has recently been moving key software assets under open licenses, the JCK remains closely controlled. Access to it has been gradually getting simpler over time, albeit not in a way that has been deemed favorable to open source implementors.
The new license sets specific requirements on which projects can gain access to the compatibility tests. The crux of it is that a project must "substantially derived" from the OpenJDK itself, and the code must be available under the GPL2 license - although the fact that the OpenJDK is distributed under GPL2 means that any derivative has to be be GPL2 also. What "substantially derived" actually equates to is not detailed in the license, and the FAQ not precise either:
"An implementation is "substantially derived" from the OpenJDK code base if it includes a large body of code existing in the code base that does something identifiably significant, or implements some set of APIs in their entirety."
As InfoQ reported recently, the Apache Harmony project had been lobbying Sun for fewer restrictions on the JCK. Harmony is the name given to Apache's implementation of the Java standard, and it needs to pass the JCK in order to call itself Java compatible. The Apache organization believes that Sun is in fact breaking the JSPA agreement forms the basis of the Java Community Process. This agreement, according to Apache, ought to bind participants to only distributing technology compatibility kits (TCKs) under non-restrictive licenses.
As a protest, Apache is now voting against all new JSRs where Sun is the specification lead. A spokesperson at Sun says, "Obviously we don't believe that we are breaching our obligations to the JSPA. We are offering access to and use of our TCKs, including the Java brand, under very benign terms." In a further comment, "Sun regrets that Apache implicates the evolution of the Java EE platform in our discussions over the TCK license for Java SE." Ultimately, the no-votes not yet having any real tangible impact as other participants are not engaged in this disagreement and the JSRs proposals are being passed. The official JCP commentary on this matter states:
"The JSR voting process is uniquely designed to assess and express an expert opinion by the JCP ECs about the technical merits of a proposed JSR. Based on the results of the JSR EC ballot it is decided whether a proposed JSR will continue development through the JCP to become a standard. We hope that the Apache Software Foundation and Sun will collaborate to find a resolution to their disagreements satisfactory to both parties and beneficial to the developer community."
It is fair to expect that the new JCK license will be a blow to the Apache Harmony project due to the lack of concessions to independently developed implementations which are working under their own open source principles. Sun's spokesperson says:
"We have offered, and are offering, to Apache the Java SE TCK under the same terms as we offer the TCK to commercial entities that want to build their own independent implementations, except that to Apache we offered the TCK free of charge, use of the Java brand free of charge, and our support services free of charge."
Evidently that offer was not suitable to Apache in accordance to their own open standards, hence the disagreement is likely to continue for some time.