Jakarta EEって現状どうなってるんだっけ?と思ったら次のリリースがすぐだったので各社のJakarta EE仕様準拠状況をまとめた。
Jakarta EE 10が2022年第一四半期にリリースされます。つまりもうすぐです。 そういえば、Java EEってどうなったんだっけ?とか、Jakarta EEになってからどうなってるの?という人向けのまとめ記事です。
で、Jakarta EEって現状どうなってるんだっけ?ってまとめようとしたら、以下のページがいい感じにまとまっていたので、こちらを参照するとよい感じです。 https://openliberty.io/docs/22.0.0.2/jakarta-ee.html
重要なところだけ抜粋すると、
Jakarta EEプラットフォームの継続的な開発は、JESP(Jakarta EE Specification Process)を通じてJakarta開発者コミュニティによって進められ、プラットフォーム向けの新しい仕様プロジェクトを導入するための青写真が提供されています。Open LibertyなどのJakarta EE互換ランタイムは、仕様プロジェクトで記述された機能を実装しています。各実装はTechnology Compatibility Kit(TCK)を通じてコミュニティによって検証されます。TCKは、リファレンス実装の準拠性を確認するためのテスト群です。ある仕様プロジェクトが正式な仕様となるには、TCKのテストを満たすオープンソースのリファレンス実装を少なくとも1つ開発するプロセスを経て、承認される必要があります。
Open Libertyは、Jakarta EE 9.1のリファレンス実装であり、Jakarta EE Platform Specificationで定義されたJakarta EEの必須仕様を全て実装していることにあんります。Open Liberty上で動作するアプリケーションは、サーバー構成で対応するOpen Libertyの機能を有効にすることで、Jakarta EE APIを利用することができる。次の表は、最もよく使われる Jakarta EE 仕様をいくつか説明し、それに対応する Open Liberty 機能をリストアップしたものです。Try it outの欄には、Open Libertyがその仕様をどのように実装しているかを示すOpen Libertyガイドへのリンクがあります。
ということで、RIがGlassFishじゃなくて、Open Liberty(IBMのWebSphereのコミュニティ版)になってました。まじかー。
ちなみに、Jakarta EEの直近のリリースとしては以下のような感じになります。カッコ内はリリース日です。
- Java EE 8(2017/7) Oracle がリリースした最後のJava EE
- Jakarta EE 8(2019/9) ブランド名の変更のみ。Java EE 8と変更なし。
- Jakarta EE 9(2020/11) パッケージ名の変更*1 およびにいくつかの機能の追加及びに削除。Jakarta EE 8以前との互換性が問題になる。※Twitterで教えてもらってアップデートしました。*2
- Jakarta EE 9.1(2021/7) サポートするJava SEの最低バージョンをJava SE 8からJava SE 11にアップデート
- Jakarta EE 10 (2022年第一四半期にリリース予定) Jakarta EEに名前が変わってからの最初の機能アップデート
Jakarta EE 10がどうなるかについては以下のページを確認してください。
InfoQにもまとまった記事があるので、サマリーの日本語訳が必要な人はそちらを。
え?第一四半期ってまじかよっ!?って思ったら、リリースプランページに明記されていました。
Jakarta EE 10ではまだJava 11サポートするの?という件については以下で議論がされていました。Springとの温度差を感じますね。
各APサーバーのJakarta EE仕様への対応状況
2022年3月3日時点の最新版のJakarta EE(Java EE) 仕様への対応状況は以下の通りです。
Jakarta EE 8からJakarta EE 9への移行については互換性について考慮する必要がありますので、商用サーバーは避けているのが見えます。。 現実的にはJava EE 8から移行する利点はほぼないため、既存客を考慮すれば対応しないというのも理にかなってる選択となります。 が、今後Jakarta EE 10にはいつ対応するのか?の指標にはなる気がしますね。
Oracle WebLogic Server 14.1.1.0.0
Java EE 8 Jakarta EE 8 ドキュメント上はJava EE 8ですが、Jakarta EE 8のTCKが通った一覧に記載がありました。※Twitterで教えてもらいました。*3
Oracle WebLogic Serverの新機能 14.1.1.0.0
Eclipse GlassFish 6.2.5
Jakarta EE 9.1
Eclipse GlassFish | projects.eclipse.org
Payara Enterprise 5.36.0
Jakarta EE 8
Release notes - Payara Platform Enterprise 5.36.0 :: Payara Enterprise Documentation
WebSphere Application Server traditional 9.0.5
Java EE 7
WebSphere Application Server traditional の新機能
WebSphere Application Server Liberty 22.0.0.2
Jakarta EE 9.1Jakarta EE 8 ※コメント欄で教えてもらいました。
Jakarta EE and Java EE 8 in Liberty
Open Liberty 22.0.0.2
Jakarta EE 9.1 (リファレンス実装)
Jakarta EE overview :: Open Liberty Docs
JBoss Enterprise Application Platform 7.4
Jakarta EE 8 ※Java EE 8はサポートしない感じの表を書いてるけど別ページでは同等のものですと書いている。
JBoss Enterprise Application Platform Supported Standards - Red Hat Customer Portal
WildFly 26.0.0.Final
Jakarta EE 8 (and EE 9.1 Preview)
※実際はEE 9.1 Previewではなくて、EE 9.1のTCK(互換性確認キット)が通ってるので、EE 9.1対応。
apache-tomee-9.0.0-M7
Jakarta EE 9.1
トップページにでかでかと9.1認証されました!って書いてあって清々しい。
Interstage Application Server V13
Jakarta EE 8
Cosminexus:uCosminexus Application Server V11
Java EE 7
構成・機能:アプリケーションサーバ uCosminexus Application Server:クラウドサービスプラットフォーム Cosminexus:ソフトウェア:日立
WebOTX v10.4
Java EE 7
Resion 4.0.61
Java EE 6
Resin : Changes : Resin 4.0.4 Release Notes
聞かなくなったなと思ってたら死んでたか・・・・
感想
以前はGlassFishがRIでしたが、現在はLibertyがRIになっていたのが驚きました。
ちょうど別で、Red HatがHibernate(Jakarta EE、JPAのRI)の実装者を新規雇用しようとしているのもtwitterで流れてきてたし、IBM系(IBM/Red Hat)*4が結構やる気なのか?という印象を持ちました。
@RedHat is hiring for the Hibernate Team! Remote position for a senior Java developer. You'll work daily on the #OpenSource project #HibernateSearch, that integrates technologies such as #Hibernate ORM, #Elasticsearch, and (soon) #Debezium. Check this out: https://t.co/fe7jJG64wz
— Hibernate (@Hibernate) 2022年2月24日
また、GlassFishもJakarta EE 10に向けて着々と歩みを進めており、OracleがGlassFishを捨てたとはいえ、その先のWebLogicに向けてどうするのかというところが注目されます。
GlassFish 7 milestone 2 released!
— OmniFaces (@OmniFaces) 2022年2月25日
Second milestone incorporating all changes from GlassFish 6.2.5 and all the latest Jakarta EE 10 (milestone) components at the time of release.https://t.co/IVQdxPRwJo#JakartaEE #JakartaEE10 #Java @JakartaEE @glassfish pic.twitter.com/o8sBDkdrTa
Jakarta EEは長く停滞を続けてましたが、ここからまた変わるのでしょうかねぇ?
*1:例えば javax.servlet.http -> jakarta.servlet.http
*2:https://twitter.com/yamadamn/status/1499339433522663425 詳細は https://openliberty.io/docs/22.0.0.2/jakarta-ee-diff.html
*3:https://twitter.com/yamadamn/status/1499339433522663425
*4:私はRed Hatの社名を間違えましたの札 https://twitter.com/chiroito/status/1499922603666194442