Mises à jour de la version 3 du kit SDK OCI pour Java
Cette rubrique explique certaines modifications clés introduites dans la version 3 du kit SDK Oracle Cloud Infrastructure pour Java.
Cette rubrique explique certaines modifications clés introduites dans la version 3 du kit SDK Oracle Cloud Infrastructure pour Java.
Pour plus d'informations, reportez-vous aux notes sur la version afin de consulter les détails complets et à la rubrique Exemples.
Bibliothèques client HTTP
Aucune bibliothèque client HTTP n'est configurée par défaut. Vous devez choisir explicitement une bibliothèque client HTTP. Le kit SDK OCI pour Java offre les choix suivants concernant les bibliothèques client HTTP :
- Jakarta EE 8/Jersey 2 :
bmc-common-httpclient-jersey - Jakarta EE 9/Jersey 3 :
bmc-common-httpclient-jersey3
Indiquez la bibliothèque client HTTP en déclarant une dépendance à oci-java-sdk-common-httpclient-jersey ou oci-java-sdk-common-httpclient-jersey3. Par exemple :
<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>
Fonctions callback d'appel
Utilisez com.oracle.bmc.http.client.RequestInterceptor au lieu de com.oracle.bmc.util.internal.Consumer<Invocation.Builder> pour inscrire des fonctions callback d'appel. Cette opération sépare l'implémentation du choix du client HTTP.
Configuration client simplifiée
La méthode customizeClient(HttpClientBuilder builder) pour com.oracle.bmc.http.ClientConfigurator a remplacé les méthodes customizeBuilder, customizeClient et customizeRequest. Par exemple :
IdentityClient.builder()
.clientConfigurator(
builder -> {
builder.property(
StandardClientProperties.BUFFER_REQUEST, false);
})
// ...
.build(authenticationDetailsProvider);
Les propriétés pouvant être définies dépendent du client HTTP que vous utilisez. Vous pouvez également définir vos propres propriétés. Pour obtenir la liste complète des propriétés configurables prédéfinies, reportez-vous aux éléments suivants :
| Configuration | Exemple |
|---|---|
| Définition de la mise en mémoire tampon d'une demande |
|
| Définition d'un gestionnaire de connexions Apache |
|
| Définition d'un truststore |
|
| Définition d'un fichier de clés |
|
| Définition du contexte SSL |
|
| Définition d'un proxy |
|
| Définition d'un vérificateur de nom d'hôte |
|
Les exemples de configuration client suivants sont également disponibles :
Modifications relatives au connecteur Apache
Plusieurs modifications ont été apportées afin de séparer l'implémentation du connecteur Apache du choix du client HTTP.
com.oracle.bmc.http.ApacheConfigurator a été remplacé par com.oracle.bmc.http.client.jersey.ApacheClientProperties ou com.oracle.bmc.http.client.jersey3.ApacheClientProperties (pour Jersey 3).
L'exemple suivant concerne les clients qui ne doivent pas mettre en mémoire tampon les demandes :
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);
Pour les clients qui doivent mettre en mémoire tampon les demandes, reportez-vous à l'exemple suivant :
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);
Pour plus d'informations, reportez-vous à DisableNoConnectionReuseStrategyUsingApacheConfiguratorExample.java et à DisableNoConnectionReuseStrategyUsingApacheConfiguratorExample.java (Jersey 3).
Envisagez également d'utiliser com.oracle.bmc.http.client.jersey.apacheconfigurator.ApacheConfigurator du module d'extension oci-java-sdk-addons-apache-configurator-jersey, ou com.oracle.bmc.http.client.jersey3.apacheconfigurator.ApacheConfigurator du module d'extension oci-java-sdk-addons-apache-configurator-jersey3.
Modifications relatives au disjoncteur
L'interface du disjoncteur nommée com.oracle.bmc.circuitbreaker.JaxRsCircuitBreaker a été renommée com.oracle.bmc.circuitbreaker.OciCircuitBreaker.
Au lieu d'utiliser le constructeur de com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration, utilisez le générateur. Le constructeur n'est plus public.
La classe com.oracle.bmc.util.CircuitBreakerUtils ne concerne plus les disjoncteurs, mais uniquement com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration. Par conséquent, le champ DEFAULT_CIRCUIT_BREAKER et la méthode getUserDefinedCircuitBreaker ont été enlevés. Créez un disjoncteur à partir de la configuration par défaut si nécessaire à l'aide des méthodes de construction dans com.oracle.bmc.circuitbreaker.CircuitBreakerFactory.