Skip to content

Commit

Permalink
Upgrade to Smithy 1.39 (#452)
Browse files Browse the repository at this point in the history
  • Loading branch information
isaiahvita authored Sep 27, 2023
1 parent 2be48c6 commit c962dc4
Show file tree
Hide file tree
Showing 9 changed files with 104 additions and 85 deletions.
2 changes: 1 addition & 1 deletion codegen/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
smithyVersion=1.37.0
smithyVersion=1.39.0
smithyGradleVersion=0.7.0
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ private static String getAddEndpointMiddlewareFuncName(String operationName) {
}

private static String getExportedParameterName(Parameter parameter) {
return StringUtils.capitalize(parameter.getName().asString());
return StringUtils.capitalize(parameter.getName().getName().getValue());
}

private static Symbol parameterAsSymbol(Parameter parameter) {
Expand Down Expand Up @@ -126,9 +126,9 @@ public void processFinalizedModel(GoSettings settings, Model model) {
if (rulesetOpt.isPresent()) {
var clientContextParams = clientContextParamsTrait.get();
var parameters = rulesetOpt.get().getParameters();
parameters.toList().stream().forEach(param -> {
parameters.forEach(param -> {
if (
clientContextParams.getParameters().containsKey(param.getName().asString())
clientContextParams.getParameters().containsKey(param.getName().getName().getValue())
&& !param.getBuiltIn().isPresent()
) {
var documentation = param.getDocumentation().isPresent()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import static software.amazon.smithy.go.codegen.GoWriter.goTemplate;

import java.util.Iterator;
import java.util.List;
import java.util.Optional;
import software.amazon.smithy.codegen.core.CodegenException;
Expand Down Expand Up @@ -104,8 +105,8 @@ private GoWriter.Writable generateMiddlewareType(
return (GoWriter w) -> {
w.openBlock("type $L struct {", "}", getMiddlewareObjectName(operationName), () -> {
w.write("EndpointResolver $T", SymbolUtils.createValueSymbolBuilder("EndpointResolverV2").build());
for (Parameter param : parameters.toList()) {
if (param.getBuiltIn().isPresent()) {
for (Iterator<Parameter> iter = parameters.iterator(); iter.hasNext();) {
if (iter.next().getBuiltIn().isPresent()) {
for (GoIntegration integration : this.integrations) {
var builtInHandlerOpt = integration.getEndpointBuiltinHandler();
if (builtInHandlerOpt.isPresent()) {
Expand All @@ -116,11 +117,10 @@ private GoWriter.Writable generateMiddlewareType(
}
}


if (clientContextParamsTrait.isPresent()) {
var clientContextParams = clientContextParamsTrait.get();
parameters.toList().stream().forEach(param -> {
if (clientContextParams.getParameters().containsKey(param.getName().asString())
parameters.forEach(param -> {
if (clientContextParams.getParameters().containsKey(param.getName().getName().getValue())
&& !param.getBuiltIn().isPresent()) {
w.write("$L $P", getExportedParameterName(param), parameterAsSymbol(param));
}
Expand Down Expand Up @@ -295,8 +295,8 @@ private GoWriter.Writable generateLegacyResolverValidator() {

private GoWriter.Writable generateBuiltInResolverInvocation(Parameters parameters) {
return (GoWriter writer) -> {
for (Parameter parameter : parameters.toList()) {
if (parameter.getBuiltIn().isPresent()) {
for (Iterator<Parameter> iter = parameters.iterator(); iter.hasNext();) {
if (iter.next().getBuiltIn().isPresent()) {
for (GoIntegration integration : this.integrations) {
var builtInHandlerOpt = integration.getEndpointBuiltinHandler();
if (builtInHandlerOpt.isPresent()) {
Expand All @@ -311,12 +311,11 @@ private GoWriter.Writable generateBuiltInResolverInvocation(Parameters parameter

private GoWriter.Writable generateClientContextParamBinding(
Parameters parameters, Optional<ClientContextParamsTrait> clientContextParamsTrait) {

return (GoWriter writer) -> {
if (clientContextParamsTrait.isPresent()) {
var clientContextParams = clientContextParamsTrait.get();
parameters.toList().stream().forEach(param -> {
if (clientContextParams.getParameters().containsKey(param.getName().asString())
parameters.forEach(param -> {
if (clientContextParams.getParameters().containsKey(param.getName().getName().getValue())
&& !param.getBuiltIn().isPresent()
) {
var name = getExportedParameterName(param);
Expand Down Expand Up @@ -355,9 +354,9 @@ private GoWriter.Writable generateContextParamBinding(OperationShape operationSh
private GoWriter.Writable generateStaticContextParamBinding(Parameters parameters, OperationShape operationShape) {
var staticContextParamTraitOpt = operationShape.getTrait(StaticContextParamsTrait.class);
return (GoWriter writer) -> {
parameters.toList().stream().forEach(param -> {
parameters.forEach(param -> {
if (staticContextParamTraitOpt.isPresent()) {
var paramName = param.getName().asString();
var paramName = param.getName().getName().getValue();

var staticParam = staticContextParamTraitOpt
.get()
Expand Down Expand Up @@ -453,8 +452,8 @@ private GoWriter.Writable generateMiddlewareAdder(

private GoWriter.Writable generateBuiltInInitialization(Parameters parameters) {
return (GoWriter writer) -> {
for (Parameter parameter : parameters.toList()) {
if (parameter.getBuiltIn().isPresent()) {
for (Iterator<Parameter> iter = parameters.iterator(); iter.hasNext();) {
if (iter.next().getBuiltIn().isPresent()) {
for (GoIntegration integration : this.integrations) {
var builtInHandlerOpt = integration.getEndpointBuiltinHandler();
if (builtInHandlerOpt.isPresent()) {
Expand All @@ -473,9 +472,9 @@ private GoWriter.Writable generateClientContextParamInitialization(
return (GoWriter writer) -> {
if (clientContextParamsTrait.isPresent()) {
var clientContextParams = clientContextParamsTrait.get();
parameters.toList().stream().forEach(param -> {
parameters.forEach(param -> {
if (
clientContextParams.getParameters().containsKey(param.getName().asString())
clientContextParams.getParameters().containsKey(param.getName().getName().getValue())
&& !param.getBuiltIn().isPresent()
) {
var name = getExportedParameterName(param);
Expand All @@ -496,7 +495,7 @@ public static String getMiddlewareObjectName(String operationName) {
}

public static String getExportedParameterName(Parameter parameter) {
return StringUtils.capitalize(parameter.getName().asString());
return StringUtils.capitalize(parameter.getName().getName().getValue());
}

public static Symbol parameterAsSymbol(Parameter parameter) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,18 @@

import java.io.Serializable;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
import software.amazon.smithy.codegen.core.Symbol;
import software.amazon.smithy.go.codegen.GoWriter;
import software.amazon.smithy.go.codegen.SmithyGoDependency;
import software.amazon.smithy.go.codegen.SymbolUtils;
import software.amazon.smithy.model.node.StringNode;
import software.amazon.smithy.rulesengine.language.EndpointRuleSet;
import software.amazon.smithy.rulesengine.language.eval.Value;
import software.amazon.smithy.rulesengine.language.evaluation.value.Value;
import software.amazon.smithy.rulesengine.language.syntax.parameters.Parameter;
import software.amazon.smithy.rulesengine.language.syntax.parameters.Parameters;
import software.amazon.smithy.utils.MapUtils;
Expand Down Expand Up @@ -93,12 +95,12 @@ private GoWriter.Writable generateParametersTypeDocs() {
private GoWriter.Writable generateParametersMembers(Parameters parameters) {
return (GoWriter w) -> {
w.indent();
parameters.toList().stream().forEach((parameter) -> {
parameters.forEach((parameter) -> {
var writeChain = new GoWriter.ChainWritable()
.add(parameter.getDocumentation(), GoWriter::goTemplate)
// TODO[GH-25977529]: fix incorrect wrapping in generated comment
.add(parameter.isRequired(), goTemplate("Parameter is required."))
.add(parameter.getDefaultValue(), (defaultValue) -> {
.add(parameter.getDefault(), (defaultValue) -> {
return goTemplate("Defaults to " + defaultValue + " if no value is provided.");
})
.add(parameter.getBuiltIn(), GoWriter::goTemplate)
Expand Down Expand Up @@ -131,7 +133,7 @@ private GoWriter.Writable generateDefaultsMethod(Parameters parameters) {
"funcName", DEFAULT_VALUE_FUNC_NAME)),
"setDefaults", (GoWriter.Writable) (GoWriter w) -> {
sortParameters(parameters).forEach((parameter) -> {
parameter.getDefaultValue().ifPresent(defaultValue -> {
parameter.getDefault().ifPresent(defaultValue -> {
w.writeGoTemplate("""
if p.$memberName:L == nil {
p.$memberName:L = $defaultValue:W
Expand All @@ -151,10 +153,10 @@ private GoWriter.Writable generateDefaultValue(Parameter parameter, Value defaul
return switch (parameter.getType()) {
case STRING -> goTemplate("$ptrString:T($value:S)", MapUtils.of(
"ptrString", SymbolUtils.createValueSymbolBuilder("String", SmithyGoDependency.SMITHY_PTR).build(),
"value", defaultValue.expectString()));
"value", defaultValue.expectStringValue()));
case BOOLEAN -> goTemplate("$ptrBool:T($value:L)", MapUtils.of(
"ptrBool", SymbolUtils.createValueSymbolBuilder("Bool", SmithyGoDependency.SMITHY_PTR).build(),
"value", defaultValue.expectBool()));
"value", defaultValue.expectBooleanValue()));
};
}

Expand Down Expand Up @@ -206,8 +208,8 @@ public static Symbol parameterAsSymbol(Parameter parameter) {
}

public static boolean haveRequiredParameters(Parameters parameters) {
for (Parameter parameter : parameters.toList()) {
if (parameter.isRequired()) {
for (Iterator<Parameter> iter = parameters.iterator(); iter.hasNext();) {
if (iter.next().isRequired()) {
return true;
}
}
Expand All @@ -216,7 +218,7 @@ public static boolean haveRequiredParameters(Parameters parameters) {
}

public static String getExportedParameterName(Parameter parameter) {
return StringUtils.capitalize(parameter.getName().asString());
return StringUtils.capitalize(parameter.getName().getName().getValue());
}

public static String getExportedParameterName(StringNode name) {
Expand Down Expand Up @@ -245,7 +247,9 @@ public EndpointParametersGenerator build() {
}

public static Stream<Parameter> sortParameters(Parameters parameters) {
return parameters.toList().stream().sorted(new Sorted());
return StreamSupport
.stream(parameters.spliterator(), false)
.sorted(new Sorted());
}

public static final class Sorted implements Comparator<Parameter>, Serializable {
Expand Down Expand Up @@ -274,7 +278,7 @@ public int compare(Parameter a, Parameter b) {
return requiredOption;
}

return a.getName().asString().compareTo(b.getName().asString());
return a.getName().getName().getValue().compareTo(b.getName().getName().getValue());
}
}
}
Loading

0 comments on commit c962dc4

Please sign in to comment.