Atualizações na Versão 3 do OCI SDK para Java
Este tópico explica algumas das principais alterações introduzidas na versão 3 do Oracle Cloud Infrastructure SDK para Java.
Este tópico explica algumas das principais alterações introduzidas na versão 3 do Oracle Cloud Infrastructure SDK para Java.
Consulte as notas da release para obter detalhes completos e consulte o tópico Exemplos para obter mais informações.
Bibliotecas de Cliente HTTP
Nenhuma biblioteca de cliente HTTP está configurada por padrão. Você deve escolher explicitamente uma biblioteca de cliente HTTP. O OCI SDK para Java oferece as seguintes opções para bibliotecas cliente HTTP:
- Jakarta EE 8/Jersey 2 -
bmc-common-httpclient-jersey - Jakarta EE 9/Jersey 3 -
bmc-common-httpclient-jersey3
Especifique a biblioteca de cliente HTTP declarando uma dependência em oci-java-sdk-common-httpclient-jersey ou oci-java-sdk-common-httpclient-jersey3. Por exemplo:
<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>
Callbacks de chamada
Em vez de usar com.oracle.bmc.util.internal.Consumer<Invocation.Builder> para registrar callbacks de chamada, use com.oracle.bmc.http.client.RequestInterceptor. A implementação da opção do cliente HTTP é desassociada.
Configuração Simplificada do Cliente
O método customizeClient(HttpClientBuilder builder) para com.oracle.bmc.http.ClientConfigurator substituiu os métodos customizeBuilder, customizeClient e customizeRequest. Por exemplo:
IdentityClient.builder()
.clientConfigurator(
builder -> {
builder.property(
StandardClientProperties.BUFFER_REQUEST, false);
})
// ...
.build(authenticationDetailsProvider);
As propriedades que podem ser definidas dependem do cliente HTTP que você está usando. Você também pode definir suas próprias propriedades. Para obter uma lista abrangente de propriedades definíveis predefinidas, consulte o seguinte:
| Configuração | Exemplo |
|---|---|
| Definindo se uma solicitação deve ser armazenada em buffer |
|
| Definindo um gerenciador de conexões Apache |
|
| Definindo um armazenamento confiável |
|
| Definindo um armazenamento de chaves |
|
| Definindo o contexto SSL |
|
| Definindo um proxy |
|
| Definindo um verificador de nome de host |
|
Os seguintes exemplos de configuração de cliente também estão disponíveis:
Alterações no Apache Connector
Várias alterações foram feitas para separar a implementação do Apache Connector da escolha do cliente HTTP.
com.oracle.bmc.http.ApacheConfigurator foi substituído por com.oracle.bmc.http.client.jersey.ApacheClientProperties ou com.oracle.bmc.http.client.jersey3.ApacheClientProperties (para Jersey 3).
O exemplo a seguir é para clientes que não devem armazenar em buffer solicitações na memória:
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);
Para os clientes que as devem armazenar solicitações na memória em buffer, consulte o seguinte exemplo:
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);
Consulte DisableNoConnectionReuseStrategyUsingApacheConfiguratorExample.java e DisableNoConnectionReuseStrategyUsingApacheConfiguratorExample.java (Jersey 3) para obter mais informações.
Considere também o uso de com.oracle.bmc.http.client.jersey.apacheconfigurator.ApacheConfigurator do módulo de complemento oci-java-sdk-addons-apache-configurator-jersey ou com.oracle.bmc.http.client.jersey3.apacheconfigurator.ApacheConfigurator do módulo de complemento oci-java-sdk-addons-apache-configurator-jersey3.
Alterações do Disjuntor
A interface do disjuntor foi renomeada de com.oracle.bmc.circuitbreaker.JaxRsCircuitBreaker para com.oracle.bmc.circuitbreaker.OciCircuitBreaker.
Em vez de usar o construtor com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration, use o builder. O construtor não é mais público.
A classe com.oracle.bmc.util.CircuitBreakerUtils não lida mais com disjuntores, apenas com com.oracle.bmc.circuitbreaker.CircuitBreakerConfiguration. Portanto, o campo DEFAULT_CIRCUIT_BREAKER e o método getUserDefinedCircuitBreaker foram removidos. Construa um novo disjuntor com base na configuração padrão, se necessário, usando os métodos de criação em com.oracle.bmc.circuitbreaker.CircuitBreakerFactory.