Skip to content

Commit b2dc035

Browse files
Generator cleanup: remove dead code and templates, add check for missing ep rules
1 parent 0ea6d35 commit b2dc035

21 files changed

+32
-1668
lines changed

tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/generators/cpp/CppClientGenerator.java

Lines changed: 9 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -102,33 +102,22 @@ public SdkFileEntry[] generateSourceFiles(ServiceModel serviceModel) throws Exce
102102
}
103103

104104
fileList.addAll(generateClientSourceFile(serviceModels));
105-
if (serviceModel.getEndpointRules() == null) {
106-
fileList.add(generateARNHeaderFile(serviceModel));
107-
fileList.add(generateARNSourceFile(serviceModel));
108-
}
109105
fileList.add(generateClientConfigurationFile(serviceModel));
110-
if (serviceModel.getEndpointRules() != null) {
111-
fileList.add(generateEndpointRulesHeaderFile(serviceModel));
112-
fileList.add(generateEndpointRulesSourceFile(serviceModel));
113-
fileList.add(generateEndpointProviderHeaderFile(serviceModel));
114-
fileList.add(generateEndpointProviderSourceFile(serviceModel));
115-
116-
if (serviceModel.hasServiceSpecificClientConfig()) {
117-
fileList.add(generateServiceClientConfigurationHeaderFile(serviceModel));
118-
fileList.add(generateServiceClientConfigurationSourceFile(serviceModel));
119-
}
120-
} else {
121-
fileList.add(generateRegionHeaderFile(serviceModel));
122-
fileList.add(generateRegionSourceFile(serviceModel));
106+
fileList.add(generateEndpointRulesHeaderFile(serviceModel));
107+
fileList.add(generateEndpointRulesSourceFile(serviceModel));
108+
fileList.add(generateEndpointProviderHeaderFile(serviceModel));
109+
fileList.add(generateEndpointProviderSourceFile(serviceModel));
110+
111+
if (serviceModel.hasServiceSpecificClientConfig()) {
112+
fileList.add(generateServiceClientConfigurationHeaderFile(serviceModel));
113+
fileList.add(generateServiceClientConfigurationSourceFile(serviceModel));
123114
}
124115
fileList.add(generateErrorsHeaderFile(serviceModel));
125116
fileList.add(generateErrorMarshallerHeaderFile(serviceModel));
126117
fileList.add(generateErrorSourceFile(serviceModel));
127118
fileList.add(generateErrorMarshallingSourceFile(serviceModel));
128119
fileList.add(generateServiceRequestHeader(serviceModel));
129-
if (serviceModel.getEndpointRules() != null) {
130-
fileList.add(generateServiceRequestSource(serviceModel));
131-
}
120+
fileList.add(generateServiceRequestSource(serviceModel));
132121
fileList.add(generateExportHeader(serviceModel));
133122
fileList.add(generateCmakeFile(serviceModel));
134123

@@ -462,16 +451,6 @@ protected SdkFileEntry generateErrorsHeaderFile(ServiceModel serviceModel) throw
462451
return makeFile(template, context, fileName, true);
463452
}
464453

465-
protected SdkFileEntry generateARNHeaderFile(final ServiceModel serviceModel) throws Exception {
466-
// no-op for services other than S3.
467-
return null;
468-
}
469-
470-
protected SdkFileEntry generateARNSourceFile(final ServiceModel serviceModel) throws Exception {
471-
// no-op for services other than S3.
472-
return null;
473-
}
474-
475454
protected SdkFileEntry generateClientConfigurationFile(final ServiceModel serviceModel) throws Exception {
476455
// no-op for services other than S3Crt.
477456
return null;
@@ -502,30 +481,6 @@ private SdkFileEntry generateServiceRequestSource(final ServiceModel serviceMode
502481
return makeFile(template, context, fileName, true);
503482
}
504483

505-
protected SdkFileEntry generateRegionHeaderFile(ServiceModel serviceModel) throws Exception {
506-
507-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/EndpointEnumHeader.vm", StandardCharsets.UTF_8.name());
508-
509-
VelocityContext context = createContext(serviceModel);
510-
context.put("exportValue", String.format("AWS_%s_API", serviceModel.getMetadata().getClassNamePrefix().toUpperCase()));
511-
512-
String fileName = String.format("include/aws/%s/%sEndpoint.h", serviceModel.getMetadata().getProjectName(),
513-
serviceModel.getMetadata().getClassNamePrefix());
514-
515-
return makeFile(template, context, fileName, true);
516-
}
517-
518-
protected SdkFileEntry generateRegionSourceFile(ServiceModel serviceModel) throws Exception {
519-
520-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/EndpointEnumSource.vm", StandardCharsets.UTF_8.name());
521-
522-
VelocityContext context = createContext(serviceModel);
523-
context.put("endpointMapping", computeEndpointMappingForService(serviceModel));
524-
525-
String fileName = String.format("source/%sEndpoint.cpp", serviceModel.getMetadata().getClassNamePrefix());
526-
return makeFile(template, context, fileName, true);
527-
}
528-
529484
protected SdkFileEntry generateEndpointRulesHeaderFile(ServiceModel serviceModel) throws Exception {
530485
String templateName = "/com/amazonaws/util/awsclientgenerator/velocity/cpp/endpoint/EndpointRulesHeader.vm";
531486
String fileName = String.format("include/aws/%s/%sEndpointRules.h", serviceModel.getMetadata().getProjectName(),

tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/generators/cpp/ec2/Ec2CppClientGenerator.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -763,20 +763,4 @@ public SdkFileEntry[] generateSourceFiles(ServiceModel serviceModel) throws Exce
763763

764764
return super.generateSourceFiles(serviceModel);
765765
}
766-
767-
@Override
768-
protected SdkFileEntry generateRegionSourceFile(ServiceModel serviceModel) throws Exception {
769-
770-
// Customized template for EC2 endpoints
771-
// TODO: cleanup with a proper dualstack endpoints support
772-
Template template = velocityEngine.getTemplate(
773-
"/com/amazonaws/util/awsclientgenerator/velocity/cpp/ec2/EC2EndpointEnumSource.vm",
774-
StandardCharsets.UTF_8.name());
775-
776-
VelocityContext context = createContext(serviceModel);
777-
context.put("endpointMapping", computeEndpointMappingForService(serviceModel));
778-
779-
String fileName = String.format("source/%sEndpoint.cpp", serviceModel.getMetadata().getClassNamePrefix());
780-
return makeFile(template, context, fileName, true);
781-
}
782766
}

tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/generators/cpp/eventbridge/EventBridgeCppClientGenerator.java

Lines changed: 4 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -40,26 +40,10 @@ protected List<SdkFileEntry> generateClientSourceFile(final List<ServiceModel> s
4040
VelocityContext context = createContext(serviceModels.get(i));
4141
context.put("CppViewHelper", CppViewHelper.class);
4242

43-
if (serviceModels.get(i).getEndpointRules() != null) {
44-
// Store the flag of endpoint being overwritten in the config
45-
context.put("customEndpointUsed", true);
46-
// Instruct code gen to use DefaultAuthSignerProvider with SigV4A instead of default AWSAuthV4Signer
47-
context.put("multiRegionAccessPointSupported", true);
48-
} else {
49-
if (serviceModels.get(i).getOperations().get("PutEvents").getRequest().getShape().getMembers().containsKey("EndpointId")) {
50-
// Override PutEvents function body
51-
Map<String, String> templateOverride = new HashMap<>();
52-
String putEventsTemplateKey = new StringBuilder(serviceModels.get(i).getServiceName()).append("_PutEvents_OperationOutcome").toString();
53-
String putEventsTemplateVal = "com/amazonaws/util/awsclientgenerator/velocity/cpp/eventbridge/PutEvents_OperationOutcome.vm";
54-
templateOverride.put(putEventsTemplateKey, putEventsTemplateVal);
55-
context.put("TemplateOverride", templateOverride);
56-
57-
// Store the flag of endpoint being overwritten in the config
58-
context.put("customEndpointUsed", true);
59-
// Instruct code gen to use DefaultAuthSignerProvider with SigV4A instead of default AWSAuthV4Signer
60-
context.put("multiRegionAccessPointSupported", true);
61-
}
62-
}
43+
// Store the flag of endpoint being overwritten in the config
44+
context.put("customEndpointUsed", true);
45+
// Instruct code gen to use DefaultAuthSignerProvider with SigV4A instead of default AWSAuthV4Signer
46+
context.put("multiRegionAccessPointSupported", true);
6347

6448
final String fileName;
6549
if (i == 0) {
@@ -94,30 +78,4 @@ protected SdkFileEntry generateClientHeaderFile(final ServiceModel serviceModel)
9478

9579
return makeFile(template, context, fileName, true);
9680
}
97-
98-
@Override
99-
protected SdkFileEntry generateRegionHeaderFile(ServiceModel serviceModel) throws Exception {
100-
101-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/eventbridge/EndpointEnumHeader.vm", StandardCharsets.UTF_8.name());
102-
103-
VelocityContext context = createContext(serviceModel);
104-
context.put("exportValue", String.format("AWS_%s_API", serviceModel.getMetadata().getClassNamePrefix().toUpperCase()));
105-
106-
String fileName = String.format("include/aws/%s/%sEndpoint.h", serviceModel.getMetadata().getProjectName(),
107-
serviceModel.getMetadata().getClassNamePrefix());
108-
109-
return makeFile(template, context, fileName, true);
110-
}
111-
112-
@Override
113-
protected SdkFileEntry generateRegionSourceFile(ServiceModel serviceModel) throws Exception {
114-
115-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/eventbridge/EndpointEnumSource.vm", StandardCharsets.UTF_8.name());
116-
117-
VelocityContext context = createContext(serviceModel);
118-
context.put("endpointMapping", computeEndpointMappingForService(serviceModel));
119-
120-
String fileName = String.format("source/%sEndpoint.cpp", serviceModel.getMetadata().getClassNamePrefix());
121-
return makeFile(template, context, fileName, true);
122-
}
12381
}

tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/generators/cpp/s3/S3RestXmlCppClientGenerator.java

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -571,56 +571,6 @@ protected SdkFileEntry generateErrorMarshallingSourceFile(final ServiceModel ser
571571
return makeFile(template, context, fileName, true);
572572
}
573573

574-
@Override
575-
protected SdkFileEntry generateRegionHeaderFile(ServiceModel serviceModel) throws Exception {
576-
577-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/s3/S3EndpointEnumHeader.vm", StandardCharsets.UTF_8.name());
578-
579-
VelocityContext context = createContext(serviceModel);
580-
context.put("exportValue", String.format("AWS_%s_API", serviceModel.getMetadata().getClassNamePrefix().toUpperCase()));
581-
582-
String fileName = String.format("include/aws/%s/%sEndpoint.h", serviceModel.getMetadata().getProjectName(),
583-
serviceModel.getMetadata().getClassNamePrefix());
584-
585-
return makeFile(template, context, fileName, true);
586-
}
587-
588-
@Override
589-
protected SdkFileEntry generateRegionSourceFile(ServiceModel serviceModel) throws Exception {
590-
591-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/s3/S3EndpointEnumSource.vm", StandardCharsets.UTF_8.name());
592-
593-
VelocityContext context = createContext(serviceModel);
594-
595-
String fileName = String.format("source/%sEndpoint.cpp", serviceModel.getMetadata().getClassNamePrefix());
596-
597-
return makeFile(template, context, fileName, true);
598-
}
599-
600-
@Override
601-
protected SdkFileEntry generateARNHeaderFile(final ServiceModel serviceModel) throws Exception {
602-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/s3/S3ARNHeader.vm", StandardCharsets.UTF_8.name());
603-
604-
VelocityContext context = createContext(serviceModel);
605-
context.put("exportValue", String.format("AWS_%s_API", serviceModel.getMetadata().getClassNamePrefix().toUpperCase()));
606-
607-
String fileName = String.format("include/aws/%s/%sARN.h", serviceModel.getMetadata().getProjectName(),
608-
serviceModel.getMetadata().getClassNamePrefix());
609-
610-
return makeFile(template, context, fileName, true);
611-
}
612-
613-
@Override
614-
protected SdkFileEntry generateARNSourceFile(final ServiceModel serviceModel) throws Exception {
615-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/s3/S3ARNSource.vm", StandardCharsets.UTF_8.name());
616-
617-
VelocityContext context = createContext(serviceModel);
618-
619-
String fileName = String.format("source/%sARN.cpp", serviceModel.getMetadata().getClassNamePrefix());
620-
621-
return makeFile(template, context, fileName, true);
622-
}
623-
624574
@Override
625575
protected SdkFileEntry generateClientConfigurationFile(final ServiceModel serviceModel) throws Exception {
626576
if ("S3-CRT".equalsIgnoreCase(serviceModel.getMetadata().getProjectName())) {

tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/generators/cpp/s3control/S3ControlRestXmlCppClientGenerator.java

Lines changed: 5 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77

88
import com.amazonaws.util.awsclientgenerator.domainmodels.SdkFileEntry;
99
import com.amazonaws.util.awsclientgenerator.domainmodels.codegeneration.ServiceModel;
10+
import com.amazonaws.util.awsclientgenerator.domainmodels.codegeneration.Shape;
11+
import com.amazonaws.util.awsclientgenerator.domainmodels.codegeneration.ShapeMember;
12+
import com.amazonaws.util.awsclientgenerator.domainmodels.codegeneration.cpp.CppShapeInformation;
1013
import com.amazonaws.util.awsclientgenerator.domainmodels.codegeneration.cpp.CppViewHelper;
1114
import com.amazonaws.util.awsclientgenerator.generators.cpp.RestXmlCppClientGenerator;
1215
import org.apache.velocity.Template;
@@ -15,7 +18,9 @@
1518
import java.nio.charset.StandardCharsets;
1619
import java.util.ArrayList;
1720
import java.util.HashSet;
21+
import java.util.LinkedHashMap;
1822
import java.util.List;
23+
import java.util.Map;
1924
import java.util.Set;
2025

2126
public class S3ControlRestXmlCppClientGenerator extends RestXmlCppClientGenerator {
@@ -118,56 +123,6 @@ protected List<SdkFileEntry> generateClientSourceFile(final List<ServiceModel> s
118123
return sourceFiles;
119124
}
120125

121-
@Override
122-
protected SdkFileEntry generateRegionHeaderFile(ServiceModel serviceModel) throws Exception {
123-
124-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/s3control/S3ControlEndpointEnumHeader.vm", StandardCharsets.UTF_8.name());
125-
126-
VelocityContext context = createContext(serviceModel);
127-
context.put("exportValue", String.format("AWS_%s_API", serviceModel.getMetadata().getClassNamePrefix().toUpperCase()));
128-
129-
String fileName = String.format("include/aws/%s/%sEndpoint.h", serviceModel.getMetadata().getProjectName(),
130-
serviceModel.getMetadata().getClassNamePrefix());
131-
132-
return makeFile(template, context, fileName, true);
133-
}
134-
135-
@Override
136-
protected SdkFileEntry generateRegionSourceFile(ServiceModel serviceModel) throws Exception {
137-
138-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/s3control/S3ControlEndpointEnumSource.vm", StandardCharsets.UTF_8.name());
139-
140-
VelocityContext context = createContext(serviceModel);
141-
142-
String fileName = String.format("source/%sEndpoint.cpp", serviceModel.getMetadata().getClassNamePrefix());
143-
144-
return makeFile(template, context, fileName, true);
145-
}
146-
147-
@Override
148-
protected SdkFileEntry generateARNHeaderFile(final ServiceModel serviceModel) throws Exception {
149-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/s3control/S3ControlARNHeader.vm", StandardCharsets.UTF_8.name());
150-
151-
VelocityContext context = createContext(serviceModel);
152-
context.put("exportValue", String.format("AWS_%s_API", serviceModel.getMetadata().getClassNamePrefix().toUpperCase()));
153-
154-
String fileName = String.format("include/aws/%s/%sARN.h", serviceModel.getMetadata().getProjectName(),
155-
serviceModel.getMetadata().getClassNamePrefix());
156-
157-
return makeFile(template, context, fileName, true);
158-
}
159-
160-
@Override
161-
protected SdkFileEntry generateARNSourceFile(final ServiceModel serviceModel) throws Exception {
162-
Template template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/s3control/S3ControlARNSource.vm", StandardCharsets.UTF_8.name());
163-
164-
VelocityContext context = createContext(serviceModel);
165-
166-
String fileName = String.format("source/%sARN.cpp", serviceModel.getMetadata().getClassNamePrefix());
167-
168-
return makeFile(template, context, fileName, true);
169-
}
170-
171126
@Override
172127
protected void addRequestIdToResults(final ServiceModel serviceModel) {
173128
addToAllResultsShape(serviceModel, "requestId", "RequestId", "x-amz-request-id", "AWS Request Id value");

tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/main.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,22 @@ public static void main(String[] args) throws IOException {
8686
String serviceName = argPairs.get(SERVICE_OPTION);
8787
boolean enableVirtualOperations = argPairs.containsKey(ENABLE_VIRTUAL_OPERATIONS);
8888

89-
String arbitraryJson = readFile(argPairs.getOrDefault(INPUT_FILE_NAME, ""));
90-
String endpointRules = null;
91-
if (argPairs.containsKey(ENDPOINT_RULE_SET)) {
92-
endpointRules = readFile(argPairs.get(ENDPOINT_RULE_SET));
89+
if ((!argPairs.containsKey(INPUT_FILE_NAME) || !argPairs.containsKey(ENDPOINT_RULE_SET))
90+
&& (!argPairs.containsKey(DEFAULTS_OPTION) && !argPairs.containsKey(PARTITIONS_OPTION))) {
91+
System.err.println("Error: inputfile c2j model file AND endpoint-rule-set are mandatory for code generation!");
92+
System.exit(-1);
93+
return;
9394
}
95+
String arbitraryJson = readFile(argPairs.getOrDefault(INPUT_FILE_NAME, ""));
96+
String endpointRules = argPairs.containsKey(ENDPOINT_TESTS) ? readFile(argPairs.get(ENDPOINT_RULE_SET)) : null;
97+
9498
String endpointRuleTests = null;
9599
if (argPairs.containsKey(ENDPOINT_TESTS)) {
96100
endpointRuleTests = readFile(argPairs.get(ENDPOINT_TESTS));
101+
} else if (generateTests) {
102+
System.err.println("Error: endpoint-tests file is mandatory for generate-tests!");
103+
System.exit(-1);
104+
return;
97105
}
98106

99107
String outputFileName = null;

tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/EndpointEnumHeader.vm

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)