第3章 機能
3.1. 新機能および変更された機能
本項では、本リリースで導入された新機能を説明します。また、既存の機能の変更に関する情報も含まれます。
3.1.1. すべてのタイプのデータをバインドしてより安全になったコンテキストサーバーインターセプター
Eclipse Vert.x 4.0.3 以降、ContextServerInterceptor.bind ()
メソッドはすべてのタイプのデータをコンテキストにバインドします。このメソッドはストレージの詳細を公開しないため、より安全になりました。
Eclipse Vert.x 4.0.3 より前のリリースでは、このメソッドは 'String' データ型のみをコンテキストにバインドしていました。また、ストレージの詳細も公開しました。
更新された ContextServerInterceptor.bind ()
メソッドを使用するには、アプリケーションを更新する必要があります。
以下の例は、Eclipse Vert.x 4.0.3 より前のリリースのコードを示しています。
// Example code from previous releases class X extends ContextServerInterceptor { @Override public void bind(Metadata metadata, ConcurrentMap<String, String> context) {
// Example code from previous releases
class X extends ContextServerInterceptor {
@Override
public void bind(Metadata metadata, ConcurrentMap<String, String> context) {
次の例は、Eclipse Vert.x 4.0.3 リリースの置換コードを示しています。
// Replacing code for Eclipse Vert.x 4.0.3 release class X extends ContextServerInterceptor { @Override public void bind(Metadata metadata) {
// Replacing code for Eclipse Vert.x 4.0.3 release
class X extends ContextServerInterceptor {
@Override
public void bind(Metadata metadata) {
3.1.2. ワイルドカード文字で終わるルートパスの末尾のスラッシュ (/
) の一致が不要
Eclipse Vert.x 4.0.3 より前のリリースでは、ルートがスラッシュで終わるパスとワイルドカード /*
で定義されている場合、一致するリクエストにも末尾のスラッシュ/
が含まれている場合にのみ、ルートが呼び出されました。このルールは、ワイルドカードが空の場合に問題を引き起こしました。
Eclipse Vert.x 4.0.3 以降では、このルールは適用されなくなりました。パスがスラッシュ (/
) で終わるルートを作成できます。ただし、リクエスト URL にスラッシュを指定することは必須ではありません。
また、リクエスト URL を作成および使用し、パスにスラッシュ (/
) ではなく、ワイルドカードで終わるルートを呼び出すこともできます。たとえば、ワイルドカードが含まれるルートは /foo/*
として定義できます。ここでは、ルートはパスの最後にあるオープンワイルドカードと一致する必要があります。リクエスト URL は /foo
にすることができます。
この表は、Eclipse Vert.x 4.0.3 以前のリリースでのリクエスト URL /foo/ *
を送信するときの動作を示しています。Eclipse Vert.x 4.0.3 では終了スラッシュが任意であり、要求はルートに一致することがわかります。
ルート | Eclipse Vert.x 4.0.3 | Eclipse Vert.x 4.0.3 より前のリリース |
---|---|---|
| Match | No Match |
| No Match | No Match |
| Match | Match |
| Match | Match |
3.1.3. サービス検出オプションから autoRegistrationOfImporters
属性を削除
AutoRegistrationOfImporters
属性はサービス検出オプションから削除されました。
3.1.4. 入力クレデンシャルとして token
をサポートするように認証プロバイダークラスの認証メソッドを更新
Eclipse Vert.x 4.0.3 より前のリリースでは、AuthenticationProvider.authenticate () メソッドが入力クレデンシャルとして jwt: someValue
を誤って取得していました。
Eclipse Vert.x 4.0.3 以降、AuthenticationProvider.authenticate() メソッドが更新され、token: someValue
が入力クレデンシャルとして取得されます。この変更により、JSON API と型指定された API の両方が一貫性を保ち、同じ意味で使用できるようになります。
以下のコードは、Eclipse Vert.x 4.0.3 より前のリリースでの認証メソッドの実装を示しています。
new JsonObject().put("jwt", "token...");
new JsonObject().put("jwt", "token...");
以下のコードは、Eclipse Vert.x 4.0.3 リリースの認証メソッドの実装を示しています。
new JsonObject().put("token", "token...");
new JsonObject().put("token", "token...");
3.1.5. PEM キーの Get メソッドが String
ではなく Buffer
を返す
PubSecKeyOptions.getBuffer()
メソッドは、PEM またはシークレットキーバッファーを返します。Eclipse Vert.x 4.0.2 より前のリリースでは、キーバッファーが保存され String
として返されました。ただし、シークレットを Buffer
として保存することを推奨します。Eclipse Vert.x 4.0.2 以降では、メソッドはキーバッファーを保存し、Buffer
として保存し返します。この変更により、シークレットのセキュリティーおよび処理が改善します。
PubSecKeyOptions.setBuffer()
メソッドは String
引数を受け入れます。set メソッドでは、ASCII 以外のシークレット資料を安全に処理するために、バッファーのオーバーロードが追加されました。この変更には、既存のコードを変更する必要はありません。
3.1.6. Kubernetes サービスインポーターが自動的に登録されなくなる
Eclipse Vert.x 4 以降、KubernetesServiceImporter
検出ブリッジは自動的に登録されなくなりました。Maven プロジェクトのクラスパスにブリッジを追加しても、自動的に登録されません。
ServiceDiscovery
インスタンスの作成後にブリッジを手動で登録する必要があります。
3.1.7. 非同期操作に future メソッドを使用
Eclipse Vert.x 4 は、非同期操作に future を使用します。すべての callback メソッドには、対応する future メソッドがあります。
future は非同期操作の作成に使用できます。future を使用する場合は、エラー処理の方が優れています。したがって、アプリケーションでコールバックと future の組み合わせを使用することが推奨されます。
3.1.8. Jackson Databind ライブラリーの依存関係がない
Eclipse Vert.x 4 では、Jackson Databind は任意の Maven 依存関係です。この依存関係を使用する場合は、クラスパスに明示的に追加する必要があります。たとえば、オブジェクトマッピング JSON の場合は、依存関係を明示的に追加する必要があります。
3.1.9. 非推奨と削除の処理
Eclipse Vert.x 4 では、新機能が追加されています。以前の機能および機能は Eclipse Vert.x 4 で非推奨または削除されました。アプリケーションを Eclipse Vert.x 4 に移行する前に、非推奨および削除を確認します。
Java コンパイラーは、非推奨の API が使用されたときに警告を生成します。アプリケーションを Eclipse Vert.x 4 に移行する際に、コンパイラーを使用して非推奨のメソッドを確認できます。
3.1.10. 分散トレースのサポート
Eclipse Vert.x 4 は分散トレースをサポートします。トレースを使用してマイクロサービスを監視し、パフォーマンスの問題を特定することができます。
Eclipse Vert.x 4 は OpenTracing システムと統合します。
以下の Eclipse Vert.x コンポーネントはトレースをログに記録できます。
- HTTP サーバーおよび HTTP クライアント
- Eclipse Vert.x SQL クライアント
- Eclipse Vert.x Kafka クライアント
トレースはテクノロジープレビューとして利用できます。テクノロジープレビュー機能は、Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
テクノロジープレビュー機能のサポート範囲 については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。
3.1.11. EventBus JavaScript Client の新しい公開場所
Eclipse Vert.x 4 では、EventBus JavaScript クライアント vertx-web-client.js
は Maven リポジトリーの Red Hat アーティファクトとして公開されません。
クライアントは npm リポジトリーに公開されます。@vertx/eventbus-bridge-client.js からクライアントにアクセスできます。
3.1.12. OpenShift Maven プラグインを使用した Eclipse Vert.x アプリケーションのデプロイ
OpenShift Maven プラグインを使用して、OpenShift に Eclipse Vert.x アプリケーションをデプロイします。Fabric8 Maven プラグインはサポート対象外になりました。詳細は、「migrating from Fabric8 Maven Plugin to Eclipse JKube」セクションを参照してください。
3.1.13. OpenShift の Eclipse Vert.x メータリングラベル
メータリングラベルを Eclipse Vert.x Pod に追加し、OpenShift Metering Operator で Red Hat サブスクリプションの詳細を確認できます。
メータリングラベルは、Operator がデプロイおよび管理する Pod に追加しないでください。
Eclipse Vert.x は、以下のメータリングラベルを使用する必要があります。
-
com.redhat.component-name: Vert.x
-
com.redhat.component-type: application
-
com.redhat.component-version: 4.0.3
-
com.redhat.product-name: "Red_Hat_Runtimes"
-
com.redhat.product-version: 2021-Q1
詳細は、「メータリング」のドキュメントを参照してください。
ラベルの詳細は、「ノードでラベルを更新する方法について」を参照してください。
3.1.14. OpenJDK 8 および OpenJDK 11 RHEL 8 Universal Base Images (UBI8) のサポート
Eclipse Vert.x は、RHEL 8 上の Red Hat OpenJDK 8 および Red Hat OpenJDK 11 用の OCI 準拠の ユニバーサルベースイメージ を使用して、Eclipse Vert.x アプリケーションをビルドして OpenShift にデプロイするためのサポートを導入します。
RHEL 8 OpenJDK Universal Base イメージは、RHEL 8 OpenJDK ビルダーイメージを置き換えます。RHEL 8 OpenJDK ベースイメージは、Eclipse Vert.x との使用がサポートされなくなりました。