diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/builder/AwsClientBuilder.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/builder/AwsClientBuilder.java index cb197768ab14..1e6c3f1c8e2d 100644 --- a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/builder/AwsClientBuilder.java +++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/client/builder/AwsClientBuilder.java @@ -19,7 +19,6 @@ import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider; import software.amazon.awssdk.awscore.defaultsmode.DefaultsMode; import software.amazon.awssdk.core.client.builder.SdkClientBuilder; -import software.amazon.awssdk.http.auth.spi.scheme.AuthScheme; import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity; import software.amazon.awssdk.identity.spi.IdentityProvider; import software.amazon.awssdk.regions.Region; @@ -149,15 +148,4 @@ default BuilderT defaultsMode(DefaultsMode defaultsMode) { *

If the setting is not found in any of the locations above, 'false' will be used. */ BuilderT fipsEnabled(Boolean fipsEndpointEnabled); - - /** - * Configure this client with an additional auth scheme, or replace one already on the client. - * - *

By default, the SDK will only know about default auth schemes that ship with the service. If you want to modify those - * existing auth schemes or add a custom one (you select with a custom auth scheme resolver), you can add that new auth - * scheme with this method. - */ - default BuilderT putAuthScheme(AuthScheme authScheme) { - throw new UnsupportedOperationException(); - } } diff --git a/core/aws-core/src/test/java/software/amazon/awssdk/awscore/client/builder/DefaultAwsClientBuilderTest.java b/core/aws-core/src/test/java/software/amazon/awssdk/awscore/client/builder/DefaultAwsClientBuilderTest.java index 6b042cf58d4e..ba04424fee93 100644 --- a/core/aws-core/src/test/java/software/amazon/awssdk/awscore/client/builder/DefaultAwsClientBuilderTest.java +++ b/core/aws-core/src/test/java/software/amazon/awssdk/awscore/client/builder/DefaultAwsClientBuilderTest.java @@ -27,7 +27,6 @@ import static software.amazon.awssdk.awscore.client.config.AwsClientOption.SIGNING_REGION; import static software.amazon.awssdk.core.client.config.SdkAdvancedClientOption.SIGNER; -import com.google.common.collect.ImmutableSet; import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; @@ -36,7 +35,6 @@ import java.time.Duration; import java.util.Arrays; import java.util.Optional; -import java.util.Set; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -221,10 +219,6 @@ public void explicitAsyncHttpClientProvided_ClientIsNotManagedBySdk() { @Test public void clientBuilderFieldsHaveBeanEquivalents() throws Exception { - // Mutating properties might not have bean equivalents. This is probably fine, since very few customers require - // bean-equivalent methods and it's not clear what they'd expect them to be named anyway. Ignore these methods for now. - Set NON_BEAN_EQUIVALENT_METHODS = ImmutableSet.of("putAuthScheme", "addPlugin"); - AwsClientBuilder builder = testClientBuilder(); BeanInfo beanInfo = Introspector.getBeanInfo(builder.getClass()); @@ -233,10 +227,6 @@ public void clientBuilderFieldsHaveBeanEquivalents() throws Exception { Arrays.stream(clientBuilderMethods).filter(m -> !m.isSynthetic()).forEach(builderMethod -> { String propertyName = builderMethod.getName(); - if (NON_BEAN_EQUIVALENT_METHODS.contains(propertyName)) { - return; - } - Optional propertyForMethod = Arrays.stream(beanInfo.getPropertyDescriptors()) .filter(property -> property.getName().equals(propertyName)) diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/builder/SdkClientBuilder.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/builder/SdkClientBuilder.java index 71e61599c5a2..9b8eab691627 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/builder/SdkClientBuilder.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/client/builder/SdkClientBuilder.java @@ -21,6 +21,7 @@ import software.amazon.awssdk.core.SdkPlugin; import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration; import software.amazon.awssdk.endpoints.EndpointProvider; +import software.amazon.awssdk.http.auth.spi.scheme.AuthScheme; import software.amazon.awssdk.utils.builder.SdkBuilder; /** @@ -65,6 +66,17 @@ default B overrideConfiguration(Consumer ov */ B endpointOverride(URI endpointOverride); + /** + * Configure this client with an additional auth scheme, or replace one already on the client. + * + *

By default, the SDK will only know about default auth schemes that ship with the service. If you want to modify those + * existing auth schemes or add a custom one (you select with a custom auth scheme resolver), you can add that new auth + * scheme with this method. + */ + default B putAuthScheme(AuthScheme authScheme) { + throw new UnsupportedOperationException(); + } + /** * Adds a plugin to the client builder. The plugins will be invoked when building the client to allow them to change the * configuration of the built client. diff --git a/core/sdk-core/src/test/java/software/amazon/awssdk/core/client/builder/DefaultClientBuilderTest.java b/core/sdk-core/src/test/java/software/amazon/awssdk/core/client/builder/DefaultClientBuilderTest.java index f094e8353443..ed44be613edf 100644 --- a/core/sdk-core/src/test/java/software/amazon/awssdk/core/client/builder/DefaultClientBuilderTest.java +++ b/core/sdk-core/src/test/java/software/amazon/awssdk/core/client/builder/DefaultClientBuilderTest.java @@ -371,7 +371,7 @@ public void explicitAsyncHttpClientProvided_ClientIsNotManagedBySdk() { public void clientBuilderFieldsHaveBeanEquivalents() throws Exception { // Mutating properties might not have bean equivalents. This is probably fine, since very few customers require // bean-equivalent methods and it's not clear what they'd expect them to be named anyway. Ignore these methods for now. - Set NON_BEAN_EQUIVALENT_METHODS = ImmutableSet.of("addPlugin"); + Set NON_BEAN_EQUIVALENT_METHODS = ImmutableSet.of("addPlugin", "putAuthScheme"); SdkClientBuilder builder = testClientBuilder(); BeanInfo beanInfo = Introspector.getBeanInfo(builder.getClass());