diff --git a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/Postprocessor.java b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/Postprocessor.java index d13fd53bebf..c6af1e0ca53 100644 --- a/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/Postprocessor.java +++ b/packages/http-client-java/generator/http-client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/postprocessor/Postprocessor.java @@ -143,6 +143,7 @@ private static String getBaseDirectory(NewPlugin plugin) { public static Class loadCustomizationClassFromJavaCode(String filePath, String baseDirectory, Logger logger) { + final Path originCustomizationFile = Paths.get(filePath); Path customizationFile = Paths.get(filePath); if (!customizationFile.isAbsolute()) { if (baseDirectory != null) { @@ -155,7 +156,7 @@ public static Class loadCustomizationClassFromJavaCode( return loadCustomizationClass(customizationFile.getFileName().toString().replace(".java", ""), code); } catch (IOException e) { logger.error("Cannot read customization from base directory {} and file {}", baseDirectory, - customizationFile); + originCustomizationFile); return null; } } diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/ResourceType.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/ResourceType.java index 6c992bba347..399c562af28 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/ResourceType.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/model/ResourceType.java @@ -9,7 +9,7 @@ public enum ResourceType { PROXY_RESOURCE(ResourceTypeName.PROXY_RESOURCE), SUB_RESOURCE(ResourceTypeName.SUB_RESOURCE); - private String className; + private final String className; ResourceType(String className) { this.className = className; diff --git a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java index 86e227749da..74c53e99799 100644 --- a/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java +++ b/packages/http-client-java/generator/http-client-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/transformer/ResourceTypeNormalization.java @@ -64,7 +64,7 @@ public CodeModel process(CodeModel codeModel) { Optional parentType = getObjectParent(compositeType); if (parentType.isPresent()) { getSchemaResourceType(parentType.get()).ifPresent(type -> { - renameSchemaOnResourceType(parentType.get(), type); + correctDeduplicatedName(parentType.get()); adaptForParentSchema(compositeType, parentType.get(), type); }); @@ -270,24 +270,16 @@ private static Optional getSchemaResourceType(ObjectSchema composi } /** - * Rename the schema based on the resource type. + * Correct the schema name based on the resource type. * - * @param compositeType the object schema to rename - * @param type the resource type + * @param compositeType the object schema to correct */ - private static void renameSchemaOnResourceType(ObjectSchema compositeType, ResourceType type) { - switch (type) { - case SUB_RESOURCE: - compositeType.getLanguage().getJava().setName(ResourceTypeName.SUB_RESOURCE); - break; - - case PROXY_RESOURCE: - compositeType.getLanguage().getJava().setName(ResourceTypeName.PROXY_RESOURCE); - break; - - case RESOURCE: - compositeType.getLanguage().getJava().setName(ResourceTypeName.RESOURCE); - break; + private static void correctDeduplicatedName(ObjectSchema compositeType) { + final String deduplicateSuffix = "AutoGenerated"; + final String javaName = Utils.getJavaName(compositeType); + if (javaName.contains(deduplicateSuffix)) { + int index = javaName.indexOf(deduplicateSuffix); + compositeType.getLanguage().getJava().setName(javaName.substring(0, index)); } }