diff --git a/tools/code-generation/smithy/codegen/cpp-smoke-tests-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/CppImportContainer.java b/tools/code-generation/smithy/codegen/cpp-smoke-tests-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/CppImportContainer.java index 6c66514d7ba..f841d85236f 100644 --- a/tools/code-generation/smithy/codegen/cpp-smoke-tests-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/CppImportContainer.java +++ b/tools/code-generation/smithy/codegen/cpp-smoke-tests-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/CppImportContainer.java @@ -11,9 +11,11 @@ import software.amazon.smithy.codegen.core.Symbol; import java.util.Collections; + import java.util.Comparator; import java.util.HashSet; import java.util.Set; import java.util.Map; + import java.util.TreeSet; public final class CppImportContainer implements ImportContainer { @@ -27,8 +29,8 @@ public CppImportContainer(String namespace) { String clientNamespace = SmokeTestsParser.removeSpaces(namespace); String folderNamespace = SmokeTestsParser.toKebabCase(namespace); this.c2jNamespace = SmithyC2JNamespaceMap.getInstance().getC2JServiceName(folderNamespace); - this.coreHeaders = new HashSet<>(); - this.dynamicHeaders = new HashSet<>(); + this.coreHeaders = new TreeSet<>(Comparator.naturalOrder()); //This maintains lexicographical order + this.dynamicHeaders = new TreeSet<>(Comparator.naturalOrder()); Collections.addAll(coreHeaders, "aws/core/client/AsyncCallerContext.h", "aws/core/client/AsyncCallerContext.h", diff --git a/tools/code-generation/smithy/codegen/cpp-smoke-tests-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/SmokeTestsParser.java b/tools/code-generation/smithy/codegen/cpp-smoke-tests-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/SmokeTestsParser.java index 1d8eaa71eff..7a578a2d512 100644 --- a/tools/code-generation/smithy/codegen/cpp-smoke-tests-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/SmokeTestsParser.java +++ b/tools/code-generation/smithy/codegen/cpp-smoke-tests-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/SmokeTestsParser.java @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Set; +import java.util.Comparator; import software.amazon.smithy.build.PluginContext; import software.amazon.smithy.aws.smoketests.model.AwsSmokeTestModel; @@ -280,6 +281,7 @@ public Map > extractServiceSmokeTests() filter(operationShape -> operationShape.getInput().isPresent()). filter(operationShape -> operationShape.getTrait(SmokeTestsTrait.class).isPresent() ). filter(operationShape -> operationToServiceMap.containsKey(operationShape.getId()) ). + sorted(Comparator.comparing(OperationShape::getId)). forEach(operationShape -> { SmokeTestsTrait smokeTestsTrait = operationShape.getTrait(SmokeTestsTrait.class).get(); //get serviceShape diff --git a/tools/scripts/run_code_generation.py b/tools/scripts/run_code_generation.py index 57376c24ba9..8da7c9b547f 100644 --- a/tools/scripts/run_code_generation.py +++ b/tools/scripts/run_code_generation.py @@ -155,9 +155,9 @@ def collect_available_models(models_dir: str, endpoint_rules_dir: str, legacy_ma with open(models_dir + "/" + model_file_date[0], 'r') as json_file: model = json.load(json_file) #get service id. It has to exist, else continue - if ("metadata" in model and "serviceId" in model["metadata"]): + if "metadata" in model and any(k in model["metadata"] for k in ["serviceId", "serviceFullName"]): if key not in legacy_mapped_services: - key = model["metadata"]["serviceId"] + key = model["metadata"].get("serviceId", model["metadata"].get("serviceFullName")) #convert into smithy case convention key = key.lower().replace(' ', '-')