Cool! Java is moving forward! And JSR-310 is proposed for Java SE 8!
But, lets take a peek at the interesting stuff... the licensing terms. (OK, its not really that interesting unless you want to understand the raging Java disputes...)
Firstly, the licenses are provided in Word Document format! (See section 2.18 of the JSR page for the links)
Its late here, so I only have limited time to evaluate the licenses. At first glance, the Specification and Reference Implementation licenses look fairly normal and bland (but I may be wrong). The interesting one is the TCK (testing kit) license.
I emphasise that this should be considered to be notes on the TCK license based on a relatively quick reading. If you read this blog and reference this topic/story in another blog or article, you are advised to read and examine the original license text yourself, or include a suitable caveat.
The famous "Field of Use" is an explicit part of the license:
The "Java Environment Specification" is defined, covering Java SE:
The definition of a "product" contains what looks like an unusual part (highlighted). It appears that a "product" must meet three criteria beyond the basic ones:
- "have a principal purpose which is substantially different from a stand-alone implementation of that specification"
- "represent a significant functional and value enhancement over any stand-alone implementation of that specification"
- "not be marketed as a technology which replaces or substitutes for a stand-alone implementation of that specification"
I believe that Apache Harmony would fail all three of these tests (were the project to try and implement this JSR, which they probably won't). Since a "stand-alone implementation" would be either OpenJDK or OracleJDK, the principal purpose of Harmony is clearly the same (not substantially different), Harmony does not offer significant functional enhancement, and Harmony would be marketed as a replacement for OpenJDK/OracleJDK.
Criteria are given as to what not to do. This indicates that no one may distribute code that implements the specification unless it is part of a product, as defined above. Given Apache Harmony cannot be a product, it cannot be distributed.
Were a court case to challenge the contents of the license, Oracle can at its discretion terminate the licence.
And Exhibit A contains the actual "Field of Use" terms. These specifically exclude wireless mobile telephones, kiosks and even netbooks (highlighted). Remember that any Field of Use restriction violates the OSI open source definition.
The published release must contain a note from Oracle emphasising the conditions on further distribution:
The cost of the TCK is specified. And it is cheap. So, none of the dispute is directly about money (indirectly is another matter!).
And thats it. Well, at least the parts I see as being interesting. But if you want to comment on this, you really should read it yourself!
Sadly, at 3am, I don't have time to contrast the TCK license with the JSPA.
To be honest, I'm surprised that the TCK license for Java SE 7 still contains any pretence that it can be implemented in open source by anyone other than Oracle. At least the restrictions are clear (and I suspect, but cannot prove, that very similar restrictions were offered for Java SE 5 in the Sun/Oracle vs Harmony dispute).
I personally expect these 4 JSRs to pass the JCP Executive Committee vote in two weeks time as I see no evidence that committee members are still up for a fight. If the vote passes, I expect the ASF will immediately leave the JCP.
I will leave the biggest amusing point until last. The TCK license conflicts with the JSR! The JSR itself says:
So, the JSR is targetted at embedded environments! That's not what the TCK license says ;-)
Apache Software Foundation member, speaking personally
Oracle Java Champion, speaking personally
Not a committer on Harmony or OpenJDK