Skip to content

Commit 41a1e64

Browse files
authoredOct 6, 2023
Merge branch 'feature/master/sra-identity-auth' into feature/master/sra-identity-auth-testing
2 parents 0e3d265 + aa3e3ed commit 41a1e64

File tree

51 files changed

+3803
-3833
lines changed

Some content is hidden

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

51 files changed

+3803
-3833
lines changed
 

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

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,11 @@
5353
import software.amazon.awssdk.codegen.poet.model.ServiceClientConfigurationUtils;
5454
import software.amazon.awssdk.codegen.poet.rules.EndpointRulesSpecUtils;
5555
import software.amazon.awssdk.codegen.utils.AuthUtils;
56-
import software.amazon.awssdk.core.SdkServiceClientConfiguration;
56+
import software.amazon.awssdk.core.SdkPlugin;
5757
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
5858
import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
5959
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
6060
import software.amazon.awssdk.core.client.config.SdkClientOption;
61-
import software.amazon.awssdk.core.client.config.internal.ConfigurationUpdater;
6261
import software.amazon.awssdk.core.endpointdiscovery.providers.DefaultEndpointDiscoveryProviderChain;
6362
import software.amazon.awssdk.core.interceptor.ClasspathInterceptorChainFactory;
6463
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
@@ -177,10 +176,9 @@ public TypeSpec poetSpec() {
177176
builder.addMethod(defaultTokenAuthSignerMethod());
178177
}
179178
}
180-
builder.addMethod(defaultConfigUpdaterMethod());
181179
builder.addMethod(setOverridesMethod());
182180
addServiceHttpConfigIfNeeded(builder, model);
183-
181+
builder.addMethod(invokePluginsMethod());
184182
builder.addMethod(validateClientOptionsMethod());
185183

186184

@@ -733,19 +731,23 @@ private MethodSpec authSchemesMethod() {
733731
return builder.build();
734732
}
735733

736-
private MethodSpec defaultConfigUpdaterMethod() {
737-
MethodSpec.Builder builder = MethodSpec.methodBuilder("defaultConfigurationUpdater")
734+
private MethodSpec invokePluginsMethod() {
735+
MethodSpec.Builder builder = MethodSpec.methodBuilder("invokePlugins")
736+
.addAnnotation(Override.class)
738737
.addModifiers(PROTECTED)
739-
.returns(ParameterizedTypeName.get(ConfigurationUpdater.class,
740-
SdkServiceClientConfiguration.Builder.class));
741-
742-
builder.addCode("return (consumer, configBuilder) -> {\n")
743-
.addCode("$>")
744-
.addStatement("$1T.BuilderInternal serviceConfigBuilder = $1T.builder(configBuilder)",
745-
configurationUtils.serviceClientConfigurationBuilderClassName())
746-
.addStatement("consumer.accept(serviceConfigBuilder)")
747-
.addStatement("return serviceConfigBuilder.buildSdkClientConfiguration()")
748-
.addCode("$<};\n");
738+
.addParameter(SdkClientConfiguration.class, "config")
739+
.returns(SdkClientConfiguration.class);
740+
builder.addStatement("$T plugins = plugins()",
741+
ParameterizedTypeName.get(List.class, SdkPlugin.class))
742+
.beginControlFlow("if (plugins.isEmpty())")
743+
.addStatement("return config")
744+
.endControlFlow();
745+
builder.addStatement("$1T.BuilderInternal serviceConfigBuilder = $1T.builder(config.toBuilder())",
746+
configurationUtils.serviceClientConfigurationBuilderClassName());
747+
builder.beginControlFlow("for ($T plugin : plugins)", SdkPlugin.class)
748+
.addStatement("plugin.configureClient(serviceConfigBuilder)")
749+
.endControlFlow();
750+
builder.addStatement("return serviceConfigBuilder.buildSdkClientConfiguration()");
749751
return builder.build();
750752
}
751753

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

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,12 @@
7474
import software.amazon.awssdk.core.RequestOverrideConfiguration;
7575
import software.amazon.awssdk.core.SdkPlugin;
7676
import software.amazon.awssdk.core.SdkRequest;
77-
import software.amazon.awssdk.core.SdkServiceClientConfiguration;
7877
import software.amazon.awssdk.core.async.AsyncResponseTransformer;
7978
import software.amazon.awssdk.core.async.AsyncResponseTransformerUtils;
8079
import software.amazon.awssdk.core.async.SdkPublisher;
8180
import software.amazon.awssdk.core.client.config.SdkAdvancedAsyncClientOption;
8281
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
8382
import software.amazon.awssdk.core.client.config.SdkClientOption;
84-
import software.amazon.awssdk.core.client.config.internal.ConfigurationUpdater;
8583
import software.amazon.awssdk.core.client.handler.AsyncClientHandler;
8684
import software.amazon.awssdk.core.endpointdiscovery.EndpointDiscoveryRefreshCache;
8785
import software.amazon.awssdk.core.endpointdiscovery.EndpointDiscoveryRequest;
@@ -101,7 +99,6 @@ public final class AsyncClientClass extends AsyncClientInterface {
10199
private final ClassName className;
102100
private final ProtocolSpec protocolSpec;
103101
private final ClassName serviceClientConfigurationClassName;
104-
private final ClassName sdkClientConfigurationUtilClassName;
105102
private final ServiceClientConfigurationUtils configurationUtils;
106103
private final boolean useSraAuth;
107104

@@ -112,8 +109,6 @@ public AsyncClientClass(GeneratorTaskParams dependencies) {
112109
this.className = poetExtensions.getClientClass(model.getMetadata().getAsyncClient());
113110
this.protocolSpec = getProtocolSpecs(poetExtensions, model);
114111
this.serviceClientConfigurationClassName = new PoetExtension(model).getServiceConfigClass();
115-
this.sdkClientConfigurationUtilClassName = ClassName.get(model.getMetadata().getFullClientInternalPackageName(),
116-
"SdkClientConfigurationUtil");
117112
this.useSraAuth = new AuthSchemeSpecUtils(model).useSraAuth();
118113
this.configurationUtils = new ServiceClientConfigurationUtils(model);
119114
}
@@ -175,9 +170,7 @@ protected void addAdditionalMethods(TypeSpec.Builder type) {
175170
type.addMethod(isSignerOverriddenOnClientMethod());
176171
}
177172
}
178-
type.addMethod(updateSdkClientConfigurationMethod(
179-
sdkClientConfigurationUtilClassName,
180-
configurationUtils.serviceClientConfigurationBuilderClassName()));
173+
type.addMethod(updateSdkClientConfigurationMethod(configurationUtils.serviceClientConfigurationBuilderClassName()));
181174
protocolSpec.createErrorResponseHandler().ifPresent(type::addMethod);
182175
}
183176

@@ -291,26 +284,26 @@ protected MethodSpec serviceClientConfigMethod() {
291284
}
292285

293286
protected static MethodSpec updateSdkClientConfigurationMethod(
294-
ClassName sdkClientConfigurationUtilClassName,
295287
TypeName serviceClientConfigurationBuilderClassName) {
296288
MethodSpec.Builder builder = MethodSpec.methodBuilder("updateSdkClientConfiguration")
297-
.addModifiers(PROTECTED)
289+
.addModifiers(PRIVATE)
298290
.addParameter(SdkRequest.class, "request")
299291
.addParameter(SdkClientConfiguration.class, "clientConfiguration")
300292
.returns(SdkClientConfiguration.class);
301-
builder.addCode("$T configurationUpdater = ",
302-
ParameterizedTypeName.get(ConfigurationUpdater.class, SdkServiceClientConfiguration.Builder.class));
303-
builder.addCode("(consumer, configBuilder) -> {\n$>")
304-
.addStatement("$1T.BuilderInternal serviceConfigBuilder = $1T.builder(configBuilder)",
305-
serviceClientConfigurationBuilderClassName)
306-
.addStatement("consumer.accept(serviceConfigBuilder)")
307-
.addStatement("return serviceConfigBuilder.buildSdkClientConfiguration()")
308-
.addCode("$<};\n");
293+
294+
309295
builder.addStatement("$T plugins = request.overrideConfiguration()\n"
310296
+ ".map(c -> c.plugins()).orElse(Collections.emptyList())",
311-
ParameterizedTypeName.get(List.class, SdkPlugin.class));
312-
builder.addStatement("return $T.invokePlugins(clientConfiguration, plugins, configurationUpdater)",
313-
sdkClientConfigurationUtilClassName);
297+
ParameterizedTypeName.get(List.class, SdkPlugin.class))
298+
.beginControlFlow("if (plugins.isEmpty())")
299+
.addStatement("return clientConfiguration")
300+
.endControlFlow();
301+
builder.addStatement("$1T.BuilderInternal serviceConfigBuilder = $1T.builder(clientConfiguration.toBuilder())",
302+
serviceClientConfigurationBuilderClassName);
303+
builder.beginControlFlow("for ($T plugin : plugins)", SdkPlugin.class)
304+
.addStatement("plugin.configureClient(serviceConfigBuilder)")
305+
.endControlFlow();
306+
builder.addStatement("return serviceConfigBuilder.buildSdkClientConfiguration()");
314307
return builder.build();
315308
}
316309

0 commit comments

Comments
 (0)