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のビルド・メソッドを使用して、デフォルト構成から新しいサーキット・ブレーカを構築します。