From c3b0ad76e45857960842d255a2a84b7de228693a Mon Sep 17 00:00:00 2001 From: sbiscigl Date: Wed, 12 Aug 2026 15:09:14 -0400 Subject: [PATCH] use correct name for generating local macro on endpoints blob --- .../generators/ServiceNameUtil.java | 15 +++++++++++---- .../endpointrules/EndpointRulesCodegenPlugin.java | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/tools/code-generation/smithy/cpp-codegen/smithy-cpp-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/ServiceNameUtil.java b/tools/code-generation/smithy/cpp-codegen/smithy-cpp-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/ServiceNameUtil.java index a47c2a320c3d..d85763872869 100644 --- a/tools/code-generation/smithy/cpp-codegen/smithy-cpp-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/ServiceNameUtil.java +++ b/tools/code-generation/smithy/cpp-codegen/smithy-cpp-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/ServiceNameUtil.java @@ -8,6 +8,7 @@ import software.amazon.smithy.aws.traits.ServiceTrait; import java.util.Map; +import java.util.Optional; public final class ServiceNameUtil { @@ -170,12 +171,18 @@ public static String getExportMacro(ServiceShape service, Map se * Follows C2J convention: AWS_{UPPERCASED_SERVICE_NAME}_LOCAL * * @param service The service shape to generate the macro for - * @param serviceMap Service ID mappings for namespace overrides (reserved for future consistency with getSmithyServiceName) + * @param serviceMap Service ID mappings, used to resolve the key into namespaceMap + * @param namespaceMap Namespace overrides, keyed by smithy service name; the macro must follow the + * override because the C2J-generated {@code _EXPORTS.h} defines it off + * {@code metadata.classNamePrefix} * @return The local macro in format AWS_{SERVICE_NAME}_LOCAL */ - public static String getLocalMacro(ServiceShape service, Map serviceMap) { - String serviceName = getServiceName(service); - return "AWS_" + serviceName.toUpperCase() + "_LOCAL"; + public static String getLocalMacro(ServiceShape service, Map serviceMap, + Map namespaceMap) { + return Optional.ofNullable(namespaceMap.get(getSmithyServiceName(service, serviceMap))) + .orElseGet(() -> getServiceName(service)) + .toUpperCase() + .transform(name -> "AWS_" + name + "_LOCAL"); } public static boolean isS3CrtProjection(ServiceShape service) { diff --git a/tools/code-generation/smithy/cpp-codegen/smithy-cpp-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/endpointrules/EndpointRulesCodegenPlugin.java b/tools/code-generation/smithy/cpp-codegen/smithy-cpp-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/endpointrules/EndpointRulesCodegenPlugin.java index 110c5d0a3caa..aa632443eb7e 100644 --- a/tools/code-generation/smithy/cpp-codegen/smithy-cpp-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/endpointrules/EndpointRulesCodegenPlugin.java +++ b/tools/code-generation/smithy/cpp-codegen/smithy-cpp-codegen/src/main/java/com/amazonaws/util/awsclientsmithygenerator/generators/endpointrules/EndpointRulesCodegenPlugin.java @@ -76,7 +76,7 @@ private void generateEndpointRules(ServiceShape service, Map ser Map namespaceMap, String pythonExecutable, String bddBytecoderPath, CppWriterDelegator writerDelegator) { String smithyServiceName = ServiceNameUtil.getSmithyServiceName(service, serviceMap); - String localMacro = ServiceNameUtil.getLocalMacro(service, serviceMap); + String localMacro = ServiceNameUtil.getLocalMacro(service, serviceMap, namespaceMap); String namespace = namespaceMap.getOrDefault(smithyServiceName, ServiceNameUtil.getServiceName(service)); String classPrefix = Optional.ofNullable(namespaceMap.get(smithyServiceName)) .map(ServiceNameUtil::capitalize)