Apache votes no on Java EE 6
Java Enterprise Edition 6 has passed the public review of the Java Community Process, but not by a unanimous vote. Java EE 6 (developed as JSR316) went to public review ballot last month and the results have now come in. The Apache Software Foundation voted against because of their long running dispute with Sun over the licence terms for the Java Compatibility Kit (JCK).
The JCK comes under a licence which currently says OpenJDK, GPL licenced Java VMs can use the JCK freely, while commercial vendors still have to pay for their JCK licence. The problem for Apache is that it does not use the GPL for Apache Harmony, the Apache project to create an Apache licensed Java implementation. The Apache Software Foundation wrote an open letter to Sun about this issue in 2007. Sun have offered a JCK licence to the Apache developers, but that licence includes restrictions on "fields of use", such as not allowing the JCK to test a Java SE implementation that would end up in a kiosk, even if the machine inside was a general purpose PC.
Now the issue has come to the fore in the Java EE 6 vote. The Apache Software Foundation voted "No" as a protest over Sun not complying with the JSPA (Java Specification Participation Agreement) which says there should be no contractual conditions and that specifications should be royalty free. The Java EE 6 "no" vote was seen as the chance to make the Foundations voice heard within Sun. The Foundations comment on the vote noted that "This is not a statement about the technical merit or quality of work done by the Expert Group to date, and if it were not for the unresolved non-compliance by Sun, Apache would most likely vote "Yes"."
Apache is not alone in its reservations. Although Intel voted yes, it supported the Foundations call for the removal of restrictions of field of use, pointing out that as Java EE requires Java SE, then the restrictions on Java SE could restrict Java EE. Red Hat also voted yes, but called for an explicit rule in the JSPA to forbid "field of use" restrictions, a call echoed by Werner Keil.
An abstention by SpringSource was unrelated to TCK issue and focussed on issues such as the incorporation of JSR 299, the Red Hat lead Web Beans specification. SpringSource also wish to see dependency injection moved from the server environment into Java SE, and are generally unhappy that Java EE 6 does not match the original goals set out for it. SAP, while voting yes, noted that there were now three component models (EJB,JSF and JSR 299) and wanted to see more work on JSR299 integration and a focus on a "single consolidated and extensible component model".