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がどうなるかについては以下のページを確認してください。

eclipse-ee4j.github.io

InfoQにもまとまった記事があるので、サマリーの日本語訳が必要な人はそちらを。

www.infoq.com

え?第一四半期ってまじかよっ!?って思ったら、リリースプランページに明記されていました。

eclipse-ee4j.github.io

Jakarta EE 10ではまだJava 11サポートするの?という件については以下で議論がされていました。Springとの温度差を感じますね。

github.com

各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

Jakarta EE Compatible Products | Enterprise Java Application and Web Servers | The Eclipse Foundation

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)

WildFly Documentation

※実際はEE 9.1 Previewではなくて、EE 9.1のTCK(互換性確認キット)が通ってるので、EE 9.1対応。

apache-tomee-9.0.0-M7

Jakarta EE 9.1

Apache TomEE

トップページにでかでかと9.1認証されました!って書いてあって清々しい。

Interstage Application Server V13

Jakarta EE 8

https://www.fujitsu.com/jp/documents/products/software/middleware/business-middleware/interstage/products/apserver/catalog/cz1200-18.pdf

Cosminexus:uCosminexus Application Server V11

Java EE 7

構成・機能:アプリケーションサーバ uCosminexus Application Server:クラウドサービスプラットフォーム Cosminexus:ソフトウェア:日立

WebOTX v10.4

Java EE 7

WebOTX Manual | NEC

Resion 4.0.61

Java EE 6

Resin : Changes : Resin 4.0.4 Release Notes

聞かなくなったなと思ってたら死んでたか・・・・

感想

以前はGlassFishがRIでしたが、現在はLibertyがRIになっていたのが驚きました。

ちょうど別で、Red HatHibernate(Jakarta EE、JPAのRI)の実装者を新規雇用しようとしているのもtwitterで流れてきてたし、IBM系(IBM/Red Hat)*4が結構やる気なのか?という印象を持ちました。

また、GlassFishJakarta EE 10に向けて着々と歩みを進めており、OracleGlassFishを捨てたとはいえ、その先のWebLogicに向けてどうするのかというところが注目されます。

Jakarta EEは長く停滞を続けてましたが、ここからまた変わるのでしょうかねぇ?