Jakarta EEでのJava商標関連

本記事は、Eclipse Foundationの了承を得、
Update on Jakarta EE Rights to Java Trademarks
"https://eclipse-foundation.blog/2019/05/03/jakarta-ee-java-trademarks/"
を翻訳したものです。

#始めに
Java EEをEclipse Foundationへ移管する作業は、Foundationスタッフ、たくさんのコントリビューター、コミッター、メンバー、ステークフォルダーにより、行われてきました。

この記事は、Jakarta EEステコミでの、これまでの振り返りと現在の状況になります。

今年始め、GlassFish 5.1がJava EE 8 TCKをパスしました。そのあと、ワーキンググループで、Jakarta EE Specification Process (JESP)を制定し、Eclipse Foundation内で仕様を拡張させていくことができるようになりました。現在、すべてのJakarta EEの仕様に対して、仕様プロジェクトが作ろうとされています。また、Jakarata EEのTCKプロセスもJakarta EE互換ロゴと共に、作ろうとされています。
これらは、Jakarta EE 8リリースに向けて行われています。

#現在までの進捗
Jakartaコミュニティは以下のことを行ってきています。

・Oracleは、GlassFish、Java EE API/TCKを、Jakarta EEに寄贈。
・Jakarta EEワーキンググループが構成され、コミュニティのガバナンスと共創環境を提供し、コミッタをサポート。
・Eclipse GlassFishは、Java EE TCKをパス。
・Eclipse Foundation Specification Processを作成。それをカスタマイズした、Jakarta EE Specification Processを作成。
・Jakarta EE 8を今年後半にリリースするため、仕様プロジェクトを作成中。
・JCPで作成された仕様ドキュメントのJakartaへの寄贈は、Oracle/IBM/Red Hatによりおこなわれている。

javaxパッケージ名前空間をJakarta EEの仕様の中で拡張させていくことを、Eclipse FoundationとOracleの両者が目指していました。Java EEで使われているjavaxパッケージ名前空間の修正やJava商標の利用は、数か月に及ぶ交渉も、残念ながら合意に至りませんでした。その代わりに、EclipseとOracleは、javax名前空間をJakarta EEコミュニティで拡張しないことを合意し、また、Java商標をJakarta EE仕様の中で使わないことを合意しました。交渉の複雑さおよび秘密保持のため、Eclipse FoundationとOracleは、今回の結果の影響について、ここでは言及しないことも合意しました。今回の結果は、コミュニティのための最高の結果となったと考えます。
その他、Eclipse Foundationボード、Jakarta EEステコミ会議の議事録でも、情報を提示しています。

#Eclipseコミュニティにどのような制約が生じますか？
Java商標は、Oracleの所有物であり、Eclipse Foundationはそれを使用できません。これは、以下を暗示します。

1. javaxパッケージ名前空間はJakarta EE仕様内で使えますが、「現在のまま」に限られます。Jakarta EEの各コンポーネント仕様の中でjavaxパッケージ名前空間を修正することはできません。Java EEとの互換保持のため、TCKの中で使うことはできます。
2. Jakarta EEの各コンポーネント仕様は、将来、javaxパッケージ名前空間をすべて除去するかもしれません。
3. 仕様名は、「Java EE」スタイルから「Jakarta EE」スタイルに変更しなければなりません。EJB/JPA/JAX-RSといった、略称も該当します。

これらに加えて、javax名前空間を使う仕様は、従来のJava EE仕様の中で言及されている、互換認証とコンテナへの要求を満たさなければなりません。例えば、"implementations which claim compliance with any version of the Jakarta EE specifications using the javax namespace must test on and distribute containers which embed certified Java SE implementations licensed by Oracle." しかし、この制約は、javaxを使わないJakarta EE仕様についてはあてはまりません。

なお、Jakarta EE仕様は、(EPLとは)違うEclipse Foundation Specification Licenseで提供されます。現在、Eclipse Foundationが、contributor and committer agreementの更新をコミュニティに要求している理由はこのためです。

#Jakarta EEワーキンググループで次にやることは？
Oracleを含むワーキンググループでは、これまでやろうとしてきたことを継続します。すなわち、Java EEをEclipse Foundationへ移行することです。Jakarta EE 8の仕様策定や、Jakarta商標のロゴの制定。さらに、もともと主張していたクラウドネイティブに向けたJakarta EEの仕様策定。

#Jakarta EEでjavaxパッケージ名前空間を修正できないとは、どういう意味か？
jakarta等の新しい名前空間で、仕様を修正・拡張することは許されています。新しい機能は、javax名前空間を使わないことになります。


#Jakarta EEブランドはどうなるのか？
Jakarta EE互換ロゴ、Jakarta EEメンバーロゴは、コミュニティで制定され公開されます。現在、使用ガイドラインや、商標ライセンスを準備中です。今年の後半にはこれらのブランドが使えるようになります。

#Jakarta EE 8は出るのか？
はい。コミュニティは、(Java EE 8互換でもある)Jakarta EE 8リリースに向けて、頑張っています。たくさんのアプリケーションサーバがJakarata EE 8互換認証をとると考えています。

#Jakarta EE 8の次は？
Jakarta EE 9では、Jakata EE 8と最大限互換を取りますが、それにより、イノベーションが妨げられることもありません。これは、主に次の２つがキーになります。
 ・Jakarta EE仕様のソースを新しい名前空間へ移動 
 ・javaxと後方互換をバイナリレベルで提供する手段、すなわち、ビルド時か実行時のツールなどにより、古いアプリケーションをJakarta EE 9実装で動作せる手段

将来の仕様では、ソースコードレベルでjavaxベースの仕様とは、非互換が生じることになりますが、それは簡単な方法となるでしょう。

これ以上の予定については、Jakarta EE Platform Projectを通じて決まっていきます。みなさんのコメント・参加をお願いします。

#EE4Jプロジェクトにとってどう意味を持つのか？
仕様プロジェクトは、OracleのJava商標を使わないように名前を変える必要があります。Jakarta コミュニティでは、新しい名前を決定しました。これは、適切で、統一された名前を選択するいい機会です。将来のEclipse Enterprise for Java (EE4J)プロジェクトについては、そこに参加するコミュニティによって決められます。

#Eclipse GlassFishの次は？
現在、Jakarta EE 8 TCKでの走行と、「interop」テストでの役割になる準備中です。Eclipse GlassFishの将来は、そこに参加するコミュニティによって決められます。

#Jakarta EE 8以降での仕様はどう決められるのか？
Jakarta EE仕様は、Jakarta EE Specification Process (JESP)によって、更新されます。実際の更新内容は、各仕様プロジェクトに参加しているコミュニティによって決められます。