Skip to content

Commit

Permalink
Codegen changes for aws.Config#Retryer changes
Browse files Browse the repository at this point in the history
  • Loading branch information
skmcgrail committed Jan 12, 2021
1 parent 4ab10e1 commit 0bd2e6b
Showing 1 changed file with 11 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public class AddAwsConfigFields implements GoIntegration {
private static final String RESOLVE_HTTP_CLIENT = "resolveHTTPClient";
private static final String RESOLVE_RETRYER = "resolveRetryer";
private static final String RESOLVE_AWS_CONFIG_ENDPOINT_RESOLVER = "resolveAWSEndpointResolver";
private static final String RESOLVE_AWS_CONFIG_RETRYER_PROVIDER = "resolveAWSRetryerProvider";

private static final List<AwsConfigField> AWS_CONFIG_FIELDS = ListUtils.of(
AwsConfigField.builder()
Expand All @@ -66,6 +67,8 @@ public class AddAwsConfigFields implements GoIntegration {
+ "recoverable failures. When nil the API client will use a default\n"
+ "retryer.")
.resolveFunction(SymbolUtils.createValueSymbolBuilder(RESOLVE_RETRYER).build())
.awsResolveFunction(SymbolUtils.createValueSymbolBuilder(RESOLVE_AWS_CONFIG_RETRYER_PROVIDER)
.build())
.build(),
AwsConfigField.builder()
.name(HTTP_CLIENT_CONFIG_NAME)
Expand Down Expand Up @@ -153,17 +156,22 @@ public void writeAdditionalFiles(

private void writeAwsDefaultResolvers(GoWriter writer) {
writeHttpClientResolver(writer);
writeRetryerResolver(writer);
writeRetryerResolvers(writer);
writeAwsConfigEndpointResolver(writer);
}

private void writeRetryerResolver(GoWriter writer) {
private void writeRetryerResolvers(GoWriter writer) {
writer.openBlock("func $L(o *Options) {", "}", RESOLVE_RETRYER, () -> {
writer.openBlock("if o.$L != nil {", "}", RETRYER_CONFIG_NAME, () -> writer.write("return"));
writer.write("o.$L = $T()", RETRYER_CONFIG_NAME, SymbolUtils.createValueSymbolBuilder("NewStandard",
AwsGoDependency.AWS_RETRY).build());
});
writer.write("");
writer.openBlock("func $L(cfg aws.Config, o *Options) {", "}", RESOLVE_AWS_CONFIG_RETRYER_PROVIDER, () -> {
writer.openBlock("if cfg.$L == nil {", "}", RETRYER_CONFIG_NAME, () -> writer.write("return"));
writer.write("o.$L = cfg.$L()", RETRYER_CONFIG_NAME, RETRYER_CONFIG_NAME);
});
writer.write("");
}

private void writeHttpClientResolver(GoWriter writer) {
Expand Down Expand Up @@ -225,7 +233,7 @@ private void writeAwsConfigConstructor(Model model, ServiceShape service, GoWrit

List<AwsConfigField> configFields = new ArrayList<>(AWS_CONFIG_FIELDS);
// add client specific config fields
for (AwsConfigField cfgField: ResolveClientConfig.AWS_CONFIG_FIELDS) {
for (AwsConfigField cfgField : ResolveClientConfig.AWS_CONFIG_FIELDS) {
configFields.add(cfgField);
}

Expand Down

0 comments on commit 0bd2e6b

Please sign in to comment.