2018 年のデビュー以来 2 度目の正式リリースとなる Jakarta EE 9 は、2020年11月20日にGAリリースを予定している。もともと2020年9月16日に予定されていた JakartaOne Livestream 2020 の第 2 回目のカンファレンスに合わせて、遅ればせながらGAのリリース日を後回しにする必要が出てきた。
Jakarta EE 9 リリース計画で規定されているように、開発者は安定したツールのリリースを期待できる。ツールベンダは新しい jakarta
パッケージ名前空間をサポートできる。開発チームは、アプリケーションの新しい名前空間への移行をテストできる。そして、ランタイムベンダは、オプションや機能をテストして提供できる。これは Jakarta EE 8 との移行および下位互換性をサポートするための機能を提供する。Jakarta EE 9 は、Jakarta EE 10 以降の新機能を推進するためのイノベーションの基盤と考えられるかもしれない。
Tomitribe の CEO であり Jakarta EE 運営委員会のメンバーでもある David Blevins 氏が、Jakarta EE 9 リリース計画に関して Kevin Sutter 氏(IBM の Jakarta EE 9リリースリード)の貢献について InfoQ に語った。
Kevin Sutter 氏は、承認された最終計画での彼の仕事に少しスポットライトを当てるにふさわしい。彼はラストワンマイルで全ての無理なことをした人です。彼は、すべてのスレッドをまとめ、公開コミュニティ投票を実施し、11月と12月のコミュニティコールを組織し、運営委員会が要求したタイムライン上で最終計画をすべて起草しました。
2020年6月23日に祝われた Jakarta EE 9 の最初のマイルストーンリリースには、Jakarta EE Platform プロジェクト(Platform and Web Profile 9.0.0.0-RC2 API)、Jakarta EE TCK(Platform TCK 9.0.0-M1)、Eclipse GlassFish 6.0-M1、Eclipse Transformer プロジェクトのアップデートが含まれた。このイベントには、約20カ国から155名の開発者が参加しました。
今回のリリースに含まれている Jakarta EE の仕様更新では、TCK と投票投票用紙を徐々に通過しています。例えば、Bean Validation 3.0 仕様は、Jakarta EE 9 に対応した最初の仕様でした。
Kevin Sutter 氏が、InfoQ 社に Jakarta EE 9 のリリース予定について話しました。
InfoQ:読者の皆様には、各 Jakarta EE 仕様の認証と投票プロセスについて説明してください。
Sutter 氏:仕様書の認証と投票プロセスは、我々の利害関係者(仕様書委員会のメンバー)が仕様書のバージョンに関連する成果物(仕様書自体、関連するAPI、TCK(テスト互換性キット)、CI(互換性のある実装))を十分にレビューして承認し、仕様書を適切に実装してテストすることを確実にします。この「祝福された」関連の成果物セットがなければ、使用者は、この技術を本番開発や使用に投入するために必要な自信を持てません。この認証と投票プロセスは、おそらく Jakarta EE 仕様委員会の最も重要な仕事だ。
一言で言えば、各仕様プロジェクト(すなわち、永続性、同時実行性、Bean Validationなど)は、この認証と投票プロセスのために成果物を準備する必要がある。これは、仕様リポジトリに対するPR(プルリクエスト)を介して行われます。必要な資料はすべて、いくつかの定義されたマークダウンファイル(すなわち
_index.md
)、またはチェックリストを介して提供される。これらはそれぞれのPRに追加される。仕様委員会は、委員会からメンターを任命し、最終的な投票のために T がすべてクロスし、I が点線になっていることを確認する。いったんメンターが(すべてのソースからの入力に基づいて)PRに署名すると、そのメンターは仕様バージョンの正式な投票を開始できる。この投票は、仕様委員会の公開メーリングリストで行われる。仕様書委員会のメンバー以外にも、私たちはより広いコミュニティからの資料のレビューと承認を奨励している。投票は +1 票を示す過半数を超えれば通過する。
ほとんどの場合、メンターや他のレビュアーの十分な勤勉のために、投票は合格票で通過してきます。しかし、文書化された例外があり、問題が取り上げられた後に投票を取り消して再開する必要があるかもしれない。
InfoQ:Jakarta EE の展望は?
Sutter 氏:最初に Jakarta EE 9.1 がリリースされます。元々、Jakarta EE 9 はJava SE 8 と Java SE 11 の両方との互換性をサポートしようとしていました。今年の夏の初めに Platform TCK と CI のテスト中に発見されたいくつかの問題のために、Java SE 11 のサポートは中止されなければなりませんでした。これは、この秋にも Jakarta EE 9 を届けることを確実にするために行われました。そのため、Jakarta EE 9 はJava SE 8 のみをサポートします。Jakarta EE 9 が出てくるとすぐに、Java SE 11 に対応するために、Jakarta EE 9.1 が進行中です。これは比較的早くリリースされるはずです。対策が必要な項目はかなり理解できています。これらの前提条件を体系化して、実装とテストを完了させます。あとは、Jakarta EE 10 のことを考え始めればいいでしょう。
まず、Jakarta EE 10 のリリースを牽引してくれる人を積極的に探しています。Jakarta EE 9 のリリースを牽引したことは、非常にやりがいのある経験でした。プラットフォームとしての Jakarta EE や、個々の技術が直面している課題について、大変勉強になりました。しかし、Jakarta EE の次のメジャーリリースに向けて、新鮮なアイデアを持った新参者を投入する時が来たのです。
私はJakarta EE 9 で頭を痛めていたので、Jakarta EE 10 の具体的な項目についてはあまり範囲を見ていませんでした。私は、いくつかの新しい仕様が Jakarta EE ファミリに導入されるのを見たいと思っています - 多分、プラットフォームの一部としてではなく、独立した仕様として。
私たちは Jakarta MVC と Jakarta NoSQL という 2 つの新しい仕様プロジェクトを立ち上げました。MVC プロジェクトは JCP から始まり、最近 Jakarta EE に移行しました。JCP のガイダンスのもと、積極的に仕様書を作成していたので、少しは頭を抱えているようです。彼らがプラットフォームと統合するのに十分かどうかを見るのは興味深いことでしょう。
NoSQL プロジェクトには、かなり初期の実装経験があります。これは"コードファースト"の信念をサポートしています。 このプロジェクトの興味深い点は、ユーザーの関心を示すのに十分なコミュニティの関与を得ることができるかどうかということです。そして、NoSQL が既存の Persistence (JPA) や JDBC 技術とどのように相互作用するか、あるいはしないかを定義できます。
この機会のもう一つの大きなことは、MicroProfile(私のペットプロジェクトの一つ)です。MicroProfile Working Group が設立されました。これによって、Jakarta EE と同様に、Eclipse Foundation Specification Process(EFSP)に沿って仕様書を作成していくことになります。これにより、これらのプロジェクト間でのコラボレーションの可能性が広がります。以前、Jakarta EE では、EFSP を使用していませんでした。そのため、MicroProfile 技術への依存関係を指定することに問題がありました。これですべて解決したはずです。そしてこの 2 つの開発努力の相乗効果をもっと期待したいと思います。
InfoQ:Java コミュニティは、Jakarta EE への貢献にどのように関わっていくのでしょうか?
Sutter 氏:これからも成長していける領域の一つです。Jakarta EE 8 の間、主な貢献者は仕様委員会のメンバーであった。Jakarta EE 9 では、その領域が拡大し、より多くの人々が仕様プロジェクトに貢献し、投票のための PR を準備するのに貢献していることがわかりました。
Jakarta EE 9 の基礎ができた今、私たちはさらに多くのコミュニティの参加を必要としています。私の提案は、小さなことから始めることです。興味のあるプロジェクトを見つけて、どのように協力できるか聞いてみましょう。あるいは、メーリングリストや問題点を監視し、変更や改善を提案してください。問題解決に役立つスキルを持っているのであれば、問題解決のために PR を申し出てみましょう。
ほぼすべてのプロジェクトで、次のリリース(サービスまたはメジャー)を定義するための支援を求めています。だから、飛び込んで助けようとするだけでいい。具体的な計画が固まっていない場合は、新規リリースの最初に貢献した方がはるかに楽になります。
他にも貢献する方法はあります。Jakarta EE の能力を実証することに関連したリポジトリがいくつかあります。あるいは、技術のことを書くのが好きかもしれません。Jakarta EE に関するブログ記事なら、いつでも歓迎です。また、「Adopt a Spec」プログラムも実施しています。これはJUGがより活躍できる場所です。
InfoQ:Jakarta EE 9 について、他に読者が知っておくべきことはありますか?
Sutter 氏:Jakarta EE 9 は、本当にオープンソースで成功しました。今年は本当に多くの課題をもたらしました。2020 年最初の数ヶ月で Jakarta EE 9 のリリース計画が出てきた時は、2020年6月が実現可能なリリース日になると本気で思っていました。しかし、パンデミックが発生し、私たちの生活はひっくり返ってしまいました。ウィルスの影響を直接受けていなくても、知っている人がいたはずです。あるいは、お子さんが初めてホームスクールに通うことになったのかもしれません。あるいは、あなたの会社が不景気の影響を受けたのかもしれません。どんな条件であれ、何となくウイルスの影響を受けていたのではないでしょうか。そして、これが世界的な影響を与えました。
それと相まって、Jakarta EE 9 の作業は、当初の想定よりも少し複雑なものになってしまいました。
javax
がjakarta
へ変わることによる波及効果は、予想以上に複雑に絡み合っていました。後になってからの判断は 20/20 です。しかし、いくつかの項目は、我々はこのjakarta
の名前空間をタマネギの皮を剥くようにはじめた後に顕在化しました。そして、Java SE 11 に対応することの疑問は、スケジュールを少し複雑にしていました。しかし、私たちは何が可能なのかをコミュニティと協力して考え続けました。結局、11月20日の日付に着地しましたが、今のところ、これはこれで良さそうですね
現在 12月8日に予定されている JakartaOne Livestream 2020 は、2019年9月の Jakarta EE 8 の正式リリースに合わせて開催された初開催の JakartaOne Livestream 2019 カンファレンスと同様のアジェンダを予定している。
編集部注
Michael Redlich 氏は、Jakarta EE Ambassadors のリーダーシップ評議会のメンバーであり、JakartaOne Livestream 2020 会議のプログラム委員会を務める予定です。