74
74
import software .amazon .awssdk .core .RequestOverrideConfiguration ;
75
75
import software .amazon .awssdk .core .SdkPlugin ;
76
76
import software .amazon .awssdk .core .SdkRequest ;
77
- import software .amazon .awssdk .core .SdkServiceClientConfiguration ;
78
77
import software .amazon .awssdk .core .async .AsyncResponseTransformer ;
79
78
import software .amazon .awssdk .core .async .AsyncResponseTransformerUtils ;
80
79
import software .amazon .awssdk .core .async .SdkPublisher ;
81
80
import software .amazon .awssdk .core .client .config .SdkAdvancedAsyncClientOption ;
82
81
import software .amazon .awssdk .core .client .config .SdkClientConfiguration ;
83
82
import software .amazon .awssdk .core .client .config .SdkClientOption ;
84
- import software .amazon .awssdk .core .client .config .internal .ConfigurationUpdater ;
85
83
import software .amazon .awssdk .core .client .handler .AsyncClientHandler ;
86
84
import software .amazon .awssdk .core .endpointdiscovery .EndpointDiscoveryRefreshCache ;
87
85
import software .amazon .awssdk .core .endpointdiscovery .EndpointDiscoveryRequest ;
@@ -101,7 +99,6 @@ public final class AsyncClientClass extends AsyncClientInterface {
101
99
private final ClassName className ;
102
100
private final ProtocolSpec protocolSpec ;
103
101
private final ClassName serviceClientConfigurationClassName ;
104
- private final ClassName sdkClientConfigurationUtilClassName ;
105
102
private final ServiceClientConfigurationUtils configurationUtils ;
106
103
private final boolean useSraAuth ;
107
104
@@ -112,8 +109,6 @@ public AsyncClientClass(GeneratorTaskParams dependencies) {
112
109
this .className = poetExtensions .getClientClass (model .getMetadata ().getAsyncClient ());
113
110
this .protocolSpec = getProtocolSpecs (poetExtensions , model );
114
111
this .serviceClientConfigurationClassName = new PoetExtension (model ).getServiceConfigClass ();
115
- this .sdkClientConfigurationUtilClassName = ClassName .get (model .getMetadata ().getFullClientInternalPackageName (),
116
- "SdkClientConfigurationUtil" );
117
112
this .useSraAuth = new AuthSchemeSpecUtils (model ).useSraAuth ();
118
113
this .configurationUtils = new ServiceClientConfigurationUtils (model );
119
114
}
@@ -175,9 +170,7 @@ protected void addAdditionalMethods(TypeSpec.Builder type) {
175
170
type .addMethod (isSignerOverriddenOnClientMethod ());
176
171
}
177
172
}
178
- type .addMethod (updateSdkClientConfigurationMethod (
179
- sdkClientConfigurationUtilClassName ,
180
- configurationUtils .serviceClientConfigurationBuilderClassName ()));
173
+ type .addMethod (updateSdkClientConfigurationMethod (configurationUtils .serviceClientConfigurationBuilderClassName ()));
181
174
protocolSpec .createErrorResponseHandler ().ifPresent (type ::addMethod );
182
175
}
183
176
@@ -291,26 +284,26 @@ protected MethodSpec serviceClientConfigMethod() {
291
284
}
292
285
293
286
protected static MethodSpec updateSdkClientConfigurationMethod (
294
- ClassName sdkClientConfigurationUtilClassName ,
295
287
TypeName serviceClientConfigurationBuilderClassName ) {
296
288
MethodSpec .Builder builder = MethodSpec .methodBuilder ("updateSdkClientConfiguration" )
297
- .addModifiers (PROTECTED )
289
+ .addModifiers (PRIVATE )
298
290
.addParameter (SdkRequest .class , "request" )
299
291
.addParameter (SdkClientConfiguration .class , "clientConfiguration" )
300
292
.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
+
309
295
builder .addStatement ("$T plugins = request.overrideConfiguration()\n "
310
296
+ ".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()" );
314
307
return builder .build ();
315
308
}
316
309
0 commit comments