Apache Threatens to Leave JCP

The Apache Software Foundation board has made an announcement to leave the JCP if their rights as implementers of the Java specification are not upheld.

Through the JSPA, the agreement under which both Oracle and the ASF participate in the JCP, the ASF has been entitled to a license for the test kit for Java SE (the "TCK") that will allow the ASF to test and distribute a release of the Apache Harmony project under the Apache License. Oracle is violating their contractual obligation as set forth under the rules of the JCP by only offering a TCK license that imposes additional terms and conditions that are not compatible with open source or Free software licenses.

The ASF will terminate its relationship with the JCP if our rights as implementers of Java specifications are not upheld by the JCP Executive Committee to the limits of the EC's ability. The lack of active, strong and clear enforcement of those rights implies that the JSPA agreements are worthless, confirming that JCP specifications are nothing more than proprietary documentation.

At issue is the ongoing refusal of Sun, and later Oracle, to provide a testing compatibility kit for the ratification of their open-source Java implementation. The reason for this is financial – a significant portion of revenue that Oracle receives is for the use of Java on mobile devices, and a freely-available JVM for mobile devices may threaten that revenue stream. (The OpenJDK is not suitable for many embedded devices, as it requires that all source code be released under the GPL, thus requiring a commercial license.)

However, the JCP document requires that JSRs be available. Under the umbrella JSR for the Java 6 platform, JSR 270, the licensing terms include:

10. The Java SE 6 TCK will be offered for license at no charge, with trademark and branding rights, but without support, to qualified not-for-profit entities (including not-for-profit academic institutions) and qualified individuals engaged in efforts to create compatible implementations of the Java SE 6 Specification.

It is this discrepancy that the Apache board has been complaining about since April 2007, then referring to the Java 5 specification. The key problem, then as now, is the field of use limitation:

Since August 2006, the ASF has been attempting to secure an acceptable license from Sun for the test kit for Java SE. This test kit, called the "Java Compatibility Kit" or "JCK", is needed by the Apache Harmony project to demonstrate its compatibility with the Java SE specification, as required by Sun's specification license. The JCK license Sun is offering imposes IP rights restrictions through limits on the "field of use" available to users of our software.

A specification lead cannot "impose any contractual condition or covenant that would limit or restrict the right of any licensee to create or distribute such Independent Implementations" (section 5.C.III)

A specification lead must license all necessary IP royalty-free to any compatible implementation of a specification (section 5.B)

This implementation is orthogonal to the patent case between Oracle and Google, which is related to the JVM itself. Although Harmony ships the DRLVM (originally donated by Intel), the availability of the TCK would have granted a use of those patents. Without the TCK, Apache Harmony's JVM may be in violation of some of those patents – though an Oracle-driven court hearing would automatically enrol the JSPA dispute, something Oracle is keen to avoid.

Since IBM joined OpenJDK, there has been an ongoing question of can Oracle save Java? With no softening on Oracle's stance – despite originally saying that the spec should be availble, prior to the takeover – this endgame will play out in public.

Whether Apache stays as members of the JCP or not, Oracle are unlikely to change their stance on the unrestricted TCK availability for Java. And even if Apache were to stay and vote against Java 7, Oracle would almost certainly still push it through anyway.

Since Oracle control Java, and also the JCP, they can terminate the JCP as easily as they terminated the OpenSolaris project. As Apache does not have the resources to get into a prolonged legal battle about upholding the contractual obligation, whether they stay or go will have no impact on whether Oracle releases Java 7 next year or not. As a result, leaving the JCP is the only option left available to them.

Which people? Besides people have been saying for years that Elvis is alive, the moon landing was a hoax, 9/11 was an inside job and that no one runs COBOL applications. Just because people (even if by the millions) say moronic, unsubstantiated, unqualified and unquantifiable stuff, that doesn't make it any truer or at least less moronic, does it?

well now you have it, I guess if you do say something longenough and loud enough it does become true.

Oh yeah, I can see the thousands of companies and their tens of thousands of deployments and their investment in millions and millions of Java LOCs all of the sudden dying a death of a thousand cuts and disappear into thin air with no new Java development to occur for the next decade or so just because Apache is leaving the JCP.

is this the same Apache that copied JBoss source code? It ended up in IBM hands.

Lighten up people. Sun owned Java and sold it to Oracle. Oracle owns it. It's legit. Apache would like to also own Java. To bad.

There is plenty of languages out there. Ruby seems good.

My sentiments exactly. I appreciate the good stuff the Apache folks have been churning for the rest of us to use. But Jesus Christ riding a pony, do they really believe they are all that? That Oracle will actually care (or that it should) when it comes to its own legal property?

Business will continue as usual, including the business of writing software (both good and bad software) in Java, independently of whether Apache remains in the JCP. Oracle could in its own right pull the plug on the JCP and play "benevolent dictator" (it might actually be a good thing.)

Too many chiefs in a tribe with a single pony. This is software. Owned by a company. A company that tells you how to play with its property. Them pulling out of the JCP will not have any discernible impact in the server side of things which is where Oracle's interests lie.

And if people feel so strongly about being told how to play with private intellectual property by the current legal owner, then they should just go and play with something else. There are quite a few fine programming languages out there.

And then does the opposite.The issue here is that Sun committed to do certain things, and then reneged on that, but expects the members of the JCP EC to carry on as if nothing happened.

Oracle can terminate the JCP if they like, but it make no sense for an organisation like Apache to voluntarily participate in the JCP if Oracle isn't willing to play by the JCP rules.

It's one way or other other.Oracles either gives up on the JCP and admits that they don't actually care what the rest of the Java community thinks, or they allow the JCP to be the JCP, and actually follow the rules themselves.Either way is within their rights, but this half-hearted, disingenuous, charade that they're playing now doesn't help anyone.

The other thing is, that for Apache, there is a potential legal issue. The Apache Software Foundation is a registered, tax-exempt, non-profit corporation.Its purpose is "the creation and maintenance of 'open source' software", and its resources need to be used "for the public benefit".If the Apache's place on the JCP is simply to give Oracle the appearance of community support, without actually serving the public benefit in the creation of open source software, then the Apache directors will have issues.If being a member of the JCP (EC) does not contribute to the stated purposes of the ASF, then they will need to stand-down.

Oh yeah, I can see the thousands of companies and their tens of thousands of deployments and their investment in millions and millions of Java LOCs all of the sudden dying a death of a thousand cuts and disappear into thin air with no new Java development to occur for the next decade or so just because Apache is leaving the JCP.

As Simon Peyton Jones has said before, Java has reached the popularity point of immortality. But when looking at the future direction of the industry, you can't watch the followers who play it safe and conservative. You have to keep an eye on the trendsetters and the innovators. Innovation is leaving Java - that doesn't mean it will die soon or ever, but when the really creative talent goes to find greener pastures, eventually the industry will follow, it just lags 10 years behind. As long as Google is committed to Java there will always be a feather in the Java cap, but we'll see how long that sort of thing lasts under Oracle.

The reason that Java has become as popular as it has (I would argue) is that Sun really balanced the line between ownership - funding, support, leadership in the future of Java - and also letting it be open to other large companies to have a stake in, and fostering open source to thrive in it. If Oracle takes an iron fist approach, the Java ecosystem could become the next .NET, only probably less interesting. Will that mean its dead? No, but it will be as good as dead for many current Java supporters.

Oracle has already made it clear that it supports and is investing in OpenJDK, and has gotten support for OpenJDK now from both IBM and Apple.

The Apache licensing issue is not new; Oracle inherited this issue when it acquired Sun. While I don't fully understand the issue, or know how it will end up being resolved, I hope that Apache stays positively involved with Java, as they have added significantly to the fabric of the Java community and ecosystem over the years -- and whether or not there is always agreement, their voice is valued in the conversation.

I'm at devoxx/2010 and I can tell you Java is far from dead. Even more people are visiting this largest independent Java community event in the world than last year. I was at Mark Reinhold's keynote where he (re)announced the JSR quartet - basically 'Plan B'. Primary goal for Oracle is to keep Java #1 - he made this very clear. Also, companies like IBM and Apple joining the OpenJDK effort are clear signs that we're actually at the very beginning of a new bright future for Java.