日別アーカイブ: 2019年5月5日

Jakarta EE update

このエントリは以下の複数エントリをベースにしています。
This entry is based on following ones.

Update on Jakarta EE Rights to Java Trademarks
https://eclipse-foundation.blog/2019/05/03/jakarta-ee-java-trademarks/
Jakarta EE has landed
https://developer.ibm.com/announcements/jakarta-ee-has-landed/
Jakarta EE 8 and Beyond
https://blog.payara.fish/jakarta-ee-8-and-beyond/
Thoughts about Jakarta EE future without ‘javax’
https://dmitrykornilov.net/2019/05/03/thoughts-about-jakarta-ee-future-without-javax/
Jakarta EE Update
https://blogs.oracle.com/theaquarium/jakarta-ee-update
Jakarta EE: A New Hope
https://www.tomitribe.com/blog/jakarta-ee-a-new-hope/
Jakarta EE and the future
https://developer.jboss.org/blogs/mark.little/2019/05/03/jakarta-ee-and-the-future
Jakarta Going Forward
https://www.agilejava.eu/2019/05/05/jakarta-going-forward/

2019年5月3日にOracleとEclipse Foundationの間で、以下のことが合意されました。

This week Mike Milinkovich announced that Oracle and the Eclipse Foundation agreed that the javax package cannot be evolved by Jakarta EE community and Java trademarks cannot be used in Jakarta EE specifications.

Thoughts about Jakarta EE future without ‘javax’
https://dmitrykornilov.net/2019/05/03/thoughts-about-jakarta-ee-future-without-javax/

Java商標ならびにjavaxパッケージの名前空間はOracle(Sun Microsystemsの頃から)のIPであるため、Jakarta EE仕様内では、javaxパッケージ名前空間の拡張はできず、Java商標も利用できない、ということです。

Jakarta EEではJava商標を利用できない

これは、Jakarta EEでは仕様と仕様プロジェクト名を変更する必要があることを意味します。現在仕様名称の標準が提示されており、これに基づいて仕様名称と仕様プロジェクト名称の変更作業が進んでいます。

Naming Standard for Jakarta EE Specification Projects
https://www.eclipse.org/ee4j/news/?date=2019-04-23
Renaming Java EE Specifications for Jakarta EE — Java EE仕様名称をJakarta EE用に変更する
https://logico-jp.io/2019/04/16/renaming-java-ee-specifications-for-jakarta-ee/

Jakarta EEではjavaxパッケージ名前空間をアップデートできない

Jakarta EE仕様でもjavax名前空間を利用できますが、あくまでも現状のままでの利用であり、追加・改変は許可されません。そのため、APIへの変更は別の名前空間(jakartaパッケージ名前空間を予定しています)で行うことになりました。これは、後方互換性が崩れることを意味しますが、Java EE 8までの仕様とJakarta EEで現在策定中の仕様を明確に区別できるという面もありますし、かつjavaxパッケージ名前空間の整理ができるという面もあります。

これらの合意事項は想定されていたことではありましたが、この合意を受けてJakarta EEが新たな段階に進むことができるようになったといえるでしょう。今回の決定事項などの説明が2019年5月9日午前0時から1時(JST、現地時間では2019年5月8日午前8時から9時)に開催されるJakarta EE Community Hangoutであるようなので、ご興味ある方はぜひ視聴してください。

Jakarta EE Community Hangout
https://eclipse.zoom.us/j/267901694

2019/05/07追記

Jakarta EEのメーリングリスト内で、TomitribeのDavid Blevinsがjavaxからjakartaパッケージ名前空間の移行案として以下の2案を提示しています。この作業はJakarta EE 9以後での実施を想定しているため、Jakarta EE 8のタイムフレームには影響しません。

[jakartaee-platform-dev] Transitioning Jakarta EE to the jakarta namespace
https://www.eclipse.org/lists/jakartaee-platform-dev/msg00029.html

GitHubにも上がっています。

Absorbing the javax to jakarta namespace change
https://github.com/eclipse-ee4j/jakartaee-platform/tree/master/namespace

Proposal 1: Big-bang Jakarta EE 9, Jakarta EE 10 New Features

この案は、javax パッケージ名前空間から jakarta パッケージ名前空間に1回だけ移行し、移行に伴うコストや期間が大きくならないようにすることを目指しています。

  • Jakarta EE 9で名前空間を変える
    • Jakarta EE 8からの機能追加・変更はしない
    • 新機能の追加はJakarta EE 10で実施
  • Jakarta EE 9ではjavaxとjakartaパッケージ名前空間のAPIが混在する
    • javaxパッケージ名前空間の機能のうち、変更のないものはjavaxパッケージ名前空間をそのまま使用し、freezeさせる(将来にわたってjavaxからjakartaへの移行はしない)

Proposal 2: Incremental Change in Jakarta EE 9 and beyond

この案では、必要に応じて徐々に移行することで、移行時間は案1に比べて長期になるものの、利点や変更がない限り、javaxパッケージ名前空間を使い続けます。この結果、変更するAPI個数が減る可能性があります。

  • Jakarta EE 9、Jakarta EE 10、… Jakarta EE.nextで徐々に移行
    • 各リリースで、javaxとjakartaパッケージ名前空間のAPIが混在するが、徐々にjavaxパッケージ名前空間からの移行が進む
    • アクティブなAPIはすぐにjakartaパッケージ名前空間に移行
    • javaxパッケージ名前空間の機能のうち、変更のないものはjavaxパッケージ名前空間をそのまま使用(将来変更が発生した時点でjakartaパッケージ名前空間に移行)

この議論は2019年6月9日(PDT)で終了しますので、ご意見のある方は、ぜひメーリングリストでの議論に参加してください。

Mailing list: jakartaee-platform-dev
https://accounts.eclipse.org/mailing-list/jakartaee-platform-dev

2019/05/10追記

先日行われたJakarta EE Community Hangoutの動画と議事録が公開されています。動画中でDavid Blevinsが自身が提案する移行案を説明していますので、ご興味ある方はぜひ。

議事録はGoogle Driveにあります(Jakarta EE Community Hangout Minutes)。