createTasks() throws Exception {
private static String loadConfigUtilCode() {
try {
InputStream is = SdkClientConfigurationUtilGeneratorTask.class.getResourceAsStream(
- "/software/amazon/awssdk/codegen/poet/model/SdkClientConfigurationUtil.java.resource");
+ "/software/amazon/awssdk/codegen/poet/model/SdkClientConfigurationUtil.resource.java");
return IoUtils.toUtf8String(is);
} catch (IOException ioe) {
throw new UncheckedIOException(ioe);
diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ServiceClientConfigurationUtils.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ServiceClientConfigurationUtils.java
index fc0719857795..6e2d33f15ae5 100644
--- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ServiceClientConfigurationUtils.java
+++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ServiceClientConfigurationUtils.java
@@ -102,15 +102,6 @@ private Field overrideConfigurationField() {
.doc("client override configuration")
.definingClass(SdkServiceClientConfiguration.class);
- builder.constructFromConfiguration(
- CodeBlock.builder()
- .addStatement("this.overrideConfiguration = $T.copyConfigurationToOverrides("
- + "$T.builder(), internalBuilder).build()",
- sdkClientConfigurationUtilClassName,
- ClientOverrideConfiguration.class)
- .build()
- );
-
builder.copyToConfiguration(
CodeBlock.builder()
.beginControlFlow("if (overrideConfiguration != null)")
diff --git a/codegen/src/main/resources/software/amazon/awssdk/codegen/poet/model/SdkClientConfigurationUtil.java.resource b/codegen/src/main/resources/software/amazon/awssdk/codegen/poet/model/SdkClientConfigurationUtil.java.resource
deleted file mode 100644
index f28dfe5feae8..000000000000
--- a/codegen/src/main/resources/software/amazon/awssdk/codegen/poet/model/SdkClientConfigurationUtil.java.resource
+++ /dev/null
@@ -1,132 +0,0 @@
-
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.Supplier;
-import software.amazon.awssdk.annotations.SdkInternalApi;
-import software.amazon.awssdk.core.SdkPlugin;
-import software.amazon.awssdk.core.SdkServiceClientConfiguration;
-import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
-import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
-import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
-import software.amazon.awssdk.core.client.config.SdkClientOption;
-import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
-import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
-import software.amazon.awssdk.core.internal.SdkInternalTestAdvancedClientOption;
-import software.amazon.awssdk.core.signer.Signer;
-import software.amazon.awssdk.metrics.MetricPublisher;
-import software.amazon.awssdk.profiles.ProfileFileSupplier;
-
-@SdkInternalApi
-public final class SdkClientConfigurationUtil {
- private SdkClientConfigurationUtil() {
- }
-
- /**
- * Copies the {@link ClientOverrideConfiguration} values to the configuration builder.
- */
- public static SdkClientConfiguration.Builder copyOverridesToConfiguration(
- ClientOverrideConfiguration overrides,
- SdkClientConfiguration.Builder builder
- ) {
-
- // misc
- builder.option(SdkClientOption.ADDITIONAL_HTTP_HEADERS, overrides.headers());
- builder.option(SdkClientOption.RETRY_POLICY, overrides.retryPolicy().orElse(null));
- builder.option(SdkClientOption.API_CALL_TIMEOUT, overrides.apiCallTimeout().orElse(null));
- builder.option(SdkClientOption.API_CALL_ATTEMPT_TIMEOUT, overrides.apiCallAttemptTimeout().orElse(null));
- builder.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE, overrides.scheduledExecutorService().orElse(null));
- builder.option(SdkClientOption.EXECUTION_INTERCEPTORS, overrides.executionInterceptors());
- builder.option(SdkClientOption.EXECUTION_ATTRIBUTES, overrides.executionAttributes());
-
- // advanced option
- Signer signer = overrides.advancedOption(SdkAdvancedClientOption.SIGNER).orElse(null);
- if (signer != null) {
- builder.option(SdkAdvancedClientOption.SIGNER, signer);
- builder.option(SdkClientOption.SIGNER_OVERRIDDEN, true);
- }
- builder.option(SdkAdvancedClientOption.USER_AGENT_SUFFIX,
- overrides.advancedOption(SdkAdvancedClientOption.USER_AGENT_SUFFIX).orElse(null));
- builder.option(SdkAdvancedClientOption.USER_AGENT_PREFIX,
- overrides.advancedOption(SdkAdvancedClientOption.USER_AGENT_PREFIX).orElse(null));
- builder.option(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION,
- overrides.advancedOption(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION).orElse(null));
- overrides.advancedOption(SdkInternalTestAdvancedClientOption.ENDPOINT_OVERRIDDEN_OVERRIDE).ifPresent(value -> {
- builder.option(SdkClientOption.ENDPOINT_OVERRIDDEN, value);
- });
-
- // profile
- builder.option(SdkClientOption.PROFILE_FILE_SUPPLIER, overrides.defaultProfileFile()
- .map(ProfileFileSupplier::fixedProfileFile)
- .orElse(null));
- builder.option(SdkClientOption.PROFILE_NAME, overrides.defaultProfileName().orElse(null));
-
- // misc
- builder.option(SdkClientOption.METRIC_PUBLISHERS, overrides.metricPublishers());
- builder.option(SdkAdvancedClientOption.TOKEN_SIGNER,
- overrides.advancedOption(SdkAdvancedClientOption.TOKEN_SIGNER).orElse(null));
- builder.option(SdkClientOption.COMPRESSION_CONFIGURATION, overrides.compressionConfiguration().orElse(null));
-
- return builder;
- }
-
- /**
- * Copies the {@link SdkClientConfiguration} values to the {@link ClientOverrideConfiguration.Builder} builder
- *
- * NOTE make sure to mirror the properties in the method above or create a new abstraction to avoid this coupling.
- */
- public static ClientOverrideConfiguration.Builder copyConfigurationToOverrides(
- ClientOverrideConfiguration.Builder clientOverrides,
- SdkClientConfiguration.Builder clientConfiguration
- ) {
- // misc
- Map> additionalHeaders = clientConfiguration.option(SdkClientOption.ADDITIONAL_HTTP_HEADERS);
- if (additionalHeaders != null) {
- clientOverrides.headers(additionalHeaders);
- }
- clientOverrides.retryPolicy(clientConfiguration.option(SdkClientOption.RETRY_POLICY));
- clientOverrides.apiCallTimeout(clientConfiguration.option(SdkClientOption.API_CALL_TIMEOUT));
- clientOverrides.apiCallAttemptTimeout(clientConfiguration.option(SdkClientOption.API_CALL_ATTEMPT_TIMEOUT));
- clientOverrides.scheduledExecutorService(clientConfiguration.option(SdkClientOption.SCHEDULED_EXECUTOR_SERVICE));
- List executionInterceptors = clientConfiguration.option(SdkClientOption.EXECUTION_INTERCEPTORS);
- if (executionInterceptors != null) {
- clientOverrides.executionInterceptors(executionInterceptors);
- }
- ExecutionAttributes executionAttributes = clientConfiguration.option(SdkClientOption.EXECUTION_ATTRIBUTES);
- if (executionAttributes != null) {
- clientOverrides.executionAttributes(executionAttributes);
- }
-
- // advanced option
- if (Boolean.TRUE.equals(clientConfiguration.option(SdkClientOption.SIGNER_OVERRIDDEN))) {
- Signer signer = clientConfiguration.option(SdkAdvancedClientOption.SIGNER);
- clientOverrides.putAdvancedOption(SdkAdvancedClientOption.SIGNER, signer);
- }
-
- clientOverrides.putAdvancedOption(SdkAdvancedClientOption.USER_AGENT_SUFFIX,
- clientConfiguration.option(SdkAdvancedClientOption.USER_AGENT_SUFFIX));
- clientOverrides.putAdvancedOption(SdkAdvancedClientOption.USER_AGENT_PREFIX,
- clientConfiguration.option(SdkAdvancedClientOption.USER_AGENT_PREFIX));
- clientOverrides.putAdvancedOption(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION,
- clientConfiguration.option(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION));
- clientOverrides.putAdvancedOption(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION,
- clientConfiguration.option(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION));
- clientOverrides.putAdvancedOption(SdkAdvancedClientOption.TOKEN_SIGNER,
- clientConfiguration.option(SdkAdvancedClientOption.TOKEN_SIGNER));
-
- // profile
- Optional.ofNullable(clientConfiguration.option(SdkClientOption.PROFILE_FILE_SUPPLIER))
- .map(Supplier::get)
- .ifPresent(clientOverrides::defaultProfileFile);
-
- // misc
- clientOverrides.defaultProfileName(clientConfiguration.option(SdkClientOption.PROFILE_NAME));
- List metricPublishers = clientConfiguration.option(SdkClientOption.METRIC_PUBLISHERS);
- if (metricPublishers != null) {
- clientOverrides.metricPublishers(metricPublishers);
- }
- clientOverrides.compressionConfiguration(clientConfiguration.option(SdkClientOption.COMPRESSION_CONFIGURATION));
-
- return clientOverrides;
- }
-}
diff --git a/codegen/src/main/resources/software/amazon/awssdk/codegen/poet/model/SdkClientConfigurationUtil.resource.java b/codegen/src/main/resources/software/amazon/awssdk/codegen/poet/model/SdkClientConfigurationUtil.resource.java
new file mode 100644
index 000000000000..f5602795ad45
--- /dev/null
+++ b/codegen/src/main/resources/software/amazon/awssdk/codegen/poet/model/SdkClientConfigurationUtil.resource.java
@@ -0,0 +1,103 @@
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import software.amazon.awssdk.annotations.SdkInternalApi;
+import software.amazon.awssdk.core.client.config.ClientOption;
+import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
+import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
+import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
+import software.amazon.awssdk.core.client.config.SdkClientOption;
+import software.amazon.awssdk.core.internal.SdkInternalTestAdvancedClientOption;
+import software.amazon.awssdk.core.signer.Signer;
+import software.amazon.awssdk.profiles.ProfileFile;
+import software.amazon.awssdk.profiles.ProfileFileSupplier;
+
+@SdkInternalApi
+public final class SdkClientConfigurationUtil {
+ private SdkClientConfigurationUtil() {
+ }
+
+ /**
+ * Copies the {@link ClientOverrideConfiguration} values to the configuration builder.
+ */
+ public static SdkClientConfiguration.Builder copyOverridesToConfiguration(ClientOverrideConfiguration overrides,
+ SdkClientConfiguration.Builder builder) {
+
+ // misc
+ setClientOption(builder, SdkClientOption.ADDITIONAL_HTTP_HEADERS, overrides.headers());
+ setClientOption(builder, SdkClientOption.RETRY_POLICY, overrides.retryPolicy());
+ setClientOption(builder, SdkClientOption.API_CALL_TIMEOUT, overrides.apiCallTimeout());
+ setClientOption(builder, SdkClientOption.API_CALL_ATTEMPT_TIMEOUT, overrides.apiCallAttemptTimeout());
+ setClientOption(builder, SdkClientOption.SCHEDULED_EXECUTOR_SERVICE, overrides.scheduledExecutorService());
+ setClientListOption(builder, SdkClientOption.EXECUTION_INTERCEPTORS, overrides.executionInterceptors());
+ setClientOption(builder, SdkClientOption.EXECUTION_ATTRIBUTES, overrides.executionAttributes());
+
+ // advanced option
+ Signer signer = overrides.advancedOption(SdkAdvancedClientOption.SIGNER).orElse(null);
+ if (signer != null) {
+ builder.option(SdkAdvancedClientOption.SIGNER, signer);
+ builder.option(SdkClientOption.SIGNER_OVERRIDDEN, true);
+ }
+ setClientOption(builder, SdkAdvancedClientOption.USER_AGENT_SUFFIX,
+ overrides.advancedOption(SdkAdvancedClientOption.USER_AGENT_SUFFIX));
+ setClientOption(builder, SdkAdvancedClientOption.USER_AGENT_PREFIX,
+ overrides.advancedOption(SdkAdvancedClientOption.USER_AGENT_PREFIX));
+ setClientOption(builder, SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION,
+ overrides.advancedOption(SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION));
+ overrides.advancedOption(SdkInternalTestAdvancedClientOption.ENDPOINT_OVERRIDDEN_OVERRIDE).ifPresent(value -> {
+ builder.option(SdkClientOption.ENDPOINT_OVERRIDDEN, value);
+ });
+
+ // profile
+ ProfileFile profileFile = overrides.defaultProfileFile().orElse(null);
+ if (profileFile != null) {
+ builder.option(SdkClientOption.PROFILE_FILE_SUPPLIER, ProfileFileSupplier.fixedProfileFile(profileFile));
+ }
+ setClientOption(builder, SdkClientOption.PROFILE_NAME, overrides.defaultProfileName());
+
+ // misc
+ setClientListOption(builder, SdkClientOption.METRIC_PUBLISHERS, overrides.metricPublishers());
+ setClientOption(builder, SdkAdvancedClientOption.TOKEN_SIGNER,
+ overrides.advancedOption(SdkAdvancedClientOption.TOKEN_SIGNER));
+ setClientOption(builder, SdkClientOption.COMPRESSION_CONFIGURATION, overrides.compressionConfiguration());
+
+ return builder;
+ }
+
+ static void setClientOption(SdkClientConfiguration.Builder builder, ClientOption option, T newValue) {
+ if (newValue != null) {
+ T oldValue = builder.option(option);
+ if (oldValue == null || !oldValue.equals(newValue)) {
+ builder.option(option, newValue);
+ }
+ }
+ }
+
+ static void setClientOption(SdkClientConfiguration.Builder builder, ClientOption option, Optional newValueOpt) {
+ setClientOption(builder, option, newValueOpt.orElse(null));
+ }
+
+ static void setClientListOption(SdkClientConfiguration.Builder builder, ClientOption> option, List newValue) {
+ if (newValue == null || newValue.isEmpty()) {
+ return;
+ }
+ List oldValue = builder.option(option);
+ if (oldValue == null || oldValue.isEmpty()) {
+ builder.option(option, newValue);
+ return;
+ }
+ // Make sure that we don't override derived values or duplicate existing ones.
+ List result = new ArrayList<>(oldValue);
+ Set dedup = new HashSet<>();
+ dedup.addAll(oldValue);
+ for (T value : newValue) {
+ if (!dedup.contains(value)) {
+ result.add(value);
+ }
+ }
+ builder.option(option, result);
+ }
+}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-bearer-auth-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-bearer-auth-client-builder-class.java
index 14abf2800caa..ee0924b32937 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-bearer-auth-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-bearer-auth-client-builder-class.java
@@ -138,9 +138,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-class.java
index 2873e5d9b8b1..a59675c102b6 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-class.java
@@ -220,9 +220,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-endpoints-auth-params.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-endpoints-auth-params.java
index 398af1ebd05c..322429dc737a 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-endpoints-auth-params.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-endpoints-auth-params.java
@@ -159,9 +159,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
QueryServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = QueryServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-internal-defaults-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-internal-defaults-class.java
index e4dcc66ed6dd..217c98e28c7c 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-internal-defaults-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-client-builder-internal-defaults-class.java
@@ -130,9 +130,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-composed-sync-default-client-builder.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-composed-sync-default-client-builder.java
index 6a2270e9e6d9..53bac0194568 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-composed-sync-default-client-builder.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-composed-sync-default-client-builder.java
@@ -165,9 +165,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-ops-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-ops-client-builder-class.java
index 4f6770cd2746..25bcbb6adaaf 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-ops-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-ops-client-builder-class.java
@@ -125,9 +125,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
DatabaseServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = DatabaseServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-service-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-service-client-builder-class.java
index a59a72831455..516e0f2202a4 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-service-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-no-auth-service-client-builder-class.java
@@ -119,9 +119,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
DatabaseServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = DatabaseServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-query-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-query-client-builder-class.java
index 44db16045035..1b793ebbd783 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-query-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/sra/test-query-client-builder-class.java
@@ -156,9 +156,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
QueryServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = QueryServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-class.java
index 7e09bab84780..cbe8292bdcfc 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-class.java
@@ -108,9 +108,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-class.java
index f8e9cb2f565e..c5c623dec7f9 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-class.java
@@ -193,9 +193,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-endpoints-auth-params.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-endpoints-auth-params.java
index 1c191636bfed..15a3b171ec0f 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-endpoints-auth-params.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-endpoints-auth-params.java
@@ -130,9 +130,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
QueryServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = QueryServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-internal-defaults-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-internal-defaults-class.java
index e56a7fdfed51..bf5b9701d42f 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-internal-defaults-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-internal-defaults-class.java
@@ -101,9 +101,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-composed-sync-default-client-builder.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-composed-sync-default-client-builder.java
index 919996339758..da13e25a7e0b 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-composed-sync-default-client-builder.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-composed-sync-default-client-builder.java
@@ -138,9 +138,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-ops-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-ops-client-builder-class.java
index b07f28396dd8..c8e43faa5e44 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-ops-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-ops-client-builder-class.java
@@ -93,9 +93,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
DatabaseServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = DatabaseServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-service-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-service-client-builder-class.java
index a03b4f4dd59b..cc5f0b4838d8 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-service-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-no-auth-service-client-builder-class.java
@@ -84,9 +84,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
DatabaseServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = DatabaseServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java
index 1c191636bfed..15a3b171ec0f 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-query-client-builder-class.java
@@ -130,9 +130,11 @@ protected SdkClientConfiguration invokePlugins(SdkClientConfiguration config) {
}
QueryServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = QueryServiceClientConfigurationBuilder
.builder(config.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
+ overrideConfiguration(serviceConfigBuilder.overrideConfiguration());
return serviceConfigBuilder.buildSdkClientConfiguration();
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java
index 644af75b82d1..91796708f1fa 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-aws-json-async-client-class.java
@@ -1155,6 +1155,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java
index 9f6800a21122..fcf179fb3839 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-async-client-class.java
@@ -1332,6 +1332,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java
index d32a5034db74..dcb5386bfdf9 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-json-client-class.java
@@ -902,6 +902,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java
index 24671629784b..2a4d4cbcadce 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-async-client-class.java
@@ -909,6 +909,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
QueryServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = QueryServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java
index 4cb14dac3b11..7b97aeeba6c1 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-query-client-class.java
@@ -777,6 +777,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
QueryServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = QueryServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java
index bd35edf6ce9e..27db7b8869d4 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-async-client-class.java
@@ -870,6 +870,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
XmlServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = XmlServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java
index 111a49d71065..fb581b307b69 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/sra/test-xml-client-class.java
@@ -652,6 +652,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
XmlServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = XmlServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java
index 33903dc81dd0..990c0975df28 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-json-async-client-class.java
@@ -1186,6 +1186,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java
index ad4eb2e7fa30..014cfd0deab6 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-async-client-class.java
@@ -171,6 +171,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
QueryToJsonCompatibleServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = QueryToJsonCompatibleServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java
index 8adf0b40f246..ab894b63f6b0 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-aws-query-compatible-json-sync-client-class.java
@@ -146,6 +146,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
QueryToJsonCompatibleServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = QueryToJsonCompatibleServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java
index e5b4e43350ed..d1f818467382 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-async.java
@@ -154,6 +154,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java
index cbb33a8126aa..e4ae29440602 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-customservicemetadata-sync.java
@@ -135,6 +135,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = ProtocolRestJsonWithCustomContentTypeServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java
index 17812b0abbe1..8aec80ff2293 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-async.java
@@ -408,6 +408,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
EndpointDiscoveryTestServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = EndpointDiscoveryTestServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java
index fe68b1145691..2b851d9d1514 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-endpoint-discovery-sync.java
@@ -351,6 +351,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
EndpointDiscoveryTestServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = EndpointDiscoveryTestServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java
index b827008d5a75..b1799445416c 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-async-client-class.java
@@ -1367,6 +1367,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java
index c094e12130f1..1e226d39cb44 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-json-client-class.java
@@ -922,6 +922,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
JsonServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = JsonServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java
index 26fba0f78d57..7d9e3b881cca 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-async-client-class.java
@@ -938,6 +938,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
QueryServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = QueryServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java
index f9a870fadeb1..a1497e0f4d73 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-query-client-class.java
@@ -795,6 +795,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
QueryServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = QueryServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java
index 3ea104bc554d..a904abf79cc7 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-async-client-class.java
@@ -899,6 +899,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
XmlServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = XmlServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java
index d818b15ae43b..2d485610e4a6 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-xml-client-class.java
@@ -670,6 +670,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
}
XmlServiceClientConfigurationBuilder.BuilderInternal serviceConfigBuilder = XmlServiceClientConfigurationBuilder
.builder(clientConfiguration.toBuilder());
+ serviceConfigBuilder.overrideConfiguration(serviceClientConfiguration.overrideConfiguration());
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/serviceclientconfiguration-builder.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/serviceclientconfiguration-builder.java
index b3c660909e86..a5e6064a8462 100644
--- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/serviceclientconfiguration-builder.java
+++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/serviceclientconfiguration-builder.java
@@ -53,8 +53,6 @@ private BuilderImpl() {
private BuilderImpl(SdkClientConfiguration.Builder internalBuilder) {
this.internalBuilder = internalBuilder;
- this.overrideConfiguration = SdkClientConfigurationUtil.copyConfigurationToOverrides(
- ClientOverrideConfiguration.builder(), internalBuilder).build();
if (Boolean.TRUE.equals(internalBuilder.option(SdkClientOption.ENDPOINT_OVERRIDDEN))) {
this.endpointOverride = internalBuilder.option(SdkClientOption.ENDPOINT);
}
diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkServiceClientConfiguration.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkServiceClientConfiguration.java
index 7d727d4069fd..7ae46d9944c6 100644
--- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkServiceClientConfiguration.java
+++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/SdkServiceClientConfiguration.java
@@ -18,6 +18,7 @@
import java.net.URI;
import java.util.Objects;
import java.util.Optional;
+import java.util.function.Consumer;
import software.amazon.awssdk.annotations.SdkPublicApi;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.endpoints.EndpointProvider;
@@ -119,6 +120,18 @@ default Builder overrideConfiguration(ClientOverrideConfiguration clientOverride
throw new UnsupportedOperationException();
}
+ default Builder overrideConfiguration(Consumer consumer) {
+ ClientOverrideConfiguration overrideConfiguration = overrideConfiguration();
+ ClientOverrideConfiguration.Builder builder;
+ if (overrideConfiguration != null) {
+ builder = overrideConfiguration.toBuilder();
+ } else {
+ builder = ClientOverrideConfiguration.builder();
+ }
+ consumer.accept(builder);
+ return overrideConfiguration(builder.build());
+ }
+
/**
* Configure the endpoint override
*/
diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/CodegenServiceClientConfigurationTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/CodegenServiceClientConfigurationTest.java
index 9e45f40f64f2..dec91ee2a147 100644
--- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/CodegenServiceClientConfigurationTest.java
+++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/CodegenServiceClientConfigurationTest.java
@@ -82,7 +82,9 @@ void externalInternalTransforms_preserves_propertyValues(TestCase testCas
ProtocolRestJsonServiceClientConfigurationBuilder.builder(clientConfig.toBuilder());
// Assert that we can retrieve the same value
- assertThat(testCase.getter.apply(anotherBuilder)).isEqualTo(testCase.value);
+ if (testCase.hasDirectMapping) {
+ assertThat(testCase.getter.apply(anotherBuilder)).isEqualTo(testCase.value);
+ }
}
public static List> testCases() throws Exception {
diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/OverrideConfigurationPluginsTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/OverrideConfigurationPluginsTest.java
new file mode 100644
index 000000000000..2184416cdc95
--- /dev/null
+++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/OverrideConfigurationPluginsTest.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package software.amazon.awssdk.services;
+
+import static java.util.Collections.singletonList;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
+import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
+import software.amazon.awssdk.core.SdkPlugin;
+import software.amazon.awssdk.core.interceptor.Context;
+import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
+import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.restjsonendpointproviders.RestJsonEndpointProvidersAsyncClient;
+import software.amazon.awssdk.services.restjsonendpointproviders.RestJsonEndpointProvidersAsyncClientBuilder;
+import software.amazon.awssdk.services.restjsonendpointproviders.RestJsonEndpointProvidersClient;
+import software.amazon.awssdk.services.restjsonendpointproviders.RestJsonEndpointProvidersClientBuilder;
+import software.amazon.awssdk.services.restjsonendpointproviders.RestJsonEndpointProvidersServiceClientConfiguration;
+import software.amazon.awssdk.utils.Validate;
+
+public class OverrideConfigurationPluginsTest {
+ private CapturingInterceptor interceptor;
+
+ @BeforeEach
+ void setup() {
+ this.interceptor = new CapturingInterceptor();
+ }
+
+ @Test
+ void sync_pluginsClientOverrideConfiguration_isAddedToRequest() {
+ RestJsonEndpointProvidersClient syncClient = syncClientBuilder()
+ .addPlugin(config -> config.overrideConfiguration(c -> c.addExecutionInterceptor(interceptor)
+ .putHeader("K1", "V1")))
+ .build();
+ assertThatThrownBy(() -> syncClient.allTypes(r -> {
+ }))
+ .hasMessageContaining("boom!");
+
+ assertThat(interceptor.context.httpRequest().headers()).containsEntry("K1", singletonList("V1"));
+ }
+
+ @Test
+ void sync_pluginsRequestOverrideConfiguration_isAddedToRequest() {
+ RestJsonEndpointProvidersClient syncClient = syncClientBuilder().build();
+ SdkPlugin plugin = config -> config.overrideConfiguration(c -> c.putHeader("K1", "V1"));
+ assertThatThrownBy(() -> syncClient.allTypes(r -> r.overrideConfiguration(c -> c.addPlugin(plugin))))
+ .hasMessageContaining("boom!");
+
+ assertThat(interceptor.context.httpRequest().headers()).containsEntry("K1", singletonList("V1"));
+ }
+
+ @Test
+ void async_pluginsClientOverrideConfiguration_isAddedToRequest() {
+ RestJsonEndpointProvidersAsyncClient syncClient = asyncClientBuilder()
+ .addPlugin(config -> config.overrideConfiguration(c -> c.addExecutionInterceptor(interceptor)
+ .putHeader("K1", "V1")))
+ .build();
+ assertThatThrownBy(() -> syncClient.allTypes(r -> {
+ }).join())
+ .hasMessageContaining("boom!");
+
+ assertThat(interceptor.context.httpRequest().headers()).containsEntry("K1", singletonList("V1"));
+ }
+
+ @Test
+ void async_pluginsRequestOverrideConfiguration_isAddedToRequest() {
+ RestJsonEndpointProvidersAsyncClient syncClient = asyncClientBuilder().build();
+ SdkPlugin plugin = config -> config.overrideConfiguration(c -> c.putHeader("K1", "V1"));
+ assertThatThrownBy(() -> syncClient.allTypes(r -> r.overrideConfiguration(c -> c.addPlugin(plugin)))
+ .join())
+ .hasMessageContaining("boom!");
+
+ assertThat(interceptor.context.httpRequest().headers()).containsEntry("K1", singletonList("V1"));
+ }
+
+ private RestJsonEndpointProvidersClientBuilder syncClientBuilder() {
+ return RestJsonEndpointProvidersClient
+ .builder()
+ .addPlugin(c -> {
+ RestJsonEndpointProvidersServiceClientConfiguration.Builder config =
+ Validate.isInstanceOf(RestJsonEndpointProvidersServiceClientConfiguration.Builder.class, c, "\uD83E\uDD14");
+ config.region(Region.US_WEST_2)
+ .credentialsProvider(
+ StaticCredentialsProvider.create(
+ AwsBasicCredentials.create("akid", "skid")))
+ .overrideConfiguration(oc -> oc.addExecutionInterceptor(interceptor));
+ });
+ }
+
+ private RestJsonEndpointProvidersAsyncClientBuilder asyncClientBuilder() {
+ return RestJsonEndpointProvidersAsyncClient
+ .builder()
+ .addPlugin(c -> {
+ RestJsonEndpointProvidersServiceClientConfiguration.Builder config =
+ Validate.isInstanceOf(RestJsonEndpointProvidersServiceClientConfiguration.Builder.class, c, "\uD83E\uDD14");
+ config.region(Region.US_WEST_2)
+ .credentialsProvider(
+ StaticCredentialsProvider.create(
+ AwsBasicCredentials.create("akid", "skid")))
+ .overrideConfiguration(oc -> oc.addExecutionInterceptor(interceptor));
+ });
+ }
+
+ public static class CapturingInterceptor implements ExecutionInterceptor {
+ private Context.BeforeTransmission context;
+ private ExecutionAttributes executionAttributes;
+
+ @Override
+ public void beforeTransmission(Context.BeforeTransmission context, ExecutionAttributes executionAttributes) {
+ this.context = context;
+ this.executionAttributes = executionAttributes;
+ throw new RuntimeException("boom!");
+ }
+
+ public ExecutionAttributes executionAttributes() {
+ return executionAttributes;
+ }
+
+ public class CaptureCompletedException extends RuntimeException {
+ CaptureCompletedException(String message) {
+ super(message);
+ }
+ }
+ }
+}
diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/serviceclientconfiguration/ServiceClientConfigurationUsingPluginsTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/serviceclientconfiguration/ServiceClientConfigurationUsingPluginsTest.java
new file mode 100644
index 000000000000..0d0ac3ada95c
--- /dev/null
+++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/serviceclientconfiguration/ServiceClientConfigurationUsingPluginsTest.java
@@ -0,0 +1,226 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package software.amazon.awssdk.services.serviceclientconfiguration;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.net.URI;
+import java.time.Duration;
+import org.junit.jupiter.api.Test;
+import software.amazon.awssdk.core.SdkPlugin;
+import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
+import software.amazon.awssdk.endpoints.EndpointProvider;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.protocolrestxml.ProtocolRestXmlAsyncClient;
+import software.amazon.awssdk.services.protocolrestxml.ProtocolRestXmlClient;
+import software.amazon.awssdk.services.protocolrestxml.ProtocolRestXmlServiceClientConfiguration;
+import software.amazon.awssdk.services.protocolrestxml.endpoints.ProtocolRestXmlEndpointProvider;
+
+// The same battery of tests as in `ServiceClientConfigurationTest` but using plugins.
+public class ServiceClientConfigurationUsingPluginsTest {
+ private static final SdkPlugin NOOP_PLUGIN = config -> {};
+
+ @Test
+ void syncClient_serviceClientConfiguration_shouldReturnCorrectRegion() {
+ SdkPlugin testPlugin = config -> {
+ if (config instanceof ProtocolRestXmlServiceClientConfiguration.Builder) {
+ ProtocolRestXmlServiceClientConfiguration.Builder builder =
+ (ProtocolRestXmlServiceClientConfiguration.Builder) config;
+ builder.region(Region.ME_SOUTH_1);
+ }
+ };
+ ProtocolRestXmlClient client = ProtocolRestXmlClient.builder()
+ .addPlugin(testPlugin)
+ .build();
+
+ Region region = client.serviceClientConfiguration().region();
+ assertThat(region).isEqualTo(Region.ME_SOUTH_1);
+ }
+
+ @Test
+ void syncClientWithEndpointOverride_serviceClientConfiguration_shouldReturnCorrectEndpointOverride() {
+ URI uri = URI.create("https://www.amazon.com/");
+ ProtocolRestXmlClient client = ProtocolRestXmlClient.builder()
+ .addPlugin(config -> config.endpointOverride(uri))
+ .build();
+
+ URI endpointOverride = client.serviceClientConfiguration().endpointOverride().orElse(null);
+ assertThat(endpointOverride).isEqualTo(uri);
+ }
+
+ @Test
+ void syncClientWithoutEndpointOverride_serviceClientConfiguration_shouldReturnEmptyOptional() {
+ ProtocolRestXmlClient client = ProtocolRestXmlClient.builder()
+ .addPlugin(NOOP_PLUGIN)
+ .build();
+ URI endpointOverride = client.serviceClientConfiguration().endpointOverride().orElse(null);
+ assertThat(endpointOverride).isNull();
+ }
+
+ @Test
+ void syncClient_serviceClientConfiguration_shouldReturnCorrectClientOverrideConfigurationFields() {
+ ClientOverrideConfiguration overrideConfiguration = ClientOverrideConfiguration.builder()
+ .apiCallAttemptTimeout(Duration.ofSeconds(30))
+ .apiCallTimeout(Duration.ofSeconds(90))
+ .retryPolicy(c -> c.numRetries(4))
+ .build();
+
+ ProtocolRestXmlClient client = ProtocolRestXmlClient.builder()
+ .addPlugin(config -> config.overrideConfiguration(overrideConfiguration))
+ .build();
+
+ ClientOverrideConfiguration result = client.serviceClientConfiguration().overrideConfiguration();
+ assertThat(result.apiCallAttemptTimeout().get()).isEqualTo(Duration.ofSeconds(30));
+ assertThat(result.apiCallTimeout().get()).isEqualTo(Duration.ofSeconds(90));
+ assertThat(result.retryPolicy().get().numRetries()).isEqualTo(4);
+ assertThat(result.defaultProfileFile()).isNotPresent();
+ assertThat(result.metricPublishers()).isEmpty();
+ }
+
+ @Test
+ void syncClient_serviceClientConfiguration_withoutOverrideConfiguration_shouldReturnEmptyFields() {
+ ProtocolRestXmlClient client = ProtocolRestXmlClient.builder()
+ .addPlugin(NOOP_PLUGIN)
+ .build();
+
+ ClientOverrideConfiguration overrideConfiguration = client.serviceClientConfiguration().overrideConfiguration();
+ assertThat(overrideConfiguration.toString()).isEqualTo(
+ "ClientOverrideConfiguration(headers={}, executionInterceptors=[], advancedOptions={})");
+ assertThat(overrideConfiguration.apiCallAttemptTimeout()).isNotPresent();
+ assertThat(overrideConfiguration.apiCallTimeout()).isNotPresent();
+ assertThat(overrideConfiguration.retryPolicy()).isNotPresent();
+ assertThat(overrideConfiguration.defaultProfileFile()).isNotPresent();
+ assertThat(overrideConfiguration.metricPublishers()).isEmpty();
+ }
+
+ @Test
+ void syncClientWithEndpointProvider_serviceClientConfiguration_shouldReturnCorrectEndpointProvider() {
+ ProtocolRestXmlEndpointProvider clientEndpointProvider = ProtocolRestXmlEndpointProvider.defaultProvider();
+ ProtocolRestXmlClient client = ProtocolRestXmlClient.builder()
+ .addPlugin(config -> config.endpointProvider(clientEndpointProvider))
+ .build();
+
+ EndpointProvider endpointProvider = client.serviceClientConfiguration().endpointProvider().orElse(null);
+ assertThat(endpointProvider).isEqualTo(clientEndpointProvider);
+ }
+
+ @Test
+ void syncClientWithoutEndpointProvider_serviceClientConfiguration_shouldReturnDefaultEndpointProvider() {
+ ProtocolRestXmlClient client = ProtocolRestXmlClient.builder()
+ .build();
+
+ EndpointProvider endpointProvider = client.serviceClientConfiguration().endpointProvider().orElse(null);
+ assertThat(endpointProvider instanceof ProtocolRestXmlEndpointProvider).isTrue();
+ }
+
+ @Test
+ void asyncClient_serviceClientConfiguration_shouldReturnCorrectRegion() {
+ SdkPlugin testPlugin = config -> {
+ if (config instanceof ProtocolRestXmlServiceClientConfiguration.Builder) {
+ ProtocolRestXmlServiceClientConfiguration.Builder builder =
+ (ProtocolRestXmlServiceClientConfiguration.Builder) config;
+
+ builder.region(Region.ME_SOUTH_1);
+ }
+ };
+ ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder()
+ .addPlugin(testPlugin)
+ .build();
+
+ Region region = client.serviceClientConfiguration().region();
+ assertThat(region).isEqualTo(Region.ME_SOUTH_1);
+ }
+
+ @Test
+ void asyncClientWithEndpointOverride_serviceClientConfiguration_shouldReturnCorrectEndpointOverride() {
+ URI uri = URI.create("https://www.amazon.com/");
+ ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder()
+ .addPlugin(config -> config.endpointOverride(uri))
+ .build();
+
+ URI endpointOverride = client.serviceClientConfiguration().endpointOverride().orElse(null);
+ assertThat(endpointOverride).isEqualTo(uri);
+ }
+
+ @Test
+ void asyncClientWithoutEndpointOverride_serviceClientConfiguration_shouldReturnEmptyOptional() {
+ ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder()
+ .addPlugin(NOOP_PLUGIN)
+ .build();
+
+ URI endpointOverride = client.serviceClientConfiguration().endpointOverride().orElse(null);
+ assertThat(endpointOverride).isNull();
+ }
+
+ @Test
+ void asyncClient_serviceClientConfiguration_shouldReturnCorrectClientOverrideConfigurationFields() {
+ ClientOverrideConfiguration overrideConfiguration = ClientOverrideConfiguration.builder()
+ .apiCallAttemptTimeout(Duration.ofSeconds(30))
+ .apiCallTimeout(Duration.ofSeconds(90))
+ .retryPolicy(c -> c.numRetries(4))
+ .build();
+
+ ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder()
+ .addPlugin(config -> config.overrideConfiguration(overrideConfiguration))
+ .build();
+
+ ClientOverrideConfiguration result = client.serviceClientConfiguration().overrideConfiguration();
+ assertThat(result.apiCallAttemptTimeout().get()).isEqualTo(Duration.ofSeconds(30));
+ assertThat(result.apiCallTimeout().get()).isEqualTo(Duration.ofSeconds(90));
+ assertThat(result.retryPolicy().get().numRetries()).isEqualTo(4);
+ assertThat(result.defaultProfileFile()).isNotPresent();
+ assertThat(result.metricPublishers()).isEmpty();
+ }
+
+ @Test
+ void asyncClient_serviceClientConfiguration_withoutOverrideConfiguration_shouldReturnEmptyFields() {
+ ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder()
+ .addPlugin(NOOP_PLUGIN)
+ .build();
+
+ assertThat(client.serviceClientConfiguration().overrideConfiguration().toString()).isEqualTo(
+ "ClientOverrideConfiguration(headers={}, executionInterceptors=[], advancedOptions={})");
+ ClientOverrideConfiguration result = client.serviceClientConfiguration().overrideConfiguration();
+ assertThat(result.apiCallAttemptTimeout()).isNotPresent();
+ assertThat(result.apiCallTimeout()).isNotPresent();
+ assertThat(result.retryPolicy()).isNotPresent();
+ assertThat(result.defaultProfileFile()).isNotPresent();
+ assertThat(result.metricPublishers()).isEmpty();
+ }
+
+
+ @Test
+ void asyncClientWithEndpointProvider_serviceClientConfiguration_shouldReturnCorrectEndpointProvider() {
+ ProtocolRestXmlEndpointProvider clientEndpointProvider = ProtocolRestXmlEndpointProvider.defaultProvider();
+ SdkPlugin testPlugin = config -> config.endpointProvider(clientEndpointProvider);
+ ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder()
+ .addPlugin(testPlugin)
+ .build();
+
+ EndpointProvider endpointProvider = client.serviceClientConfiguration().endpointProvider().orElse(null);
+ assertThat(endpointProvider).isEqualTo(clientEndpointProvider);
+ }
+
+ @Test
+ void asyncClientWithoutEndpointProvider_serviceClientConfiguration_shouldReturnDefault() {
+ ProtocolRestXmlAsyncClient client = ProtocolRestXmlAsyncClient.builder()
+ .addPlugin(NOOP_PLUGIN)
+ .build();
+
+ EndpointProvider endpointProvider = client.serviceClientConfiguration().endpointProvider().orElse(null);
+ assertThat(endpointProvider instanceof ProtocolRestXmlEndpointProvider).isTrue();
+ }
+}