Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Jakarta EE 9.1とパッケージ名変更のためのEclipse Transformerに...

Jakarta EE 9.1とパッケージ名変更のためのEclipse Transformerについて / Overview of Jakarta EE 9.1 and Eclipse Transformer

2021/05/23開催の外部カンファレンス「JJUG CCC 2021 Spring」に登壇した際の資料です。
https://ccc2021spring.java-users.jp/

More Decks by 三菱UFJインフォメーションテクノロジー株式会社

Other Decks in Technology

Transcript

  1. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EE 9.1と パッケージ名変更のための Eclipse Transformerについて 三菱UFJインフォメーションテクノロジー株式会社 デジタルプロデュース部 髙橋 博実 1
  2. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    髙橋 博実 たかはし ひろみ 社内のR&D(先進技術調査・開発)を担当 これまでのお仕事 市場リスク計算に 関するアプリ開発 社内アプリケーション フレームワーク開発 スマートフォン アプリ開発(Scrum開発) 2 新技術調査、社内推進 Javaカンファレンス参加歴 JavaOne 2010頃から複数回 Oracle Code One 2019 SpringOne 2018 等 自己紹介
  3. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    3 JJUG CCC 2018 Fall Eclipse Cheについて JJUG CCC 2019 Spring Eclipse MicroProfile について AgileTechExpo Episode0 MUITのアジャイル開発の 取り組みについて 外部登壇 雑誌寄稿 日経SYSTEMS 2017年6月号 「レガシーJava」をモダナイズしよう 自己紹介 JJUG CCC 2020 Fall Eclipse MicroProfile の進化状況について
  4. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    会社紹介 三菱UFJ銀行をはじめとしたMUFGのIT戦略を支える! 三菱UFJニコス 三菱UFJモルガン・スタンレー証券 三菱UFJ信託銀行 三菱UFJ銀行 三菱UFJインフォメーションテクノロジー(MUIT) 三菱UFJフィナンシャル・グループ などグループ会社を 多数サポート システム開発・保守運用を支援 4
  5. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    会社紹介 181百万円 (三菱UFJ銀行 85%、三菱UFJフィナンシャル・グループ 15%) 資本金 従業員 2,018名(2021年4月現在) 事業内容 主として三菱UFJ銀行、並びに三菱UFJフィナンシャル・グループ 各社の業務等に関する、システムの企画・設計・開発・保守・運用 設立 1988年6月 ※詳しい沿革は、当社HPをご覧ください 本社 東京都中央区晴海二丁目1-40 採用担当 メール: [email protected] 検索ワード: MUIT 5
  6. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    目次 ◼ Jakarta EE概要 ◼ Jakarta EE 9 及び 9.1 について ◼ Eclipse Transformerについて ◼ まとめ Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 6
  7. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    目次 ◼ Jakarta EE概要 ◼ Jakarta EE 9 及び 9.1 について ◼ Eclipse Transformerについて ◼ まとめ Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 7
  8. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EEとは ◼ Jakarta EEとは、クラウドネィティブかつエンタープライズ向けの Javaアプリケーションのための標準仕様群 ◼ 2017年,Oracle社は標準仕様群であるJava EEについてEclipse Foundationに寄贈 その後は各アプリケーションサーバーベンダー+コミュニティベースで仕様を策定 ◼ Jakarta EEの開発や普及を推進するワーキンググループ「Jakarta EE Working Group」には以下企業・グループらが参加 Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 8 Payara 富士通 Tomitribe IBM Red Hat Pivotal Oracle https://jakarta.ee/membership/members/ Jelastic London Java Community iJUG
  9. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EE の仕様を満たしている製品一部抜粋 9
  10. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EEについて ◼ クラウドネィティブなスピード感のある進化に向けてJakarta EEがスタートしたが Oracle社が寄贈したJava EE仕様について、継続利用は許可したが改変(修正)することは 認めないと表明 ◼ 対象:Java EEという表現、仕様、インターフェース内のjavaxパッケージ、 デプロイメント記述子内のjavax,javaee表現 など ◼ Jakarta EEワーキンググループ内で、議論を経て以下進め方に決定 ⚫ 既存の仕様はそのままにして、新規仕様のみ追加する形であると既存機能への進化が見込めないため、 既存仕様も含めて変更する ⚫ javaxパッケージなどの利用については、Jakarta EE 9のバージョンにて全面変更 (段階リリースではなく、ビックバンリリース) ⚫ Jakarta EE 9ではパッケージ名変更などに集中させ、新規仕様の追加、既存仕様の改善対応は 10 以降にて対応 ◼ エンタープライズ向けJava機能の標準仕様としてのメリットは継承されている 10
  11. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    標準仕様を採用するメリットについて ◼ Jakarta EE は仕様群であり、実装は持たない (独自進化のSpringとは対極) ◼ 仕様に則ってライブラリを実装する製品提供者と、仕様に則ってライブラリを実装する アプリ開発者双方にとってメリットのあるものとなっている Jakarta EEの 標準仕様 Jakarta EEの仕様に 則った製品 アプリケーション実装部分 アプリ開発者 実装する 仕様を 理解する アプリケー ションサーバ 製品を用意する 標準仕様を使うことのメリット アプリ開発者は標準仕様を理解する ことで、どの製品であっても スキルやソースの流用が可能 例1:AプロジェクトではWebLogicを 使っているがBではLibertyを使う場合 開発者がキャッチアップがしやすい 例2:Aプロジェクトは製品EOLの タイミングでLibertyに乗り換えた その際の影響が限定的になる 11
  12. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    これまでのリリース内容と今後の計画 リリース 時期 主な内容 Java EE 8 2017年 9月 Java EEという名前での最後のリリース。このリリース直後にOSS 組織への移管を発表。 HTTP/2をサポートしたServlet4.0、JSONバインディングの仕様で あるJSON-B、Security APIのリリースなど。 Jakarta EE 8 2019年 9月 Jakarta EEとしての最初のリリース。 機能仕様としてはJava EE 8とフル互換を保つ。 Jakarta EE 9 2020年 12月 javaxパッケージなどの非互換対応(ビックバンリリース)。 仕様の追加、修正対応は無し。このバージョンまではJava SE 8が サポートバージョン。 Jakarta EE 9.1 2021年 5月予定 Java SE 11対応。 Jakarta EE 10 2021年内 の予定 No SQL、MVCの新規仕様追加。既存仕様の各種アップデート。 MicroProfileとのアラインメントについても検討中。 12
  13. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    (ご参考) Eclipse MicroProfile ◼ Jakarta EE 技術をベースし、マイクロサービス構築のための エンタープライズJavaを最適化するためのコミュニティベースの標準仕様群 ◼ 仕様策定メンバーとしては、アプリケーションサーバーベンダー および各地のJavaユーザーグループで構成されている Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. Payara 富士通 Tomitribe IBM Red Hat Microsoft Hazelcast Oracle SouJava KamuluzEE Hammock Lightbend London Java Community 13
  14. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Java EE、Jakarta EEとの機能差異 ◼ Eclipse MicroProfile は Java EEのバージョンアップの進化が遅いという課題から 誕生。(Java EEの移管発表の前のタイミング) ⚫ Jakarta EEの一部機能をサポート - JAX-RS - CDI - JSON-P 等 ⚫ Eclipse MicroProfile独自の機能を スピード感を持って拡充。以下は代表例 - Config - Fault Tolerance - Health Check - Open Tracing Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. https://microprofile.io/ 14
  15. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Eclipse MicroProfileのリリース推移 2017 2018 2019 2020 MircoProfile 1.0(Fall 2016) JAX-RS2.0 CDI 1.0 JSON-P 1.0 MircoProfile 1.1 (Aug 2017) Config 1.0 MircoProfile 1.2 (Sep 2017) Config 1.1 Fault Tolerance1.0 Health1.0 Metrics1.0 JWT1.0 MircoProfile 1.3 (Dec 2017) Config 1.2 Metrics1.1 OpenApi1.0 Open Tracing1.0 Rest Client1.0 MircoProfile 1.4 (June 2018) Config 1.3 Fault Tolerance1.1 JWT1.1 Open Tracing1.1 Rest Client1.1 MircoProfile 2.0 (July 2018) JAX-RS2.1 (Java EE8) CDI2.0(Java EE8) JSON-P1.1(Java EE8) JSON-B1.0(Java EE8) MircoProfile 2.1 (Oct 2018) Open Tracing1.2 MircoProfile 2.2 (Feb 2019) Fault Toleraance2.0 OpenAPI1.1 Open Tracing1.3 Rest Client1.2 MircoProfile 3.0 (June 2019) Metrics2.0 Health Check2.0 Rest Client1.3 MircoProfile 3.2 (Nov 2019) Metrics2.2 Health Check2.1 MircoProfile 3.1 (Oct 2019) Metrics2.1 Health Check2.1 MircoProfile 3.3 (Feb 2020) Config1.4 Metrics2.3 Fault Tolerance2.1 Rest Client1.4 Health Check 2.2 MircoProfile 4.0 (Nov 2020) Config2.0 Metrics3.0 Fault Tolerance3.0 Rest Client2.0 Health Check 3.0 JWT RBAC1.2 OpenAPI2.0 Open Tracing2.0 高頻度のリリースが継続されている Jakarta EEとのアラインメント について協議中 15
  16. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EE の始め方 ◼ のようなダウンロードしてビルド、即実行という気軽さは無いまでも Eclipse GlassFish 及びサンプルプロジェクトのダウンロード、ビルド、実行という 少ないステップだけで Hello-Worldまでたどり着ける https://start.jakarta.ee/ 16
  17. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    目次 ◼ Jakarta EE概要 ◼ Jakarta EE 9 及び 9.1 について ◼ Eclipse Transformerについて ◼ まとめ Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 17
  18. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EE 9 について ◼ Jakarta EE 9 は2020年12月にリリースされた ◼ リリーステーマは以下3つ ⚫ 新規アプリケーションサーバーベンダーへの障壁を下げる ⚫ クラウドネィティブJavaにおける将来へのキーステップとする ⚫ オープンな仕様を通じて、ネームスペース変更に関する容易なマイグレーションを実現する ◼ Java SE 11対応の見送り ⚫ Java SE 8 と Java SE 11 の両方との互換性をサポートしようとしていたが、テスト中に 発見した不具合対応につきJava SE 11 のサポートは見送りとなった ◼ APIの削除 ⚫ Jakarta XML Registries (JAX-R)、 Jakarta XML RPC (JAX-RPC)、 Jakarta Deployment (JSR 88)、 Jakarta Management (JSR 77)、 Enterprise Beans (EJB) の Distributed Interoperability 18
  19. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EE 9 準拠されている製品について ◼ 準拠されている製品については、Jakarta EE のサイト上にて公開されている ◼ 現時点の準拠製品は以下のとおり https://jakarta.ee/compatibility/#tab-9 19
  20. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Jakarta EE 9.1 について ◼ Jakarta EE 9.1については2021年1月に計画策定し、5月のリリースに向けて 対応中の状況 ◼ 2月時点でAPIのRC1版はリリース済み ◼ それを受けて、Eclipse GlassfishのJakarta EE 9.1対応のベータ版を公開されている ◼ 本日はEclipse GlassFish 6.1 RC1を使って以下のデモを実施します ⚫ Java SE 11を使い、Glassfishを起動 ⚫ jakarta パッケージを使い、アプリケーション作成と動作確認 ⚫ javaxパッケージを使った場合のアプリケーション作成と動作確認 https://glassfish.org/download 20
  21. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    目次 ◼ Jakarta EE概要 ◼ Jakarta EE 9 及び 9.1 について ◼ Eclipse Transformerについて ◼ まとめ Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 21
  22. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Eclipse Transformerについて ◼ Eclipse Transformerとは、Jakarta EE 9 で発生したパッケージ名や デプロイメント記述子の変更対応について、変換対応することを補助してくれるツール ◼ オープンソースとしてGithubに公開されており、現在のリリースバージョンは 0.2 ◼ 変換対象としては、Javaファイル、Classファイル、デプロイメント記述子といった 単一ファイルから、Jarファイル、Warファイル、Earファイルといったアーカイブファイル まで幅広く対応している ◼ 変換ルールについては、利用者にてカスタマイズ可能なため、javaxパッケージの変換対応以 外にも、OSSのバージョンアップ対応など応用して使うことが可能な仕様となっている ◼ 実行形式としては、CLI形式もしくはMavenプラグイン形式の2種類用意されている ◼ 現状ツールはMaven Centralには公開されておらずSonarType Nexusにのみ公開されている https://github.com/eclipse/transformer/ https://oss.sonatype.org/#nexus-search;classname~org.eclipse.transformer 22
  23. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    Eclipse Transformerの使い方 ◼ Mavenプロジェクトで且つ、変換設定は現状プロジェクト内のリソースファイルとして 保持されているため、GithubのソースZipをダウンロードして利用する方法が良い 1. ソースファイルの取得 2. ビルドを行い、CLI用のJarファイルを生成 3. java –jar コマンドにて生成したJarファイルを実行、引数に変換対象のパスを 指定することで変換される 変換対象はディレクトリ指定も可能 実行例 java –jar org.eclipse.transformer.cli-0.2.0.jar HelloServlet.java → outputフォルダが生成され、その中に変換後のHelloServlet.javaが生成される ◼ 本日はデモとして、Javaファイル、Classファイル、Warファイルの javax パッケージから jakarta パッケージ名への変換をお見せします 23
  24. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    目次 ◼ Jakarta EE概要 ◼ Jakarta EE 9 及び 9.1 について ◼ Eclipse Transformerについて ◼ まとめ Copyright(C) 2019 Mitsubishi UFJ Information Technology Ltd. All rights reserved. 24
  25. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    まとめ ◼ Jakarta EE9が昨年末にリリース、Java SE 11対応の9.1については今月中にリリースを 予定されており、Jakarta EEとしての土台が整ってきた状況 ◼ 次期リリースのJakarta EE 10についてはMVCやNo SQLといった新規仕様リリースだけでな くMicro Profileとのアラインメントについても進んでいるため内容に期待 ◼ 手軽に開発できるSpringBootも良いが、これまでのJava EE関連の資産、スキル流用という 観点では、Jakarta EE や MicroProfile関連も利用も選択肢の一つに入れるのはどうか ◼ Eclipse TransformerはJava開発環境があれば容易に利用可能で動作も安定しているが、 まだバージョン0.2でガイドも少ない状況 ◼ Eclipse Transformer含めJakarta EE関連については皆さんも是非触ってみて、 要望の意見出しなどコントリビュート活動を一緒にしていきましょう 25
  26. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    共に変えていく仲間を募集します 変革の時期に共に進めていく、Application Developer、アーキテクト、 スクラムマスターなど、新しい仲間を迎え、進めていきたく宜しくお願いします。 気軽にお声かけ、メールください。 採用担当 メール: [email protected] 検索ワード: MUIT 26
  27. Copyright(C) 2021 Mitsubishi UFJ Information Technology Ltd. All rights reserved.

    ◼ 本プレゼンテーションにより、貴社と三菱UFJインフォメーションテクノロジー株式会社の間 には何ら委任その他の契約関係が発生するものではなく、当社が一切法的な義務・責任を負う ものではありません。 ◼ 本資料は信頼できると考えられる各種データに基づいて作成されていますが、当社はその正確 性、完全性を保証するものではありません。 ◼ ここに示したすべての内容は、当社の現時点での判断を示しているに過ぎません。 ◼ また、本資料に関連して生じた一切の損害については、当社は責任を負いません。 ◼ その他専門的知識に係る問題については、必ず貴社の弁護士、税理士、公認会計士等の専門家 にご相談の上ご確認下さい。 27