Skip to content

Commit 5dfcfd8

Browse files
committed
Revert " Fix a bug that prevents a retry strategy override to get used (#5300)"
This reverts commit 0b85357.
1 parent 0b85357 commit 5dfcfd8

File tree

52 files changed

+3707
-5293
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+3707
-5293
lines changed

.changes/next-release/bugfix-AWSSDKforJavav2-5a6324d.json

Lines changed: 0 additions & 6 deletions
This file was deleted.

codegen/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,6 @@
9797
<artifactId>http-auth-aws</artifactId>
9898
<version>${awsjavasdk.version}</version>
9999
</dependency>
100-
<dependency>
101-
<groupId>software.amazon.awssdk</groupId>
102-
<artifactId>retries-spi</artifactId>
103-
<version>${awsjavasdk.version}</version>
104-
</dependency>
105100
<dependency>
106101
<groupId>software.amazon.awssdk</groupId>
107102
<artifactId>arns</artifactId>

codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252
import software.amazon.awssdk.codegen.poet.PoetUtils;
5353
import software.amazon.awssdk.codegen.poet.auth.scheme.AuthSchemeSpecUtils;
5454
import software.amazon.awssdk.codegen.poet.auth.scheme.ModelAuthSchemeClassesKnowledgeIndex;
55-
import software.amazon.awssdk.codegen.poet.client.ClientClassUtils;
5655
import software.amazon.awssdk.codegen.poet.model.ServiceClientConfigurationUtils;
5756
import software.amazon.awssdk.codegen.poet.rules.EndpointParamsKnowledgeIndex;
5857
import software.amazon.awssdk.codegen.poet.rules.EndpointRulesSpecUtils;
@@ -181,7 +180,6 @@ public TypeSpec poetSpec() {
181180
}
182181
addServiceHttpConfigIfNeeded(builder, model);
183182
builder.addMethod(invokePluginsMethod());
184-
builder.addMethod(ClientClassUtils.updateRetryStrategyClientConfigurationMethod());
185183
builder.addMethod(internalPluginsMethod());
186184

187185
endpointParamsKnowledgeIndex.resolveAccountIdEndpointModeMethod().ifPresent(builder::addMethod);
@@ -785,7 +783,6 @@ private MethodSpec invokePluginsMethod() {
785783
.beginControlFlow("for ($T plugin : plugins)", SdkPlugin.class)
786784
.addStatement("plugin.configureClient(serviceConfigBuilder)")
787785
.endControlFlow()
788-
.addStatement("updateRetryStrategyClientConfiguration(configuration)")
789786
.addStatement("return configuration.build()");
790787
return builder.build();
791788
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ protected void addAdditionalMethods(TypeSpec.Builder type) {
173173
type.addMethod(isSignerOverriddenOnClientMethod());
174174
}
175175
}
176-
type.addMethod(ClientClassUtils.updateRetryStrategyClientConfigurationMethod());
177176
type.addMethod(updateSdkClientConfigurationMethod(configurationUtils.serviceClientConfigurationBuilderClassName()));
178177
protocolSpec.createErrorResponseHandler().ifPresent(type::addMethod);
179178
}
@@ -314,9 +313,8 @@ protected static MethodSpec updateSdkClientConfigurationMethod(
314313
.addStatement("$1T serviceConfigBuilder = new $1T(configuration)", serviceClientConfigurationBuilderClassName)
315314
.beginControlFlow("for ($T plugin : plugins)", SdkPlugin.class)
316315
.addStatement("plugin.configureClient(serviceConfigBuilder)")
317-
.endControlFlow();
318-
builder.addStatement("updateRetryStrategyClientConfiguration(configuration)");
319-
builder.addStatement("return configuration.build()");
316+
.endControlFlow()
317+
.addStatement("return configuration.build()");
320318

321319
return builder.build();
322320
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/ClientClassUtils.java

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import software.amazon.awssdk.arns.Arn;
3333
import software.amazon.awssdk.auth.signer.EventStreamAws4Signer;
3434
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
35-
import software.amazon.awssdk.awscore.retry.AwsRetryStrategy;
3635
import software.amazon.awssdk.codegen.model.config.customization.S3ArnableFieldConfig;
3736
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
3837
import software.amazon.awssdk.codegen.model.intermediate.MemberModel;
@@ -41,17 +40,12 @@
4140
import software.amazon.awssdk.codegen.model.service.HostPrefixProcessor;
4241
import software.amazon.awssdk.codegen.poet.PoetExtension;
4342
import software.amazon.awssdk.codegen.poet.PoetUtils;
44-
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
45-
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
46-
import software.amazon.awssdk.core.client.config.SdkClientOption;
47-
import software.amazon.awssdk.core.retry.RetryMode;
4843
import software.amazon.awssdk.core.signer.Signer;
49-
import software.amazon.awssdk.retries.api.RetryStrategy;
5044
import software.amazon.awssdk.utils.HostnameValidator;
5145
import software.amazon.awssdk.utils.StringUtils;
5246
import software.amazon.awssdk.utils.Validate;
5347

54-
public final class ClientClassUtils {
48+
final class ClientClassUtils {
5549

5650
private ClientClassUtils() {
5751
}
@@ -249,32 +243,4 @@ private static String inputShapeMemberGetter(OperationModel opModel, String c2jN
249243
return opModel.getInput().getVariableName() + "." +
250244
opModel.getInputShape().getMemberByC2jName(c2jName).getFluentGetterMethodName() + "()";
251245
}
252-
253-
public static MethodSpec updateRetryStrategyClientConfigurationMethod() {
254-
MethodSpec.Builder builder = MethodSpec.methodBuilder("updateRetryStrategyClientConfiguration")
255-
.addModifiers(Modifier.PRIVATE)
256-
.addParameter(SdkClientConfiguration.Builder.class, "configuration");
257-
builder.addStatement("$T builder = configuration.asOverrideConfigurationBuilder()",
258-
ClientOverrideConfiguration.Builder.class);
259-
builder.addStatement("$T retryMode = builder.retryMode()", RetryMode.class);
260-
builder.beginControlFlow("if (retryMode != null)")
261-
.addStatement("configuration.option($T.RETRY_STRATEGY, $T.forRetryMode(retryMode))", SdkClientOption.class,
262-
AwsRetryStrategy.class)
263-
.addStatement("return")
264-
.endControlFlow();
265-
builder.addStatement("$T<$T<?, ?>> configurator = builder.retryStrategyConfigurator()", Consumer.class,
266-
RetryStrategy.Builder.class);
267-
builder.beginControlFlow("if (configurator != null)")
268-
.addStatement("$T<?, ?> defaultBuilder = $T.defaultRetryStrategy().toBuilder()", RetryStrategy.Builder.class,
269-
AwsRetryStrategy.class)
270-
.addStatement("configurator.accept(defaultBuilder)")
271-
.addStatement("configuration.option($T.RETRY_STRATEGY, defaultBuilder.build())", SdkClientOption.class)
272-
.addStatement("return")
273-
.endControlFlow();
274-
builder.addStatement("$T retryStrategy = builder.retryStrategy()", RetryStrategy.class);
275-
builder.beginControlFlow("if (retryStrategy != null)")
276-
.addStatement("configuration.option($T.RETRY_STRATEGY, retryStrategy)", SdkClientOption.class)
277-
.endControlFlow();
278-
return builder.build();
279-
}
280246
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/SyncClientClass.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@ protected void addAdditionalMethods(TypeSpec.Builder type) {
152152
.addMethod(resolveMetricPublishersMethod());
153153

154154
protocolSpec.createErrorResponseHandler().ifPresent(type::addMethod);
155-
type.addMethod(ClientClassUtils.updateRetryStrategyClientConfigurationMethod());
156155
type.addMethod(updateSdkClientConfigurationMethod(configurationUtils.serviceClientConfigurationBuilderClassName()));
157156
type.addMethod(protocolSpec.initProtocolFactory(model));
158157
}
@@ -479,7 +478,6 @@ protected MethodSpec updateSdkClientConfigurationMethod(
479478

480479
if (model.getCustomizationConfig() == null ||
481480
CollectionUtils.isNullOrEmpty(model.getCustomizationConfig().getCustomClientContextParams())) {
482-
builder.addStatement("updateRetryStrategyClientConfiguration(configuration)");
483481
builder.addStatement("return configuration.build()");
484482
return builder.build();
485483
}
@@ -501,7 +499,7 @@ protected MethodSpec updateSdkClientConfigurationMethod(
501499
Validate.class, Objects.class, endpointRulesSpecUtils.clientContextParamsName(), keyName,
502500
keyName + " cannot be modified by request level plugins");
503501
});
504-
builder.addStatement("updateRetryStrategyClientConfiguration(configuration)");
502+
505503
builder.addStatement("return configuration.build()");
506504
return builder.build();
507505
}

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-bearer-auth-client-builder-class.java

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,23 @@
55
import java.util.HashMap;
66
import java.util.List;
77
import java.util.Map;
8-
import java.util.function.Consumer;
98
import software.amazon.awssdk.annotations.Generated;
109
import software.amazon.awssdk.annotations.SdkInternalApi;
1110
import software.amazon.awssdk.auth.credentials.TokenUtils;
1211
import software.amazon.awssdk.auth.token.credentials.aws.DefaultAwsTokenProvider;
1312
import software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder;
1413
import software.amazon.awssdk.awscore.client.config.AwsClientOption;
15-
import software.amazon.awssdk.awscore.retry.AwsRetryStrategy;
1614
import software.amazon.awssdk.core.SdkPlugin;
17-
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
1815
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
1916
import software.amazon.awssdk.core.client.config.SdkClientOption;
2017
import software.amazon.awssdk.core.interceptor.ClasspathInterceptorChainFactory;
2118
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
22-
import software.amazon.awssdk.core.retry.RetryMode;
2319
import software.amazon.awssdk.http.auth.scheme.BearerAuthScheme;
2420
import software.amazon.awssdk.http.auth.scheme.NoAuthAuthScheme;
2521
import software.amazon.awssdk.http.auth.spi.scheme.AuthScheme;
2622
import software.amazon.awssdk.identity.spi.IdentityProvider;
2723
import software.amazon.awssdk.identity.spi.IdentityProviders;
2824
import software.amazon.awssdk.identity.spi.TokenIdentity;
29-
import software.amazon.awssdk.retries.api.RetryStrategy;
3025
import software.amazon.awssdk.services.json.auth.scheme.JsonAuthSchemeProvider;
3126
import software.amazon.awssdk.services.json.auth.scheme.internal.JsonAuthSchemeInterceptor;
3227
import software.amazon.awssdk.services.json.endpoints.JsonEndpointProvider;
@@ -57,13 +52,13 @@ protected final String serviceName() {
5752
@Override
5853
protected final SdkClientConfiguration mergeServiceDefaults(SdkClientConfiguration config) {
5954
return config.merge(c -> c
60-
.option(SdkClientOption.ENDPOINT_PROVIDER, defaultEndpointProvider())
61-
.option(SdkClientOption.AUTH_SCHEME_PROVIDER, defaultAuthSchemeProvider())
62-
.option(SdkClientOption.AUTH_SCHEMES, authSchemes())
63-
.option(SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false)
64-
.lazyOption(AwsClientOption.TOKEN_PROVIDER,
55+
.option(SdkClientOption.ENDPOINT_PROVIDER, defaultEndpointProvider())
56+
.option(SdkClientOption.AUTH_SCHEME_PROVIDER, defaultAuthSchemeProvider())
57+
.option(SdkClientOption.AUTH_SCHEMES, authSchemes())
58+
.option(SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false)
59+
.lazyOption(AwsClientOption.TOKEN_PROVIDER,
6560
p -> TokenUtils.toSdkTokenProvider(p.get(AwsClientOption.TOKEN_IDENTITY_PROVIDER)))
66-
.option(AwsClientOption.TOKEN_IDENTITY_PROVIDER, defaultTokenProvider()));
61+
.option(AwsClientOption.TOKEN_IDENTITY_PROVIDER, defaultTokenProvider()));
6762
}
6863

6964
@Override
@@ -74,7 +69,7 @@ protected final SdkClientConfiguration finalizeServiceConfiguration(SdkClientCon
7469
endpointInterceptors.add(new JsonRequestSetEndpointInterceptor());
7570
ClasspathInterceptorChainFactory interceptorFactory = new ClasspathInterceptorChainFactory();
7671
List<ExecutionInterceptor> interceptors = interceptorFactory
77-
.getInterceptors("software/amazon/awssdk/services/json/execution.interceptors");
72+
.getInterceptors("software/amazon/awssdk/services/json/execution.interceptors");
7873
List<ExecutionInterceptor> additionalInterceptors = new ArrayList<>();
7974
interceptors = CollectionUtils.mergeLists(endpointInterceptors, interceptors);
8075
interceptors = CollectionUtils.mergeLists(interceptors, additionalInterceptors);
@@ -143,36 +138,15 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
143138
for (SdkPlugin plugin : plugins) {
144139
plugin.configureClient(serviceConfigBuilder);
145140
}
146-
updateRetryStrategyClientConfiguration(configuration);
147141
return configuration.build();
148142
}
149143

150-
private void updateRetryStrategyClientConfiguration(SdkClientConfiguration.Builder configuration) {
151-
ClientOverrideConfiguration.Builder builder = configuration.asOverrideConfigurationBuilder();
152-
RetryMode retryMode = builder.retryMode();
153-
if (retryMode != null) {
154-
configuration.option(SdkClientOption.RETRY_STRATEGY, AwsRetryStrategy.forRetryMode(retryMode));
155-
return;
156-
}
157-
Consumer<RetryStrategy.Builder<?, ?>> configurator = builder.retryStrategyConfigurator();
158-
if (configurator != null) {
159-
RetryStrategy.Builder<?, ?> defaultBuilder = AwsRetryStrategy.defaultRetryStrategy().toBuilder();
160-
configurator.accept(defaultBuilder);
161-
configuration.option(SdkClientOption.RETRY_STRATEGY, defaultBuilder.build());
162-
return;
163-
}
164-
RetryStrategy retryStrategy = builder.retryStrategy();
165-
if (retryStrategy != null) {
166-
configuration.option(SdkClientOption.RETRY_STRATEGY, retryStrategy);
167-
}
168-
}
169-
170144
private List<SdkPlugin> internalPlugins(SdkClientConfiguration config) {
171145
return Collections.emptyList();
172146
}
173147

174148
protected static void validateClientOptions(SdkClientConfiguration c) {
175149
Validate.notNull(c.option(AwsClientOption.TOKEN_IDENTITY_PROVIDER),
176-
"The 'tokenProvider' must be configured in the client builder.");
150+
"The 'tokenProvider' must be configured in the client builder.");
177151
}
178152
}

0 commit comments

Comments
 (0)