From 01407295593fa10320a54ee93b67553bdbe7025e Mon Sep 17 00:00:00 2001 From: Dongie Agnir <261310+dagnir@users.noreply.github.com> Date: Thu, 27 Oct 2022 11:47:47 -0700 Subject: [PATCH] Skip rules based endpoints for most services (#3520) * Skip rules based endpoints for most services We are only enabling rules based endpoints for S3, S3Control, and EventBridge for now in order to roll back incorrect hostprefix handling in the Java SDK. S3, S3Control, and EventBridge are unaffected by this issue because their rules are handwritten, and in the case of S3Control which has a host prefix in the model, it is handled by the rule set. Co-authored-by: John Viegas Co-authored-by: Zoe Wang <33073555+zoewangg@users.noreply.github.com> --- .../bugfix-AWsSDKforJavav2-ddeebe8.json | 6 +++ .../emitters/tasks/EndpointProviderTasks.java | 5 +++ .../customization/CustomizationConfig.java | 12 ++++++ .../poet/builder/AsyncClientBuilderClass.java | 4 +- .../poet/builder/BaseClientBuilderClass.java | 22 ++++++---- .../builder/BaseClientBuilderInterface.java | 12 +++--- .../poet/builder/SyncClientBuilderClass.java | 4 +- .../poet/rules/EndpointRulesSpecUtils.java | 4 ++ .../test-async-client-builder-class.java | 8 ---- ...test-bearer-auth-client-builder-class.java | 16 +------ ...-bearer-auth-client-builder-interface.java | 9 +--- .../builder/test-client-builder-class.java | 14 +------ .../test-client-builder-interface.java | 7 ---- ...lient-builder-internal-defaults-class.java | 16 +------ .../test-query-client-builder-class.java | 27 +----------- .../test-sync-client-builder-class.java | 8 ---- pom.xml | 8 ++-- services/apigateway/pom.xml | 6 --- services/eventbridge/pom.xml | 10 +++++ .../codegen-resources/customization.config | 3 +- services/ioteventsdata/pom.xml | 5 --- services/pom.xml | 10 ----- services/s3/pom.xml | 10 +++++ .../codegen-resources/customization.config | 3 +- services/s3control/pom.xml | 10 +++++ .../codegen-resources/customization.config | 3 +- .../endpointproviders/customization.config | 3 +- .../awssdk/services/HostPrefixTest.java | 3 -- .../EndpointAuthSchemeInterceptorTest.java | 4 +- .../awssdk/services/rules/DefaultVisitor.java | 42 +++++++++---------- .../awssdk/services/rules/EndpointTest.java | 14 +++---- .../services/rules/EndpointTestSuite.java | 2 +- .../services/rules/IntegrationTest.java | 2 +- .../awssdk/services/rules/RuleEngineTest.java | 8 ++-- .../services/rules/TraversingVisitor.java | 12 +++--- .../services/rules/ValidateUriScheme.java | 8 ++-- .../rules/testutil/TestDiscovery.java | 2 +- test/protocol-tests/pom.xml | 10 ----- 38 files changed, 151 insertions(+), 201 deletions(-) create mode 100644 .changes/next-release/bugfix-AWsSDKforJavav2-ddeebe8.json diff --git a/.changes/next-release/bugfix-AWsSDKforJavav2-ddeebe8.json b/.changes/next-release/bugfix-AWsSDKforJavav2-ddeebe8.json new file mode 100644 index 000000000000..03f209fb0950 --- /dev/null +++ b/.changes/next-release/bugfix-AWsSDKforJavav2-ddeebe8.json @@ -0,0 +1,6 @@ +{ + "type": "bugfix", + "category": "AWs SDK for Java v2", + "contributor": "", + "description": "We are only enabling rules based endpoints for S3, S3Control, and EventBridge for now in order to roll back incorrect hostprefix handling in the Java SDK. EventBridge are unaffected by this issue because it does not have a `hostPrefix` in its service model. S3 and S3Control have `hostPrefix` in the model, it is handled by the rule set." +} diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/EndpointProviderTasks.java b/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/EndpointProviderTasks.java index 9707f7612b32..f5b5a8b13bd9 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/EndpointProviderTasks.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/emitters/tasks/EndpointProviderTasks.java @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Map; import software.amazon.awssdk.codegen.emitters.GeneratorTask; @@ -45,6 +46,10 @@ public EndpointProviderTasks(GeneratorTaskParams dependencies) { @Override protected List createTasks() throws Exception { + if (!generatorTaskParams.getModel().getCustomizationConfig().useRuleBasedEndpoints()) { + return Collections.emptyList(); + } + List tasks = new ArrayList<>(); tasks.add(generateInterface()); tasks.add(generateParams()); diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java b/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java index 07d1659bc0c3..2860d4cfe2ae 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/model/config/customization/CustomizationConfig.java @@ -213,6 +213,11 @@ public class CustomizationConfig { private boolean useGlobalEndpoint; + /** + * Whether Endpoints 2.0/rule based endpoints should be used for endpoint resolution. + */ + private boolean useRuleBasedEndpoints = false; + private CustomizationConfig() { } @@ -550,4 +555,11 @@ public void setSkipEndpointTests(Map skipEndpointTests) { this.skipEndpointTests = skipEndpointTests; } + public boolean useRuleBasedEndpoints() { + return useRuleBasedEndpoints; + } + + public void setUseRuleBasedEndpoints(boolean useRuleBasedEndpoints) { + this.useRuleBasedEndpoints = useRuleBasedEndpoints; + } } diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/AsyncClientBuilderClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/AsyncClientBuilderClass.java index 90005f4535f1..0d2e12de5322 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/AsyncClientBuilderClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/AsyncClientBuilderClass.java @@ -68,7 +68,9 @@ public TypeSpec poetSpec() { } } - builder.addMethod(endpointProviderMethod()); + if (endpointRulesSpecUtils.isEndpointRulesEnabled()) { + builder.addMethod(endpointProviderMethod()); + } if (BearerAuthUtils.usesBearerAuth(model)) { builder.addMethod(bearerTokenProviderMethod()); diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java index ede16294d2da..172241635193 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java @@ -110,9 +110,11 @@ public TypeSpec poetSpec() { builder.addMethod(finalizeServiceConfigurationMethod()); defaultAwsAuthSignerMethod().ifPresent(builder::addMethod); builder.addMethod(signingNameMethod()); - builder.addMethod(defaultEndpointProviderMethod()); + if (endpointRulesSpecUtils.isEndpointRulesEnabled()) { + builder.addMethod(defaultEndpointProviderMethod()); + } - if (hasClientContextParams()) { + if (hasClientContextParams() && endpointRulesSpecUtils.isEndpointRulesEnabled()) { model.getClientContextParams().forEach((n, m) -> { builder.addMethod(clientContextParamSetter(n, m)); }); @@ -184,9 +186,11 @@ private MethodSpec mergeServiceDefaultsMethod() { .addModifiers(PROTECTED, FINAL) .returns(SdkClientConfiguration.class) .addParameter(SdkClientConfiguration.class, "config") - .addCode("return config.merge(c -> c") - .addCode(".option($T.ENDPOINT_PROVIDER, defaultEndpointProvider())", - SdkClientOption.class); + .addCode("return config.merge(c -> c"); + + if (endpointRulesSpecUtils.isEndpointRulesEnabled()) { + builder.addCode(".option($T.ENDPOINT_PROVIDER, defaultEndpointProvider())", SdkClientOption.class); + } if (defaultAwsAuthSignerMethod().isPresent()) { builder.addCode(".option($T.SIGNER, defaultSigner())\n", SdkAdvancedClientOption.class); @@ -252,9 +256,11 @@ private MethodSpec finalizeServiceConfigurationMethod() { ParameterizedTypeName.get(List.class, ExecutionInterceptor.class), ArrayList.class); - builder.addStatement("endpointInterceptors.add(new $T())", endpointRulesSpecUtils.resolverInterceptorName()); - builder.addStatement("endpointInterceptors.add(new $T())", endpointRulesSpecUtils.authSchemesInterceptorName()); - builder.addStatement("endpointInterceptors.add(new $T())", endpointRulesSpecUtils.requestModifierInterceptorName()); + if (endpointRulesSpecUtils.isEndpointRulesEnabled()) { + builder.addStatement("endpointInterceptors.add(new $T())", endpointRulesSpecUtils.resolverInterceptorName()); + builder.addStatement("endpointInterceptors.add(new $T())", endpointRulesSpecUtils.authSchemesInterceptorName()); + builder.addStatement("endpointInterceptors.add(new $T())", endpointRulesSpecUtils.requestModifierInterceptorName()); + } builder.addCode("$1T interceptorFactory = new $1T();\n", ClasspathInterceptorChainFactory.class) .addCode("$T<$T> interceptors = interceptorFactory.getInterceptors($S);\n", diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderInterface.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderInterface.java index ed90a53d2146..76f54a666f7d 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderInterface.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderInterface.java @@ -73,12 +73,14 @@ public TypeSpec poetSpec() { builder.addMethod(serviceConfigurationConsumerBuilderMethod()); } - builder.addMethod(endpointProviderMethod()); + if (endpointRulesSpecUtils.isEndpointRulesEnabled()) { + builder.addMethod(endpointProviderMethod()); - if (hasClientContextParams()) { - model.getClientContextParams().forEach((n, m) -> { - builder.addMethod(clientContextParamSetter(n, m)); - }); + if (hasClientContextParams()) { + model.getClientContextParams().forEach((n, m) -> { + builder.addMethod(clientContextParamSetter(n, m)); + }); + } } if (generateTokenProviderMethod()) { diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/SyncClientBuilderClass.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/SyncClientBuilderClass.java index aa4064adeecd..c30b4bd0d099 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/SyncClientBuilderClass.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/SyncClientBuilderClass.java @@ -68,7 +68,9 @@ public TypeSpec poetSpec() { } } - builder.addMethod(endpointProviderMethod()); + if (endpointRulesSpecUtils.isEndpointRulesEnabled()) { + builder.addMethod(endpointProviderMethod()); + } if (BearerAuthUtils.usesBearerAuth(model)) { builder.addMethod(tokenProviderMethodImpl()); diff --git a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesSpecUtils.java b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesSpecUtils.java index 2f6b6bbba5fb..6babbfda4ce1 100644 --- a/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesSpecUtils.java +++ b/codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/EndpointRulesSpecUtils.java @@ -182,4 +182,8 @@ public boolean isS3Control() { public TypeName resolverReturnType() { return ParameterizedTypeName.get(CompletableFuture.class, Endpoint.class); } + + public boolean isEndpointRulesEnabled() { + return intermediateModel.getCustomizationConfig().useRuleBasedEndpoints(); + } } diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-async-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-async-client-builder-class.java index 0260fa2c6d01..1e1c05c84729 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-async-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-async-client-builder-class.java @@ -4,8 +4,6 @@ import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider; import software.amazon.awssdk.awscore.client.config.AwsClientOption; -import software.amazon.awssdk.core.client.config.SdkClientOption; -import software.amazon.awssdk.services.json.endpoints.JsonEndpointProvider; /** * Internal implementation of {@link JsonAsyncClientBuilder}. @@ -14,12 +12,6 @@ @SdkInternalApi final class DefaultJsonAsyncClientBuilder extends DefaultJsonBaseClientBuilder implements JsonAsyncClientBuilder { - @Override - public DefaultJsonAsyncClientBuilder endpointProvider(JsonEndpointProvider endpointProvider) { - clientConfiguration.option(SdkClientOption.ENDPOINT_PROVIDER, endpointProvider); - return this; - } - @Override public DefaultJsonAsyncClientBuilder tokenProvider(SdkTokenProvider tokenProvider) { clientConfiguration.option(AwsClientOption.TOKEN_PROVIDER, tokenProvider); 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 6cf15aba5d9d..e5b3621a96ad 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 @@ -15,10 +15,6 @@ import software.amazon.awssdk.core.interceptor.ClasspathInterceptorChainFactory; import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; import software.amazon.awssdk.core.signer.Signer; -import software.amazon.awssdk.services.json.endpoints.JsonEndpointProvider; -import software.amazon.awssdk.services.json.endpoints.internal.JsonEndpointAuthSchemeInterceptor; -import software.amazon.awssdk.services.json.endpoints.internal.JsonRequestSetEndpointInterceptor; -import software.amazon.awssdk.services.json.endpoints.internal.JsonResolveEndpointInterceptor; import software.amazon.awssdk.utils.CollectionUtils; /** @@ -39,8 +35,7 @@ protected final String serviceName() { @Override protected final SdkClientConfiguration mergeServiceDefaults(SdkClientConfiguration config) { - return config.merge(c -> c.option(SdkClientOption.ENDPOINT_PROVIDER, defaultEndpointProvider()) - .option(SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false) + return config.merge(c -> c.option(SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false) .option(AwsClientOption.TOKEN_PROVIDER, defaultTokenProvider()) .option(SdkAdvancedClientOption.TOKEN_SIGNER, defaultTokenSigner())); } @@ -48,9 +43,6 @@ protected final SdkClientConfiguration mergeServiceDefaults(SdkClientConfigurati @Override protected final SdkClientConfiguration finalizeServiceConfiguration(SdkClientConfiguration config) { List endpointInterceptors = new ArrayList<>(); - endpointInterceptors.add(new JsonResolveEndpointInterceptor()); - endpointInterceptors.add(new JsonEndpointAuthSchemeInterceptor()); - endpointInterceptors.add(new JsonRequestSetEndpointInterceptor()); ClasspathInterceptorChainFactory interceptorFactory = new ClasspathInterceptorChainFactory(); List interceptors = interceptorFactory .getInterceptors("software/amazon/awssdk/services/json/execution.interceptors"); @@ -66,10 +58,6 @@ protected final String signingName() { return "json-service"; } - private JsonEndpointProvider defaultEndpointProvider() { - return JsonEndpointProvider.defaultProvider(); - } - private SdkTokenProvider defaultTokenProvider() { return DefaultAwsTokenProvider.create(); } @@ -77,4 +65,4 @@ private SdkTokenProvider defaultTokenProvider() { private Signer defaultTokenSigner() { return BearerTokenSigner.create(); } -} +} \ No newline at end of file diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-interface.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-interface.java index 9f85cd8f2492..e4749b5db707 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-interface.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-bearer-auth-client-builder-interface.java @@ -3,7 +3,6 @@ import software.amazon.awssdk.annotations.Generated; import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider; import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder; -import software.amazon.awssdk.services.json.endpoints.JsonEndpointProvider; /** * This includes configuration specific to Json Service that is supported by both {@link JsonClientBuilder} and @@ -11,12 +10,6 @@ */ @Generated("software.amazon.awssdk:codegen") public interface JsonBaseClientBuilder, C> extends AwsClientBuilder { - /** - * Set the {@link JsonEndpointProvider} implementation that will be used by the client to determine the endpoint for - * each request. This is optional; if none is provided a default implementation will be used the SDK. - */ - B endpointProvider(JsonEndpointProvider endpointProvider); - /** * Set the token provider to use for bearer token authorization. This is optional, if none is provided, the SDK will * use {@link software.amazon.awssdk.auth.token.credentials.aws.DefaultAwsTokenProvider}. @@ -29,4 +22,4 @@ public interface JsonBaseClientBuilder, C> * default it is {@link software.amazon.awssdk.auth.token.signer.aws.BearerTokenSigner}. */ B tokenProvider(SdkTokenProvider tokenProvider); -} +} \ No newline at end of file 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 756a6d28031f..face91772800 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 @@ -19,10 +19,6 @@ import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; import software.amazon.awssdk.core.signer.Signer; import software.amazon.awssdk.services.json.endpoints.JsonClientContextParams; -import software.amazon.awssdk.services.json.endpoints.JsonEndpointProvider; -import software.amazon.awssdk.services.json.endpoints.internal.JsonEndpointAuthSchemeInterceptor; -import software.amazon.awssdk.services.json.endpoints.internal.JsonRequestSetEndpointInterceptor; -import software.amazon.awssdk.services.json.endpoints.internal.JsonResolveEndpointInterceptor; import software.amazon.awssdk.utils.AttributeMap; import software.amazon.awssdk.utils.CollectionUtils; import software.amazon.awssdk.utils.Validate; @@ -45,8 +41,7 @@ protected final String serviceName() { @Override protected final SdkClientConfiguration mergeServiceDefaults(SdkClientConfiguration config) { - return config.merge(c -> c.option(SdkClientOption.ENDPOINT_PROVIDER, defaultEndpointProvider()) - .option(SdkAdvancedClientOption.SIGNER, defaultSigner()) + return config.merge(c -> c.option(SdkAdvancedClientOption.SIGNER, defaultSigner()) .option(SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false) .option(SdkClientOption.SERVICE_CONFIGURATION, ServiceConfiguration.builder().build()) .option(AwsClientOption.TOKEN_PROVIDER, defaultTokenProvider()) @@ -56,9 +51,6 @@ protected final SdkClientConfiguration mergeServiceDefaults(SdkClientConfigurati @Override protected final SdkClientConfiguration finalizeServiceConfiguration(SdkClientConfiguration config) { List endpointInterceptors = new ArrayList<>(); - endpointInterceptors.add(new JsonResolveEndpointInterceptor()); - endpointInterceptors.add(new JsonEndpointAuthSchemeInterceptor()); - endpointInterceptors.add(new JsonRequestSetEndpointInterceptor()); ClasspathInterceptorChainFactory interceptorFactory = new ClasspathInterceptorChainFactory(); List interceptors = interceptorFactory .getInterceptors("software/amazon/awssdk/services/json/execution.interceptors"); @@ -137,10 +129,6 @@ protected final String signingName() { return "json-service"; } - private JsonEndpointProvider defaultEndpointProvider() { - return JsonEndpointProvider.defaultProvider(); - } - public B serviceConfiguration(ServiceConfiguration serviceConfiguration) { clientConfiguration.option(SdkClientOption.SERVICE_CONFIGURATION, serviceConfiguration); return thisBuilder(); diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-interface.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-interface.java index dd6652920acc..06a4f0b1bf87 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-interface.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-interface.java @@ -4,7 +4,6 @@ import software.amazon.awssdk.annotations.Generated; import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider; import software.amazon.awssdk.awscore.client.builder.AwsClientBuilder; -import software.amazon.awssdk.services.json.endpoints.JsonEndpointProvider; /** * This includes configuration specific to Json Service that is supported by both {@link JsonClientBuilder} and @@ -18,12 +17,6 @@ default B serviceConfiguration(Consumer serviceCon return serviceConfiguration(ServiceConfiguration.builder().applyMutation(serviceConfiguration).build()); } - /** - * Set the {@link JsonEndpointProvider} implementation that will be used by the client to determine the endpoint for - * each request. This is optional; if none is provided a default implementation will be used the SDK. - */ - B endpointProvider(JsonEndpointProvider endpointProvider); - /** * Set the token provider to use for bearer token authorization. This is optional, if none is provided, the SDK will * use {@link software.amazon.awssdk.auth.token.credentials.aws.DefaultAwsTokenProvider}. 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 720d50677b8c..64481974c6bc 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 @@ -13,10 +13,6 @@ import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; import software.amazon.awssdk.core.retry.RetryMode; import software.amazon.awssdk.core.signer.Signer; -import software.amazon.awssdk.services.json.endpoints.JsonEndpointProvider; -import software.amazon.awssdk.services.json.endpoints.internal.JsonEndpointAuthSchemeInterceptor; -import software.amazon.awssdk.services.json.endpoints.internal.JsonRequestSetEndpointInterceptor; -import software.amazon.awssdk.services.json.endpoints.internal.JsonResolveEndpointInterceptor; import software.amazon.awssdk.utils.CollectionUtils; /** @@ -37,9 +33,8 @@ protected final String serviceName() { @Override protected final SdkClientConfiguration mergeServiceDefaults(SdkClientConfiguration config) { - return config.merge(c -> c.option(SdkClientOption.ENDPOINT_PROVIDER, defaultEndpointProvider()) - .option(SdkAdvancedClientOption.SIGNER, defaultSigner()) - .option(SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false)); + return config.merge(c -> c.option(SdkAdvancedClientOption.SIGNER, defaultSigner()).option( + SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false)); } @Override @@ -53,9 +48,6 @@ protected final SdkClientConfiguration mergeInternalDefaults(SdkClientConfigurat @Override protected final SdkClientConfiguration finalizeServiceConfiguration(SdkClientConfiguration config) { List endpointInterceptors = new ArrayList<>(); - endpointInterceptors.add(new JsonResolveEndpointInterceptor()); - endpointInterceptors.add(new JsonEndpointAuthSchemeInterceptor()); - endpointInterceptors.add(new JsonRequestSetEndpointInterceptor()); ClasspathInterceptorChainFactory interceptorFactory = new ClasspathInterceptorChainFactory(); List interceptors = interceptorFactory .getInterceptors("software/amazon/awssdk/services/json/execution.interceptors"); @@ -74,8 +66,4 @@ private Signer defaultSigner() { protected final String signingName() { return "json-service"; } - - private JsonEndpointProvider defaultEndpointProvider() { - return JsonEndpointProvider.defaultProvider(); - } } 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 e0ca89d8975a..6db9b1a25ac9 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 @@ -17,11 +17,6 @@ import software.amazon.awssdk.core.interceptor.ExecutionInterceptor; import software.amazon.awssdk.core.signer.Signer; import software.amazon.awssdk.protocols.query.interceptor.QueryParametersToBodyInterceptor; -import software.amazon.awssdk.services.query.endpoints.QueryClientContextParams; -import software.amazon.awssdk.services.query.endpoints.QueryEndpointProvider; -import software.amazon.awssdk.services.query.endpoints.internal.QueryEndpointAuthSchemeInterceptor; -import software.amazon.awssdk.services.query.endpoints.internal.QueryRequestSetEndpointInterceptor; -import software.amazon.awssdk.services.query.endpoints.internal.QueryResolveEndpointInterceptor; import software.amazon.awssdk.utils.CollectionUtils; /** @@ -42,8 +37,7 @@ protected final String serviceName() { @Override protected final SdkClientConfiguration mergeServiceDefaults(SdkClientConfiguration config) { - return config.merge(c -> c.option(SdkClientOption.ENDPOINT_PROVIDER, defaultEndpointProvider()) - .option(SdkAdvancedClientOption.SIGNER, defaultSigner()) + return config.merge(c -> c.option(SdkAdvancedClientOption.SIGNER, defaultSigner()) .option(SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false) .option(AwsClientOption.TOKEN_PROVIDER, defaultTokenProvider()) .option(SdkAdvancedClientOption.TOKEN_SIGNER, defaultTokenSigner())); @@ -52,9 +46,6 @@ protected final SdkClientConfiguration mergeServiceDefaults(SdkClientConfigurati @Override protected final SdkClientConfiguration finalizeServiceConfiguration(SdkClientConfiguration config) { List endpointInterceptors = new ArrayList<>(); - endpointInterceptors.add(new QueryResolveEndpointInterceptor()); - endpointInterceptors.add(new QueryEndpointAuthSchemeInterceptor()); - endpointInterceptors.add(new QueryRequestSetEndpointInterceptor()); ClasspathInterceptorChainFactory interceptorFactory = new ClasspathInterceptorChainFactory(); List interceptors = interceptorFactory .getInterceptors("software/amazon/awssdk/services/query/execution.interceptors"); @@ -76,20 +67,6 @@ protected final String signingName() { return "query-service"; } - private QueryEndpointProvider defaultEndpointProvider() { - return QueryEndpointProvider.defaultProvider(); - } - - public B booleanContextParam(Boolean booleanContextParam) { - clientContextParams.put(QueryClientContextParams.BOOLEAN_CONTEXT_PARAM, booleanContextParam); - return thisBuilder(); - } - - public B stringContextParam(String stringContextParam) { - clientContextParams.put(QueryClientContextParams.STRING_CONTEXT_PARAM, stringContextParam); - return thisBuilder(); - } - private SdkTokenProvider defaultTokenProvider() { return DefaultAwsTokenProvider.create(); } @@ -97,4 +74,4 @@ private SdkTokenProvider defaultTokenProvider() { private Signer defaultTokenSigner() { return BearerTokenSigner.create(); } -} +} \ No newline at end of file diff --git a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-sync-client-builder-class.java b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-sync-client-builder-class.java index 4f4963d33fc4..72c3448b6956 100644 --- a/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-sync-client-builder-class.java +++ b/codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-sync-client-builder-class.java @@ -4,8 +4,6 @@ import software.amazon.awssdk.annotations.SdkInternalApi; import software.amazon.awssdk.auth.token.credentials.SdkTokenProvider; import software.amazon.awssdk.awscore.client.config.AwsClientOption; -import software.amazon.awssdk.core.client.config.SdkClientOption; -import software.amazon.awssdk.services.json.endpoints.JsonEndpointProvider; /** * Internal implementation of {@link JsonClientBuilder}. @@ -14,12 +12,6 @@ @SdkInternalApi final class DefaultJsonClientBuilder extends DefaultJsonBaseClientBuilder implements JsonClientBuilder { - @Override - public DefaultJsonClientBuilder endpointProvider(JsonEndpointProvider endpointProvider) { - clientConfiguration.option(SdkClientOption.ENDPOINT_PROVIDER, endpointProvider); - return this; - } - @Override public DefaultJsonClientBuilder tokenProvider(SdkTokenProvider tokenProvider) { clientConfiguration.option(AwsClientOption.TOKEN_PROVIDER, tokenProvider); diff --git a/pom.xml b/pom.xml index 7a692a47cf43..1cf820ac83e7 100644 --- a/pom.xml +++ b/pom.xml @@ -599,10 +599,10 @@ s3 s3-control - sqs - rds - apigateway - polly + + + + *.internal.* diff --git a/services/apigateway/pom.xml b/services/apigateway/pom.xml index 48e6cef0cbe8..12944c8def1d 100644 --- a/services/apigateway/pom.xml +++ b/services/apigateway/pom.xml @@ -62,11 +62,5 @@ guava test - - software.amazon.awssdk - ruleset-testing-core - ${awsjavasdk.version} - test - diff --git a/services/eventbridge/pom.xml b/services/eventbridge/pom.xml index 15ab3075cb38..5d53f8b3c62d 100644 --- a/services/eventbridge/pom.xml +++ b/services/eventbridge/pom.xml @@ -56,6 +56,16 @@ aws-json-protocol ${awsjavasdk.version} + + software.amazon.awssdk + json-utils + ${awsjavasdk.version} + + + software.amazon.awssdk + endpoints-spi + ${awsjavasdk.version} + software.amazon.awssdk diff --git a/services/eventbridge/src/main/resources/codegen-resources/customization.config b/services/eventbridge/src/main/resources/codegen-resources/customization.config index ff786604343a..66e541ef8380 100644 --- a/services/eventbridge/src/main/resources/codegen-resources/customization.config +++ b/services/eventbridge/src/main/resources/codegen-resources/customization.config @@ -6,5 +6,6 @@ "Invalid EndpointId (empty)": "Need operationInputs for EndpointId param", "Valid endpointId with fips disabled and dualstack true": "Need operationInputs for EndpointId param", "Valid endpointId with custom sdk endpoint": "Need operationInputs for EndpointId param" - } + }, + "useRuleBasedEndpoints": true } \ No newline at end of file diff --git a/services/ioteventsdata/pom.xml b/services/ioteventsdata/pom.xml index 0b42d22a1f0d..66d9f372e2d3 100644 --- a/services/ioteventsdata/pom.xml +++ b/services/ioteventsdata/pom.xml @@ -56,11 +56,6 @@ aws-json-protocol ${awsjavasdk.version} - - software.amazon.awssdk - ruleset-testing-core - ${awsjavasdk.version} - org.junit.jupiter junit-jupiter diff --git a/services/pom.xml b/services/pom.xml index 9dae8f53b04b..dfbe8b788157 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -368,11 +368,6 @@ http-client-spi ${awsjavasdk.version} - - software.amazon.awssdk - endpoints-spi - ${awsjavasdk.version} - software.amazon.awssdk regions @@ -388,11 +383,6 @@ utils ${awsjavasdk.version} - - software.amazon.awssdk - json-utils - ${awsjavasdk.version} - aws-core software.amazon.awssdk diff --git a/services/s3/pom.xml b/services/s3/pom.xml index e31ca32aced0..ebf70c1e6ee5 100644 --- a/services/s3/pom.xml +++ b/services/s3/pom.xml @@ -75,6 +75,16 @@ profiles ${awsjavasdk.version} + + software.amazon.awssdk + json-utils + ${awsjavasdk.version} + + + software.amazon.awssdk + endpoints-spi + ${awsjavasdk.version} + software.amazon.awssdk.crt aws-crt diff --git a/services/s3/src/main/resources/codegen-resources/customization.config b/services/s3/src/main/resources/codegen-resources/customization.config index 854f8df3319c..0d2adb20e726 100644 --- a/services/s3/src/main/resources/codegen-resources/customization.config +++ b/services/s3/src/main/resources/codegen-resources/customization.config @@ -235,6 +235,7 @@ ] }, "delegateAsyncClientClass": true, - "useGlobalEndpoint": true + "useGlobalEndpoint": true, + "useRuleBasedEndpoints": true } } diff --git a/services/s3control/pom.xml b/services/s3control/pom.xml index 7a9050ce1096..bca0e0c7e93e 100644 --- a/services/s3control/pom.xml +++ b/services/s3control/pom.xml @@ -71,6 +71,16 @@ profiles ${awsjavasdk.version} + + software.amazon.awssdk + json-utils + ${awsjavasdk.version} + + + software.amazon.awssdk + endpoints-spi + ${awsjavasdk.version} + commons-io diff --git a/services/s3control/src/main/resources/codegen-resources/customization.config b/services/s3control/src/main/resources/codegen-resources/customization.config index edbb8d7445a5..d73ba6a81d9f 100644 --- a/services/s3control/src/main/resources/codegen-resources/customization.config +++ b/services/s3control/src/main/resources/codegen-resources/customization.config @@ -53,5 +53,6 @@ "Accesspoint ARN with region mismatch and UseArnRegion unset": "SDK defaults to useArnRegion = false", "Bucket ARN with region mismatch and UseArnRegion unset": "SDK defaults to useArnRegion = false", "Accesspoint ARN with region mismatch, UseArnRegion=false and custom endpoint": "Does not work for client tests because operationInputs needed (so an operation that doesn't required AccountId is used)" - } + }, + "useRuleBasedEndpoints": true } \ No newline at end of file diff --git a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/customization.config b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/customization.config index b5c73436bb3f..789ac307ef1d 100644 --- a/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/customization.config +++ b/test/codegen-generated-classes-test/src/main/resources/codegen-resources/endpointproviders/customization.config @@ -1,3 +1,4 @@ { - "skipEndpointTestGeneration": true + "skipEndpointTestGeneration": true, + "useRuleBasedEndpoints": true } \ No newline at end of file diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/HostPrefixTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/HostPrefixTest.java index f6286121f65b..4241d5600a44 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/HostPrefixTest.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/HostPrefixTest.java @@ -21,7 +21,6 @@ import java.net.URI; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; @@ -85,7 +84,6 @@ public void nullHostPrefix_shouldThrowException() { } @Test - @Disabled // TODO fix with S3 endpoints 2.0 update public void syncValidHostPrefix_shouldPrefixEndpoint() { mockHttpClient.stubNextResponse(HttpExecuteResponse.builder() .response(SdkHttpResponse.builder().statusCode(200) @@ -98,7 +96,6 @@ public void syncValidHostPrefix_shouldPrefixEndpoint() { } @Test - @Disabled // TODO fix with S3 endpoints 2.0 update public void asyncValidHostPrefix_shouldPrefixEndpoint() { mockAsyncClient.stubNextResponse(HttpExecuteResponse.builder() .response(SdkHttpResponse.builder().statusCode(200) diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/endpointproviders/EndpointAuthSchemeInterceptorTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/endpointproviders/EndpointAuthSchemeInterceptorTest.java index af0412381db0..de9db3445131 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/endpointproviders/EndpointAuthSchemeInterceptorTest.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/endpointproviders/EndpointAuthSchemeInterceptorTest.java @@ -35,10 +35,10 @@ import software.amazon.awssdk.core.signer.Signer; import software.amazon.awssdk.endpoints.Endpoint; import software.amazon.awssdk.services.protocolquery.model.AllTypesRequest; -import software.amazon.awssdk.services.protocolquery.endpoints.internal.ProtocolQueryEndpointAuthSchemeInterceptor; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.RestJsonEndpointProvidersEndpointAuthSchemeInterceptor; public class EndpointAuthSchemeInterceptorTest { - private static final ExecutionInterceptor INTERCEPTOR = new ProtocolQueryEndpointAuthSchemeInterceptor(); + private static final ExecutionInterceptor INTERCEPTOR = new RestJsonEndpointProvidersEndpointAuthSchemeInterceptor(); @Test public void modifyRequest_sigV4Scheme_overridesCorrectSigner() { diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/DefaultVisitor.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/DefaultVisitor.java index 22d137ebe30f..b805994d098c 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/DefaultVisitor.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/DefaultVisitor.java @@ -1,27 +1,27 @@ package software.amazon.awssdk.services.rules; import java.util.List; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.BooleanEqualsFn; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.EndpointResult; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Expr; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.ExprVisitor; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Fn; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.FnVisitor; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.GetAttr; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.IsSet; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.IsValidHostLabel; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.IsVirtualHostableS3Bucket; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Literal; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Not; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.ParseArn; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.ParseUrl; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.PartitionFn; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Ref; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Rule; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.RuleValueVisitor; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.StringEqualsFn; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Substring; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.UriEncodeFn; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.BooleanEqualsFn; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.EndpointResult; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Expr; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.ExprVisitor; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Fn; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.FnVisitor; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.GetAttr; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.IsSet; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.IsValidHostLabel; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.IsVirtualHostableS3Bucket; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Literal; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Not; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.ParseArn; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.ParseUrl; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.PartitionFn; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Ref; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Rule; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.RuleValueVisitor; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.StringEqualsFn; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Substring; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.UriEncodeFn; public abstract class DefaultVisitor implements RuleValueVisitor, ExprVisitor, FnVisitor { public abstract R getDefault(); diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/EndpointTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/EndpointTest.java index a4adbd03ed22..4636966756a2 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/EndpointTest.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/EndpointTest.java @@ -6,13 +6,13 @@ import java.util.NoSuchElementException; import java.util.Optional; import software.amazon.awssdk.protocols.jsoncore.JsonNode; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.EndpointRuleset; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Identifier; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Parameter; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.ParameterType; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.RuleEngine; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.RuleError; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Value; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.EndpointRuleset; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Identifier; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Parameter; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.ParameterType; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.RuleEngine; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.RuleError; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Value; import software.amazon.awssdk.utils.Pair; public class EndpointTest { diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/EndpointTestSuite.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/EndpointTestSuite.java index 8a2f772dff37..5ff9365cedec 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/EndpointTestSuite.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/EndpointTestSuite.java @@ -4,7 +4,7 @@ import java.util.List; import java.util.Map; import software.amazon.awssdk.protocols.jsoncore.JsonNode; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.EndpointRuleset; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.EndpointRuleset; public class EndpointTestSuite { public static final String SERVICE = "service"; diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/IntegrationTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/IntegrationTest.java index 123e148bac2a..bde0c8728ed1 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/IntegrationTest.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/IntegrationTest.java @@ -28,7 +28,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; import software.amazon.awssdk.protocols.jsoncore.JsonNode; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.EndpointRuleset; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.EndpointRuleset; import software.amazon.awssdk.services.rules.testutil.TestDiscovery; @TestInstance(TestInstance.Lifecycle.PER_CLASS) diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/RuleEngineTest.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/RuleEngineTest.java index c498d1e429fd..b97688fbaf17 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/RuleEngineTest.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/RuleEngineTest.java @@ -22,10 +22,10 @@ import org.junit.jupiter.api.Test; import software.amazon.awssdk.protocols.jsoncore.JsonNode; import software.amazon.awssdk.protocols.jsoncore.JsonNodeParser; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.EndpointRuleset; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Identifier; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.RuleEngine; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Value; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.EndpointRuleset; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Identifier; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.RuleEngine; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Value; import software.amazon.awssdk.utils.MapUtils; public class RuleEngineTest { diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/TraversingVisitor.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/TraversingVisitor.java index 751aea376214..d5124a6dbc46 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/TraversingVisitor.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/TraversingVisitor.java @@ -2,12 +2,12 @@ import java.util.List; import java.util.stream.Stream; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Condition; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.EndpointResult; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.EndpointRuleset; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Expr; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Fn; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Rule; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Condition; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.EndpointResult; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.EndpointRuleset; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Expr; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Fn; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Rule; public abstract class TraversingVisitor extends DefaultVisitor> { public Stream visitRuleset(EndpointRuleset ruleset) { diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/ValidateUriScheme.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/ValidateUriScheme.java index 6d793ff4afb9..75daab21ccfc 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/ValidateUriScheme.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/ValidateUriScheme.java @@ -3,10 +3,10 @@ import java.util.List; import java.util.Map; import java.util.stream.Stream; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.EndpointResult; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Identifier; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Literal; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.Template; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.EndpointResult; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Identifier; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Literal; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.Template; /** * Validate that URIs start with a scheme diff --git a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/testutil/TestDiscovery.java b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/testutil/TestDiscovery.java index 35ba7f8457b7..d8099708f535 100644 --- a/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/testutil/TestDiscovery.java +++ b/test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/rules/testutil/TestDiscovery.java @@ -13,7 +13,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import software.amazon.awssdk.protocols.jsoncore.JsonNode; -import software.amazon.awssdk.services.protocolrestjson.endpoints.internal.EndpointRuleset; +import software.amazon.awssdk.services.restjsonendpointproviders.endpoints.internal.EndpointRuleset; import software.amazon.awssdk.services.rules.EndpointTest; import software.amazon.awssdk.services.rules.EndpointTestSuite; diff --git a/test/protocol-tests/pom.xml b/test/protocol-tests/pom.xml index 28df73ee2400..306e03c56a92 100644 --- a/test/protocol-tests/pom.xml +++ b/test/protocol-tests/pom.xml @@ -47,11 +47,6 @@ aws-json-protocol ${awsjavasdk.version} - - software.amazon.awssdk - json-utils - ${awsjavasdk.version} - software.amazon.awssdk aws-query-protocol @@ -93,11 +88,6 @@ metrics-spi ${awsjavasdk.version} - - software.amazon.awssdk - endpoints-spi - ${awsjavasdk.version} - software.amazon.awssdk sdk-core