diff --git a/datamodel/odata-generator-utility/src/main/java/com/sap/cloud/sdk/datamodel/odata/utility/NamingUtils.java b/datamodel/odata-generator-utility/src/main/java/com/sap/cloud/sdk/datamodel/odata/utility/NamingUtils.java index 530854181..d918ef59b 100644 --- a/datamodel/odata-generator-utility/src/main/java/com/sap/cloud/sdk/datamodel/odata/utility/NamingUtils.java +++ b/datamodel/odata-generator-utility/src/main/java/com/sap/cloud/sdk/datamodel/odata/utility/NamingUtils.java @@ -79,11 +79,11 @@ public static String serviceNameToBaseJavaClassName( @Nonnull final String servi formattedName = formattedName - .replace("ODataServiceFor", "") - .replace("RemoteApiFor", "") - .replace("ApiFor", "") - .replace("Api", "") - .replaceAll("Service$", ""); + .replaceAll("O(data|DATA|Data)S(ervice|ERVICE)F(or|OR)", "") + .replaceAll("R(emote|EMOTE)A(pi|PI)F(or|OR)", "") + .replaceAll("A(pi|PI)F(or|OR)", "") + .replaceAll("A(pi|PI)", "") + .replaceAll("S(ervice|ERVICE)$", ""); return formattedName; } diff --git a/datamodel/odata-generator-utility/src/test/java/com/sap/cloud/sdk/datamodel/odata/utility/NamingUtilsTest.java b/datamodel/odata-generator-utility/src/test/java/com/sap/cloud/sdk/datamodel/odata/utility/NamingUtilsTest.java index 2fd2fcaab..674ffc70b 100644 --- a/datamodel/odata-generator-utility/src/test/java/com/sap/cloud/sdk/datamodel/odata/utility/NamingUtilsTest.java +++ b/datamodel/odata-generator-utility/src/test/java/com/sap/cloud/sdk/datamodel/odata/utility/NamingUtilsTest.java @@ -28,7 +28,9 @@ private static Stream getClassTestCases() Arguments.of("Lower,enumeration", "LowerEnumeration"), Arguments.of("KeepCamelCase", "KeepCamelCase"), Arguments.of("handle_snake_case", "HandleSnakeCase"), - Arguments.of("OData Service for Business Partner", "BusinessPartner")); + Arguments.of("OData Service for Business Partner", "BusinessPartner"), + Arguments.of("API MATERIAL DOCUMENT SRV", "MATERIALDOCUMENTSRV"), + Arguments.of("MATERIALDOCUMENTSRV", "MATERIALDOCUMENTSRV")); } @ParameterizedTest @@ -52,7 +54,9 @@ private static Stream getPackageTestCases() Arguments.of("Lower,enumeration", "lowerenumeration"), Arguments.of("KeepCamelCase", "keepcamelcase"), Arguments.of("handle_snake_case", "handlesnakecase"), - Arguments.of("OData Service for Business Partner", "businesspartner")); + Arguments.of("OData Service for Business Partner", "businesspartner"), + Arguments.of("API MATERIAL DOCUMENT SRV", "materialdocumentsrv"), + Arguments.of("materialdocumentsrv", "materialdocumentsrv")); } @ParameterizedTest diff --git a/release_notes.md b/release_notes.md index 3112514a9..b03a236a7 100644 --- a/release_notes.md +++ b/release_notes.md @@ -20,4 +20,6 @@ ### 🐛 Fixed Issues -- +- Fix unintended modification of `serviceNameMappings.properties` during OData service regeneration altering stored mappings. + Additionally, service name cleanup is now case-insensitive for consistency. +