OCI SDK for Javaのバージョン3の更新
このトピックでは、Oracle Cloud Infrastructure SDK for Javaのバージョン3で導入された主要な変更の一部について説明します。
このトピックでは、Oracle Cloud Infrastructure SDK for Javaのバージョン3で導入された主要な変更の一部について説明します。
HTTPクライアント・ライブラリ
HTTPクライアント・ライブラリは、デフォルトでは構成されていません。HTTPクライアント・ライブラリを明示的に選択する必要があります。OCI SDK for Javaでは、HTTPクライアント・ライブラリに対して次の選択肢があります:
- Jakarta EE 8/Jersey 2 -
bmc-common-httpclient-jersey
- Jakarta EE 9/Jersey 3 -
bmc-common-httpclient-jersey3
oci-java-sdk-common-httpclient-jersey
またはoci-java-sdk-common-httpclient-jersey3
に対する依存関係を宣言して、HTTPクライアント・ライブラリを指定します。例:
<dependency>
<!-- Since this is the "application" pom.xml, we do want to
choose the httpclient to use. -->
<groupId>com.oracle.oci.sdk</groupId>
<artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
</dependency>
呼出しコールバック
com.oracle.bmc.util.internal.Consumer<Invocation.Builder>
を使用して呼出しコールバックを登録するかわりに、com.oracle.bmc.http.client.RequestInterceptor
を使用します。これにより、実装がHTTPクライアントの選択から分離されます。
簡易クライアント構成
com.oracle.bmc.http.ClientConfigurator
のcustomizeClient(HttpClientBuilder builder)
メソッドによって、customizeBuilder
、customizeClient
およびcustomizeRequest
メソッドは置き換えられました。例:
IdentityClient.builder()
.clientConfigurator(
builder -> {
builder.property(
StandardClientProperties.BUFFER_REQUEST, false);
})
// ...
.build(authenticationDetailsProvider);
設定できるプロパティは、使用しているHTTPクライアントによって異なります。独自のプロパティを定義することもできます。事前定義済の設定可能なプロパティの包括的なリストは、次を参照してください:
構成 | 例 |
---|---|
リクエストをバッファするかどうかの設定 |
|
Apache接続マネージャの設定 |
|
トラスト・ストアの設定 |
|
キー・ストアの設定 |
|
SSLコンテキストの設定 |
|
プロキシの設定 |
|
ホスト名検証の設定 |
|
次のクライアント構成例も使用できます:
Apacheコネクタの変更
Apacheコネクタの実装をHTTPクライアントの選択から分離するために、いくつかの変更が行われました。
com.oracle.bmc.http.ApacheConfigurator
は、com.oracle.bmc.http.client.jersey.ApacheClientProperties
またはcom.oracle.bmc.http.client.jersey3.ApacheClientProperties
(Jersey 3の場合)によって置き換えられました。
次の例は、リクエストをメモリーにバッファしないクライアント用です:
ObjectStorageClient nonBufferingObjectStorageClient = ObjectStorageClient
.builder()
.clientConfigurator(builder -> {
builder.property(StandardClientProperties.BUFFER_REQUEST, false);
builder.property(ApacheClientProperties.RETRY_HANDLER, null);
builder.property(ApacheClientProperties.REUSE_STRATEGY, null);
})
.region(Region.US_PHOENIX_1)
.build(provider);
要求をメモリーにバッファする必要があるクライアントの場合は、次の例を参照してください:
IdentityClient bufferingIdentityClient = IdentityClient
.builder()
.clientConfigurator(builder -> {
builder.property(StandardClientProperties.BUFFER_REQUEST, true);
builder.property(ApacheClientProperties.RETRY_HANDLER, null);
builder.property(ApacheClientProperties.REUSE_STRATEGY, null);
})
.region(Region.US_PHOENIX_1)
.build(provider);
詳細は、DisableNoConnectionReuseStrategyUsingApacheConfiguratorExample.javaおよびDisableNoConnectionReuseStrategyUsingApacheConfiguratorExample.java (Jersey 3)を参照してください。
oci-java-sdk-addons-apache-configurator-jersey
アドオン・モジュールのcom.oracle.bmc.http.client.jersey.apacheconfigurator.ApacheConfigurator
またはoci-java-sdk-addons-apache-configurator-jersey3
アドオン・モジュールのcom.oracle.bmc.http.client.jersey3.apacheconfigurator.ApacheConfigurator
を使用することも検討してください。
サーキット・ブレーカの変更
サーキット・ブレーカ・インタフェースの名前がcom.oracle.bmc.circuitbreaker.JaxRsCircuitBreaker
からcom.oracle.bmc.circuitbreaker.OciCircuitBreaker
に変更されました。
com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration
のコンストラクタを使用するかわりに、ビルダーを使用します。コンストラクタはパブリックではなくなりました。
com.oracle.bmc.util.CircuitBreakerUtils
クラスは、com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration
のみでサーキット・ブレーカを処理しなくなりました。そのため、DEFAULT_CIRCUIT_BREAKER
フィールドとgetUserDefinedCircuitBreaker
メソッドは削除されました。必要に応じて、com.oracle.bmc.circuitbreaker.CircuitBreakerFactory
のビルド・メソッドを使用して、デフォルト構成から新しいサーキット・ブレーカを構築します。