RIは全てのJava実装にとってゴールドスタンダードとして使われるものです。Java SE互換として承認される実装とするためには、実装者は莫大な数の互換性テスト(Technology Compatibility Kit/TCK)に合格する必要があり、さらに追加のチェックとしてRIと比較されることがあります。基本的に実装したものがRIと同じ挙動をすると承認された場合にJava Compatibleとされるのです。詳細はJCP FAQをご覧下さい。
歴史的に、Sunは常にSun JDKをRIとして利用していましたし、Binary Code License(BCL)の下でご利用いただけました。製品実装は定義によって互換性があるとされたため、Sunにとって非常に便利なことだったのです。しかしSun JDKにはかなりの標準にない機能(Java Plugin)が含まれていたため混乱を招いていました。また、このやり方を継続する場合、オープンソース実装者が公式なRIソースコードの勉強ならびに評価ができないという困難をもたらすことになるでしょう(Oracle JDKのソースコードはOpenJDKとは微妙に違います。より一歩先に進んだ実装なのです)。
ということで、Oracleは以下のようにすることにしました。
- OpenJDKコードベースのRIバイナリのみ作成する。
- 商用実装者はBCL(通常のJavaライセンス)の下でRIバイナリを利用可能とする。オープンソース実装者はGPLv2(Classpath例外あり)の下でRIバイナリを利用可能とする。
- TCKは商用ライセンス向けに継続して提供するが、またOCTLAライセンスを更新してJava SE 7にも適用する。後者により、オープンソース実装者は無料でTCKを利用して実装を検証することができる。
[Update]いくつか質問をもらいました。まず、Apache Harmonyに対する我々のポリシーは変化していません。GPLの下でライセンス許諾されているOpenJDKが提供している実装が、TCKに無料で利用できるプログラムがOCTLAですので。OCTLAはその目的のためだけのものです。第2に、Oracleの実装(java.comやjava.oracle.comにあるもの)はBCLだけに影響されます。最後に、完全に明確なことですが、OpenJDKソースコードはGPLの管理下にあります。
[参考URL]
JDK7
http://jdk7.java.net/
JSR 336
http://www.jcp.org/en/jsr/detail?id=336
JCP FAQ
http://www.jcp.org/en/introduction/faq
OCTLA
http://openjdk.java.net/legal/openjdk-tck-license.pdf
原文はこちら。
http://blogs.oracle.com/henrik/entry/moving_to_openjdk_as_the
0 件のコメント:
コメントを投稿