From dc123ff3949e19383f60e1e02aacd121e2e5398e Mon Sep 17 00:00:00 2001 From: brharrington Date: Tue, 6 Aug 2024 12:38:48 -0500 Subject: [PATCH] aws2: update to use RetryStrategy (#608) The RetryPolicy classes are deprecated. Update to use the newer RetryStrategy ([docs]). [docs]: https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/retry-strategy.html --- .../com/netflix/iep/aws2/AwsClientFactory.java | 17 +++++++---------- .../netflix/iep/aws2/AwsClientFactoryTest.java | 2 +- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/iep-spring-aws2/src/main/java/com/netflix/iep/aws2/AwsClientFactory.java b/iep-spring-aws2/src/main/java/com/netflix/iep/aws2/AwsClientFactory.java index 15e13deb..7f60ed2e 100644 --- a/iep-spring-aws2/src/main/java/com/netflix/iep/aws2/AwsClientFactory.java +++ b/iep-spring-aws2/src/main/java/com/netflix/iep/aws2/AwsClientFactory.java @@ -23,15 +23,14 @@ import software.amazon.awssdk.awscore.client.builder.AwsAsyncClientBuilder; import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder; import software.amazon.awssdk.awscore.client.builder.AwsSyncClientBuilder; +import software.amazon.awssdk.awscore.retry.AwsRetryStrategy; import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption; -import software.amazon.awssdk.core.retry.RetryPolicy; -import software.amazon.awssdk.core.retry.backoff.BackoffStrategy; -import software.amazon.awssdk.core.retry.conditions.RetryCondition; import software.amazon.awssdk.http.SdkHttpConfigurationOption; import software.amazon.awssdk.http.SdkHttpService; import software.amazon.awssdk.http.async.SdkAsyncHttpService; import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.retries.api.RetryStrategy; import software.amazon.awssdk.services.sts.StsClient; import software.amazon.awssdk.services.sts.auth.StsAssumeRoleCredentialsProvider; import software.amazon.awssdk.services.sts.model.AssumeRoleRequest; @@ -94,13 +93,11 @@ private void setIfPresent( private void setRetriesIfPresent(Config cfg, ClientOverrideConfiguration.Builder builder) { if (cfg.hasPath("retry-policy.num-retries")) { - RetryPolicy retryPolicy = RetryPolicy.builder() - .backoffStrategy(BackoffStrategy.defaultStrategy()) - .throttlingBackoffStrategy(BackoffStrategy.defaultThrottlingStrategy()) - .numRetries(cfg.getInt("retry-policy.num-retries")) - .retryCondition(RetryCondition.defaultRetryCondition()) - .build(); - builder.retryPolicy(retryPolicy); + RetryStrategy retryStrategy = AwsRetryStrategy.defaultRetryStrategy() + .toBuilder() + .maxAttempts(cfg.getInt("retry-policy.num-retries") + 1) + .build(); + builder.retryStrategy(retryStrategy); } } diff --git a/iep-spring-aws2/src/test/java/com/netflix/iep/aws2/AwsClientFactoryTest.java b/iep-spring-aws2/src/test/java/com/netflix/iep/aws2/AwsClientFactoryTest.java index 6caa200e..9a12a3c3 100644 --- a/iep-spring-aws2/src/test/java/com/netflix/iep/aws2/AwsClientFactoryTest.java +++ b/iep-spring-aws2/src/test/java/com/netflix/iep/aws2/AwsClientFactoryTest.java @@ -287,7 +287,7 @@ public void settingsTimeout() { ClientOverrideConfiguration settings = factory.createClientConfig(cfg); Assert.assertEquals(Duration.ofMillis(42000), settings.apiCallAttemptTimeout().get()); Assert.assertEquals(Duration.ofMillis(13000), settings.apiCallTimeout().get()); - Assert.assertEquals(Integer.valueOf(5), settings.retryPolicy().get().numRetries()); + Assert.assertEquals(6, settings.retryStrategy().get().maxAttempts()); } @Test