このエントリは以下のエントリをベースにしています。
This entry is based on the following written by Cesar Saavedra.
https://microprofile.io/2019/06/11/eclipse-microprofile-3-0-is-now-available/
Eclipse MicroProfile 3.0がリリースされました。

Eclipse MicroProfile 3.0は2.2をベースに作られており、以下のコンポーネント仕様がアップデートされています。
- Rest Client
- Metrics
- Health Check API
Metrics、Health Checkの両者はAPIに破壊的変更が入っているため、後方互換性がありませんので、アップデート時には注意が必要です。MicroProfile 3.0への移行が原因でアプリケーションに問題が発生する場合、MicroProfile 2.2にとどまることを検討してください。MicroProfile 3.0では、以前のバージョンと同様、Javaマイクロサービスの開発のためのプログラミングモデルとしてJava EE 8との整合性を保ち続けています。
上図は、Eclipse MicroProfile 3.0リリースの一環でアップデートされた3つのAPIを示しています。
MicroProfile 3.0 Specifications
https://github.com/eclipse/microprofile/releases/download/3.0/microprofile-spec-3.0.pdf
Rest Client 1.3
複数のクライアントインターフェース設定の簡素化、SSL設定のサポート、使用後のリソースのクリーンアップ、および何も指定されていない場合のデフォルトのメディアタイプが導入されました。
Rest Client for MicroProfile
https://download.eclipse.org/microprofile/microprofile-rest-client-1.3/microprofile-rest-client-1.3.html
Metrics 2.0
カウンタのリファクタリングに関連したAPIの破壊的な変更が含まれています。つまり、すべてのカウンタが単調になり、古い非単調カウンタがConcurrentGaugesに変わっています。さらに、OpenMetrics形式(以前はPrometheus形式と呼ばれていました)がサポートされ、不要な注釈や廃止予定のメソッドが削除され、特定のメトリックの識別が向上しました。
Metrics for Eclipse MicroProfile
https://github.com/eclipse/microprofile-metrics/releases/download/2.0.0/microprofile-metrics-spec-2.0.0.pdf
Health Check 2.0
Health Checkのレスポンス本体が変更されるという破壊的変更が含まれています。さらに、Kubernetesのようなコンテナオーケストレーション向けに@Liveness、@Readinessというヘルスチェックの注釈のサポートが追加されています。また、いくつかの注釈の非推奨化、テスト互換性キット(TCK)とそのJSONスキーマなどの機能強化およびクリーンアップを実施しました。
MicroProfile Health
https://github.com/eclipse/microprofile-health/releases/download/2.0/microprofile-health-spec.pdf
MicroProfile 3.0を利用するメリットは以下の通りです。
- Java EE 8機能サブセットとの継続的な整合
- Health Check、Metrics、およびRest Client用の豊富な機能セット
- エンタープライズJavaマイクロサービスを実装するためのより多くの機能を提供する追加機能
- 仕様の明確化とドキュメントの機能強化
- MicroProfile API間のより高度な統合
- これらすべてのAPIはCDIベースでプログラム的に使いやすいインターフェースを提供
- 異なるMicroProfileの実装間の相互運用性を担保しているため、1つのアプリケーションでとある実装を選択することも、複数のMicroProfileの実装を組み合わせることも可能
- テスト互換性キット(TCK)、Javadoc、ダウンロード可能なPDF文書、API Mavenアーティファクト、Gitタグ、および仕様とソースコードのダウンロードを含む、各APIの完全な成果物セットを入手可能
Eclipse MicroProfileは定期的に付加価値を提供し続け、コミュニティの貢献者全員によるダイナミックな関与とともに進化を続けています。例えばstart.microprofile.ioプロジェクトでは、プログラムによる呼び出しや統合開発環境(IDE)用の拡張機能の作成を容易にするコマンドラインインターフェイス(CLI)の導入を計画しています。
MicroProfile Starter
https://start.microprofile.io/
さらに、MicroProfile Reactive Messagingプロジェクトは、MicroProfileのリアクティブパラダイムを進化させながら、コアプラットフォームのリリースとは別にv1.0スタンドアロン仕様をリリースすることを計画しています。
MicroProfile Reactive Streams Operators
https://github.com/eclipse/microprofile-reactive-streams-operators
同様に、MicroProfile BoostプロジェクトがMicroProfileサンドボックスに追加され、コミュニティによるさらなる分析と評価が行われています。
Boost
https://github.com/eclipse/microprofile-sandbox/tree/master/proposals/boost
Eclipse MicroProfileの将来のリリースでは既存APIのアップデートと新規APIの追加を予定しています。例えば以下のトピックについて現在議論が進んでおり、将来のMicroProfileプラットフォームのリリースで登場する可能性があります。
- ConfigやOpenAPIのような既存コンポーネントのアップデート
- Long Running Actions for MicroProfile
https://github.com/eclipse/microprofile-lra - Microprofile GraphQL Specification
https://github.com/eclipse/microprofile-sandbox/tree/master/proposals/graphql - MicroProfile Context Propagation
https://github.com/eclipse/microprofile-context-propagation - Boost
https://github.com/eclipse/microprofile-sandbox/tree/master/proposals/boost - Reactive Relational Database Access
- Event Data
- Service meshes
Eclipse MicroProfileは、Java開発者がエンタープライズJavaマイクロサービスの開発を可能にするための前進を続けています。開発者、エンドユーザー、デザイナー、あるいはライターの立場でMicroProfileに興味をお持ちであれば、既存の仕様の開発、関連トピックの研究開発の手助け、あるいは革新的な新しいアイデアを扱うためのグループの作成、といった形でコミュニティに参加してください。
MicroProfileの詳細情報はWebサイトをご覧ください。
https://microprofile.io/
MicroProfileコミュニティに参加するには、Forumにどうぞ。
https://groups.google.com/forum/#!forum/microprofile
MicroProfile 3.0の詳細は以下をご覧ください。
https://github.com/eclipse/microprofile/releases/tag/3.0
MicroProfileのロードマップや今後のリリースについては以下をご覧ください。
https://projects.eclipse.org/projects/technology.microprofile