Skip to content

Commit 67b3eb3

Browse files
authored
fix: [OData] Name mapping bug in NamingUtils (#1026)
1 parent 17bbcd7 commit 67b3eb3

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

datamodel/odata-generator-utility/src/main/java/com/sap/cloud/sdk/datamodel/odata/utility/NamingUtils.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ public static String serviceNameToBaseJavaClassName( @Nonnull final String servi
7979

8080
formattedName =
8181
formattedName
82-
.replace("ODataServiceFor", "")
83-
.replace("RemoteApiFor", "")
84-
.replace("ApiFor", "")
85-
.replace("Api", "")
86-
.replaceAll("Service$", "");
82+
.replaceAll("O(data|DATA|Data)S(ervice|ERVICE)F(or|OR)", "")
83+
.replaceAll("R(emote|EMOTE)A(pi|PI)F(or|OR)", "")
84+
.replaceAll("A(pi|PI)F(or|OR)", "")
85+
.replaceAll("A(pi|PI)", "")
86+
.replaceAll("S(ervice|ERVICE)$", "");
8787

8888
return formattedName;
8989
}

datamodel/odata-generator-utility/src/test/java/com/sap/cloud/sdk/datamodel/odata/utility/NamingUtilsTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ private static Stream<Arguments> getClassTestCases()
2828
Arguments.of("Lower,enumeration", "LowerEnumeration"),
2929
Arguments.of("KeepCamelCase", "KeepCamelCase"),
3030
Arguments.of("handle_snake_case", "HandleSnakeCase"),
31-
Arguments.of("OData Service for Business Partner", "BusinessPartner"));
31+
Arguments.of("OData Service for Business Partner", "BusinessPartner"),
32+
Arguments.of("API MATERIAL DOCUMENT SRV", "MATERIALDOCUMENTSRV"),
33+
Arguments.of("MATERIALDOCUMENTSRV", "MATERIALDOCUMENTSRV"));
3234
}
3335

3436
@ParameterizedTest
@@ -52,7 +54,9 @@ private static Stream<Arguments> getPackageTestCases()
5254
Arguments.of("Lower,enumeration", "lowerenumeration"),
5355
Arguments.of("KeepCamelCase", "keepcamelcase"),
5456
Arguments.of("handle_snake_case", "handlesnakecase"),
55-
Arguments.of("OData Service for Business Partner", "businesspartner"));
57+
Arguments.of("OData Service for Business Partner", "businesspartner"),
58+
Arguments.of("API MATERIAL DOCUMENT SRV", "materialdocumentsrv"),
59+
Arguments.of("materialdocumentsrv", "materialdocumentsrv"));
5660
}
5761

5862
@ParameterizedTest

release_notes.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,6 @@
2020

2121
### 🐛 Fixed Issues
2222

23-
-
23+
- Fix unintended modification of `serviceNameMappings.properties` during OData service regeneration altering stored mappings.
24+
Additionally, service name cleanup is now case-insensitive for consistency.
25+

0 commit comments

Comments
 (0)