Mises à jour de la version 3 de la trousse SDK OCI pour Java
Cette rubrique décrit certaines des principales modifications introduites dans la version 3 de la trousse SDK Oracle Cloud Infrastructure pour Java.
Cette rubrique décrit certaines des principales modifications introduites dans la version 3 de la trousse SDK Oracle Cloud Infrastructure pour Java.
Pour plus d'informations, reportez-vous aux notes de version et consultez la rubrique Exemples.
Bibliothèques de client HTTP
Aucune bibliothèque de client HTTP n'est configurée par défaut. Vous devez choisir explicitement une bibliothèque de client HTTP. La trousse SDK OCI pour Java offre les choix suivants pour les bibliothèques de client HTTP :
- Jakarta EE 8/Jersey 2 -
bmc-common-httpclient-jersey - Jakarta EE 9/Jersey 3 -
bmc-common-httpclient-jersey3
Spécifiez la bibliothèque de 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>
Rappels d'appel
Au lieu d'utiliser com.oracle.bmc.util.internal.Consumer<Invocation.Builder> pour enregistrer des rappels d'appel, utilisez plutôt com.oracle.bmc.http.client.RequestInterceptor. Cela dissocie la mise en oeuvre du choix du client HTTP.
Configuration de 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, consultez les pages suivantes :
| Configuration | Exemple |
|---|---|
| Définir si une demande doit être mise en mémoire tampon |
|
| Définition d'un gestionnaire de connexions Apache |
|
| Définition d'un magasin de certificats SSL |
|
| Définition d'un magasin de clés |
|
| Définition du contexte SSL |
|
| Définition d'un mandataire |
|
| Définition d'un vérificateur de nom d'hôte |
|
Les exemples de configuration de client suivants sont également disponibles :
Modifications du connecteur Apache
Plusieurs modifications ont été apportées afin de dissocier la mise en oeuvre 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 les demandes en mémoire tampon :
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 devraient mettre les demandes en mémoire tampon, consultez 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, voir DisableNoConnectionReuseStrategyUsingApacheConfiguratorExample.java et DisableNoConnectionReuseStrategyUsingApacheConfiguratorExample.java (Jersey 3).
Envisagez également d'utiliser com.oracle.bmc.http.client.jersey.apacheconfigurator.ApacheConfigurator à partir du module complémentaire oci-java-sdk-addons-apache-configurator-jersey ou com.oracle.bmc.http.client.jersey3.apacheconfigurator.ApacheConfigurator à partir du module complémentaire oci-java-sdk-addons-apache-configurator-jersey3.
Modifications du disjoncteur
L'interface du disjoncteur a été renommée de com.oracle.bmc.circuitbreaker.JaxRsCircuitBreaker en 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 gère plus les disjoncteurs, seulement com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration. Par conséquent, le champ DEFAULT_CIRCUIT_BREAKER et la méthode getUserDefinedCircuitBreaker ont été supprimés. Construisez un nouveau disjoncteur à partir de la configuration par défaut, si nécessaire, à l'aide des méthodes de compilation de com.oracle.bmc.circuitbreaker.CircuitBreakerFactory.