#はじめに
2020年1月22日にJJUGナイトセミナー「Jakarta EE特集」を聴講したので、その内容をまとめてみました。
イベント紹介ページ
https://jjug.doorkeeper.jp/events/102611
#Jakarta EE最前線 -Jakarta EE 8の新機能と今後のロードマップなどなど
###Jakarta EEのリリースの流れ
- 2017年9月 :Java EE8のリリース
- 2019年9月 :Jakarta EE8のリリース
- 2020年6月頃:Jakarta EE9のリリース(予定)
###Jakarta EE が目指すもの
- Java EEに代わるあらたなエンタープライズJava標準をまとめていく
- クラウドネイティブ時代に対応する標準を決める(時代の流れに沿った標準にする)
- ECLIPSE FOUNDATIONでイニシアチブを運営(活気のあるコミュニティを形成)
(目指しているもの)
オープンソースなどの良いものを取り入れていく
ex:Microprofileの運営方法、Docker、Kubernetes
###Jakarta EEの仕様策定の原理原則
Jakarta EEはソースコードの仕様やテストキットの標準をまとめる活動をしているが、
その活動の原理原則は以下の通り。
- オープンに活動する
- リリース頻度向上(頻度はまだ未定)
- 古いAPIをそぎ落とし、新しい仕様を入れる
- 相互依存性の軽減
- テストキットをプロジェクト単位に構築をする
- mavenを標準ビルドツールにする(オープンソースの活用)
- CDIとconfig(方向性未定)の積極的な導入
- JavaSEに対しても、MANIFEST.MFを入れておく
###仕様策定のプロセス
今までのJavaEEとは異なる。
ECLIPSE FOUNDATIONが持っている仕様プロセス
「Eclipse Foundation Specification Process(EFSP) 」を踏襲している。
- 今までのプロセス
- 仕様を決めてから開発・実装するため、フェーズが分離している
- 今後のプロセス
- ラフな仕様を決めたら開発をし、実装と同時並行で仕様を固めていく
###Jakarta EEのロードマップ
- Jakarta EE8
- ・ネームスペースは「javax.* 」
- ・Java EE8の仕様をそのまま移行
- ・オープンソースTCK(技術互換キット)を利用可能
- ・プロセスの確立
- Jakarta EE9
- ・Jakarta EE8から新しい仕様追加なし
- ・ネームスペースを全面移行:「javax.* 」 → 「jakarta.* 」
- ・古くなった仕様の削除とオプション化
- ・jdk11への互換性を保証する
- Jakarta EE10
- ・未定
Jakarta EE9でネームスペースを変える理由
ApplicationServerやIDEなどの製品や環境の移行をスムーズに行うため
Jakarta EE9で仕様の削除とオプション化するもの
削除対象(Java EE8でオプション化したもの)
- Jakarta XML Registries
- Jakarta XML RPC
- Jakarta Deployment
- Jakarta Management
オプション化対象(次のVerで削除?)
- Jakarta Enterprise Bean 2.x and 1.x client view
- Jakarta Enterprise Web Services
Java SE8からの移行追加仕様
- Jakarta XML Binding
- Jakarta Activation
※Java SE8で削除されたものがJakarta EE9で復活する可能性あり
その他Jakarta EE8からJakarta EE9での変更点
・Jakarta EE9は、Jakarta EE8への後方互換性は保証しない
・仕様自体は変わらないが、各使用のバージョン番号が更新(インクリメント)される。
例)Jakarta Servlet 4.0.3 →5.0
Jakarta EE9のリリース内容
https://www.eclipse.org/lists/jakartaee-platform-dev/msg00702.html
###Jakarta EE8 補足
Java EE8~Jakarta EE9は変更がないため、長期間同じ仕様となる(2017~2020)
Jakarta EE8のチュートリアルはGlassFishのGithubにある
https://github.com/eclipse-ee4j/jakartaee-tutorial(英語)
Jakarta EE8のサンプルアプリ開発(30分ほどでできる模様)
kickstart a jakartaEE8 application
https://medium.com/@hantsy/kickstart-a-jakarta-ee-8-application-d1b6ff32213b(英語)
#まとめ
- Jakarta EEはこれから10年、20年先まで使うエンタープライズjava標準
- Spring、MicroProfileやその他との使い分けは続く(連携の可能性あり)
- Jakarta EEはJava EEと同じ特質を持つことから、主な要件はミッションクリティカルであり長期的に運用可能であり、安定稼働すること