Questions over an open Java 7
In a recent blog posting Stephen Colebourne critiques the Sun and Java Community Process (JCP), reaching the conclusion that Sun's intention is for there to be "No more Java 7". Colebourne, who is an Apache Software Foundation member and leads JSR-310 (Java Date and Time), has noted that in all the announcements on various Sun blogs, Sun engineers refer to JDK (Java Development Kit) 7 or OpenJDK 7, but not Java SE (Standard Edition) 7. There is currently no Java Specification Request (JSR) for Java SE 7, and he believes that this is an indication that Sun may be attempting to close the routes for projects like Apache Harmony to implement a freely distributable and compatible Java 7 implementation.
Previous Java releases have been developed in the context of the JCP, with JSR 176 for Java SE 5 and 270 for Java SE 6. Colebourne also notes that development of major components of Java 7, such as Project Jigsaw which deals with modularising Java, are being developed without a JSR and focus on OpenJDK.
In a further posting Colebourne expands on his argument by detailing minutes of the JCP Executive meetings, where Sun, IBM, Red Hat and HP abstained from a 2007 vote on a BEA/Intel resolution to create a JSR for Java SE 7 which was free from the field of use requirements that have resulted in Apache voting no on the acceptance of JSRs including Java EE 6. His conclusion from the minutes is "Despite all the efforts, there has been no solution. And as such there is still no Java SE 7 platform specification. Thus, I hope its a little clearer why I'm arguing that, in all likelihood, we will get a JDK 7 implementation, but not a Java SE 7 platform open specification."
The Apache issue is that, although the specifications for Java are open and implementations exist under the GPL, the testing kit required to ensure Java compatibility contains a "Field of Use" clause. This says, approximately, that code tested with the testing kit may not be run on a PC in an enclosed environment, so you could run tested code on a desktop PC, but not inside a kiosk or within an industrial system.
Colebourne illustrates the problem in a separate posting. He believes that by keeping OpenJDK 7 as an open implementation and not a specification, Sun are attempting to block Apache and any other open source implementation from being certified as Java 7, only allowing them to be OpenJDK 7 compatible.
Recently, Mark Reinhold, one of the main developers responsible for Java SE and OpenJDK, pointed out that not all of the things in the JDK 7 project will happen and that a Java SE 7 specification may well differ from what is incorporated in the OpenJDK 7 project.