Apache Software Foundation(ASF)理事会はJava仕様の実装者としての権利が維持されないのであれば、JCPを脱退すると発表した。
OracleとASFがともにJSPA(Java Specification Participation Agreement)のもとJCPに参加しており、そのJSPAを通じて、ASFはJava SEに対するテストキット("TCK")のライセンスを与えられてきた。TCKによって、ASFはApacheライセンスのもとApache Harmonyプロジェクトのリリースをテストし、配布することが可能である。オープンソースライセンスやフリーソフトウェアライセンスに準拠しない追加的な条項や条件を課すTCKライセンスを提供することは、OracleがJCPの規約のもとに記載された契約上の義務を犯すことを意味する。
ASFは、JCP Executive Committee(EC)によって維持されているJava仕様の実装者としての我々の権利が、ECが可能な限り最大限守られるのでないならば、JCPとの関係を打ち切ることになるだろう。その権利が、活発に、強力に、そして明瞭に施行できないのであれば、それはJSPA同意の価値がないことを示しており、JCP仕様がプロプライエタリな文書に過ぎないことを裏付けるものである。
Sun、のちのOracle、がオープンソースJava実装の承認のための互換性テストキットの提供を拒否し続けていることは、未解決の課題である。この理由は金銭的なものである – Oracleが受け取っている収入のかなりの部分がJavaの携帯端末上での利用によるものであり、携帯端末上自由に無償で利用できるJVMはその収入源を脅かすかもしれないのだ。(OpenJDKは多くの組み込み機器には適さない。OpenJDKはすべてのソースコードをGPLのもとに公開することを求めるが、組み込み機器は商用ライセンスを要求するからだ。)
しかしながら、JCP文書はJSRが利用可能であることを要求する。Java 6プラットフォームに対するJSR、JSR 270の傘の下では、次のライセンス条項が含まれている。
10. Java SE 6 TCKは無償、かつ、商標とブランディングの権利とともに、また、サポートなしに、Java SE 6仕様の互換性ある実装を作成する活動に従事する資格を有する非営利団体(非営利学術機関も含まれる)または同じく資格を有する個人に対してライセンスが提供される。
Apache理事会が2007年4月以降、当時はJava 5仕様に言及しつつ、訴え続けてきたのはこの矛盾である。当時も今も、鍵となる問題は利用制限の部分である。
2006年8月以来、ASFはSunからJavaSEテストキットの受け入れ可能なライセンスを確保しようとし続けてきました。このテストキットは"Java Compatibility Kit"、略して"JCK"と呼ばれ、Apache HarmonyプロジェクトがそのJava仕様との互換性を、Sunの仕様ライセンスに定めている通りに示すために必要です。Sunが提供しようとしているJCKライセンスは我々のソフトウェアのユーザが使用できる"利用分野"の制限によって知的財産権の制限を課しています。
これらの制限はSunが調印者として従わねばならないJava Specification Participation Agreement (JSPA) - JCPを支配している規則 - に反しています。特に、JSPAは以下を要求しています。
- 仕様を主導する立場の者は"このような独立実装を作成および配布する権利を持つものの権利を限定または制限するいかなる契約上の条件または条項を課すことはできない" (5.C.III 節)
- 仕様を主導する立場の者は仕様に互換性のあるいかなる実装に対してもすべての必要な知的財産を利用料不要な形でライセンスしなければならない (5.B 節)
この実装はOracleとGoogleの間の特許訴訟とは直交している。この訴訟はJVMそのものに関係するものだ。HarmonyはDRLVM (もともとIntelから寄贈されたもの)をリリースしているが、TCKの利用が可能だということになれば、それらの特許の利用を認めることになる。TCKなしでは、Apache HarmonyのJVMはそれらの特許のうちいくつかを犯していることになるかもしれない – Oracle主導の法廷審問が成り行きでOracleがどうしても避けたいJSPAの議論に入ってしまう可能性があるとしても。
IBMがOpenJDKに参加して以降、OracleはJavaを救うことができるのかという疑問がずっとつきまとう。Oracleがスタンスを軟化させることがないなら – 買収よりも前から、もともと仕様は利用可能であると言っていたにもかかわらず – この最終局面は公の場で演じられるだろう。
残念なことに、Oracleはいまだ糸口を見つける必要がある一方で、Doug Lea氏のような人々はすでにJCPを去ってしまった。
ApacheがJCPのメンバとして残るかどうかにかかわらず、Oracleは無制限なJava TCKの利用に対するスタンスを変えようとはしないだろう。そして、たとえApacheが残り、Java 7に反対する投票をしたとしても、Oracleが何とかしてそれを押し通すことはほぼ確実であろう。
Oracleはコミュニティに対しては墓穴を掘ってきた。MySQLのオリジナルの開発者の多くはすでに去った(そして、MariaDBやDrizzleといったオープンソースのフォークをつくった)。OpenSolaris理事会は、すでに退陣し、Illumosに移行し、多くの他の著名人たちもすでに去った。JCPは独立した標準化組織であるべきかを問う投票さえ存在する。
OracleがJavaを、そしてJCPをコントロールしているので、彼らはOpenSolarisプロジェクトを終結させたのと同じくらい容易にJCPを終結させることが可能である。Apacheは契約上の義務を維持することに関する長期にわたる法廷闘争に突入するだけのリソースを持っていないため、彼らが残るか去るかはOracleが来年Java 7をリリースするかどうかに何の影響も与えないだろう。結果として、JCPを去ることが彼らに残された唯一可能な選択肢なのである。