From 52c4cee6c4f26d386e2875162366680a55cecc54 Mon Sep 17 00:00:00 2001 From: Isaiah Vita Date: Thu, 20 Jul 2023 10:12:16 -0700 Subject: [PATCH 1/3] fix endpoint host prefix bug --- .../EndpointHostPrefixMiddleware.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java index 93484e73f..889e17b0c 100644 --- a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java +++ b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java @@ -30,6 +30,7 @@ import software.amazon.smithy.model.Model; import software.amazon.smithy.model.knowledge.TopDownIndex; import software.amazon.smithy.model.pattern.SmithyPattern; +import software.amazon.smithy.model.pattern.SmithyPattern.Segment; import software.amazon.smithy.model.shapes.MemberShape; import software.amazon.smithy.model.shapes.OperationShape; import software.amazon.smithy.model.shapes.ServiceShape; @@ -64,6 +65,29 @@ public void processFinalizedModel(GoSettings settings, Model model) { }); } + @Override + public void renderPostEndpointResolutionHook(GoSettings settings, GoWriter writer, Model model) { + boolean written = false; + for (OperationShape operation : endpointPrefixOperations) { + EndpointTrait endpointTrait = operation.expectTrait(EndpointTrait.class); + + for (Segment segment : endpointTrait.getHostPrefix().getLabels()) { + if (segment.isLabel() && segment.getContent().equals("AccountId") && !written) { + writer.write( + """ + ctx = $T(ctx, true) + """, + SymbolUtils.createPointableSymbolBuilder("DisableEndpointHostPrefix", SmithyGoDependency.SMITHY_HTTP_TRANSPORT).build() + ); + written = true; + } + } + + } + + } + + @Override public List getClientPlugins() { return runtimeClientPlugins; From 56f31ebc12e65f73b8da3525a6f5237fe7958578 Mon Sep 17 00:00:00 2001 From: Isaiah Vita Date: Thu, 20 Jul 2023 10:28:21 -0700 Subject: [PATCH 2/3] fix style issue --- .../go/codegen/integration/EndpointHostPrefixMiddleware.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java index 889e17b0c..8477fa330 100644 --- a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java +++ b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java @@ -77,7 +77,8 @@ public void renderPostEndpointResolutionHook(GoSettings settings, GoWriter write """ ctx = $T(ctx, true) """, - SymbolUtils.createPointableSymbolBuilder("DisableEndpointHostPrefix", SmithyGoDependency.SMITHY_HTTP_TRANSPORT).build() + SymbolUtils.createPointableSymbolBuilder( + "DisableEndpointHostPrefix", SmithyGoDependency.SMITHY_HTTP_TRANSPORT).build() ); written = true; } From b7ce28198a6ad7ed9f391c7f0fb072d8a932bd2f Mon Sep 17 00:00:00 2001 From: Isaiah Vita Date: Thu, 20 Jul 2023 14:43:51 -0700 Subject: [PATCH 3/3] move disable endpoint host prefix to sdk; add field to gointeg render method --- .../EndpointMiddlewareGenerator.java | 8 +++--- .../EndpointHostPrefixMiddleware.java | 25 ------------------- .../go/codegen/integration/GoIntegration.java | 4 ++- 3 files changed, 8 insertions(+), 29 deletions(-) diff --git a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/endpoints/EndpointMiddlewareGenerator.java b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/endpoints/EndpointMiddlewareGenerator.java index c50011af9..80b60aa82 100644 --- a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/endpoints/EndpointMiddlewareGenerator.java +++ b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/endpoints/EndpointMiddlewareGenerator.java @@ -222,7 +222,7 @@ private GoWriter.Writable generateMiddlewareResolverBody( "contextBinding", generateContextParamBinding(operationShape, model), "staticContextBinding", generateStaticContextParamBinding(parameters, operationShape), "endpointResolution", generateEndpointResolution(), - "postEndpointResolution", generatePostEndpointResolutionHook(settings, model) + "postEndpointResolution", generatePostEndpointResolutionHook(settings, model, operationShape) ) ); } @@ -411,10 +411,12 @@ private GoWriter.Writable generateEndpointResolution() { ); } - private GoWriter.Writable generatePostEndpointResolutionHook(GoSettings settings, Model model) { + private GoWriter.Writable generatePostEndpointResolutionHook( + GoSettings settings, Model model, OperationShape operation + ) { return (GoWriter writer) -> { for (GoIntegration integration : this.integrations) { - integration.renderPostEndpointResolutionHook(settings, writer, model); + integration.renderPostEndpointResolutionHook(settings, writer, model, Optional.of(operation)); } }; } diff --git a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java index 8477fa330..93484e73f 100644 --- a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java +++ b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/EndpointHostPrefixMiddleware.java @@ -30,7 +30,6 @@ import software.amazon.smithy.model.Model; import software.amazon.smithy.model.knowledge.TopDownIndex; import software.amazon.smithy.model.pattern.SmithyPattern; -import software.amazon.smithy.model.pattern.SmithyPattern.Segment; import software.amazon.smithy.model.shapes.MemberShape; import software.amazon.smithy.model.shapes.OperationShape; import software.amazon.smithy.model.shapes.ServiceShape; @@ -65,30 +64,6 @@ public void processFinalizedModel(GoSettings settings, Model model) { }); } - @Override - public void renderPostEndpointResolutionHook(GoSettings settings, GoWriter writer, Model model) { - boolean written = false; - for (OperationShape operation : endpointPrefixOperations) { - EndpointTrait endpointTrait = operation.expectTrait(EndpointTrait.class); - - for (Segment segment : endpointTrait.getHostPrefix().getLabels()) { - if (segment.isLabel() && segment.getContent().equals("AccountId") && !written) { - writer.write( - """ - ctx = $T(ctx, true) - """, - SymbolUtils.createPointableSymbolBuilder( - "DisableEndpointHostPrefix", SmithyGoDependency.SMITHY_HTTP_TRANSPORT).build() - ); - written = true; - } - } - - } - - } - - @Override public List getClientPlugins() { return runtimeClientPlugins; diff --git a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/GoIntegration.java b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/GoIntegration.java index 9a2fea075..28569dcaf 100644 --- a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/GoIntegration.java +++ b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/integration/GoIntegration.java @@ -26,6 +26,7 @@ import software.amazon.smithy.go.codegen.TriConsumer; import software.amazon.smithy.go.codegen.endpoints.EndpointBuiltInHandler; import software.amazon.smithy.model.Model; +import software.amazon.smithy.model.shapes.OperationShape; import software.amazon.smithy.model.shapes.Shape; /** @@ -201,7 +202,8 @@ default void renderPreEndpointResolutionHook(GoSettings settings, GoWriter write // pass } - default void renderPostEndpointResolutionHook(GoSettings settings, GoWriter writer, Model model) { + default void renderPostEndpointResolutionHook( + GoSettings settings, GoWriter writer, Model model, Optional operation) { // pass }