Skip to content

Commit 62bfe66

Browse files
authored
Fix POJO class naming mapping (#5315)
1 parent 856a9d1 commit 62bfe66

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

migration-tool/src/main/java/software/amazon/awssdk/migration/internal/utils/NamingConversionUtils.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,14 @@ public static String getV2Equivalent(String currentFqcn) {
3333
String v1ClassName = currentFqcn.substring(lastIndexOfDot + 1, currentFqcn.length());
3434
String packagePrefix = currentFqcn.substring(0, lastIndexOfDot);
3535

36-
String v2ClassName;
36+
String v2ClassName = CodegenNamingUtils.pascalCase(v1ClassName);
3737
String v2PackagePrefix = packagePrefix.replace(V1_PACKAGE_PREFIX, V2_PACKAGE_PREFIX);
3838

3939
if (Stream.of("Abstract", "Amazon", "AWS").anyMatch(v1ClassName::startsWith)) {
4040
v2ClassName = getV2ClientEquivalent(v1ClassName);
41-
} else {
42-
v2ClassName = v1ClassName.replace("Result", "Response");
41+
} else if (v1ClassName.endsWith("Result")) {
42+
int lastIndex = v1ClassName.lastIndexOf("Result");
43+
v2ClassName = v1ClassName.substring(0, lastIndex) + "Response";
4344
}
4445

4546
return v2PackagePrefix + "." + v2ClassName;

migration-tool/src/main/java/software/amazon/awssdk/migration/internal/utils/SdkTypeUtils.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,8 @@ public static boolean isV2ClientBuilder(JavaType type) {
137137
}
138138

139139
public static boolean isEligibleToConvertToBuilder(JavaType.FullyQualified type) {
140-
return type != null && (isV2ModelClass(type) || isV2ClientClass(type) || isV2CoreClassesWithBuilder(type.getFullyQualifiedName()));
140+
return type != null && (isV2ModelClass(type) || isV2ClientClass(type) ||
141+
isV2CoreClassesWithBuilder(type.getFullyQualifiedName()));
141142
}
142143

143144
public static boolean isEligibleToConvertToStaticFactory(JavaType.FullyQualified type) {

migration-tool/src/test/java/software/amazon/awssdk/migration/internal/utils/NamingConversionUtilsTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,15 @@ void v1Pojos_shouldConvertToV2() {
3131

3232
assertThat(NamingConversionUtils.getV2Equivalent("com.amazonaws.services.iot.model.AuditFinding"))
3333
.isEqualTo("software.amazon.awssdk.services.iot.model.AuditFinding");
34+
35+
assertThat(NamingConversionUtils.getV2Equivalent("com.amazonaws.services.iot.ResultConfiguration"))
36+
.isEqualTo("software.amazon.awssdk.services.iot.ResultConfiguration");
37+
38+
assertThat(NamingConversionUtils.getV2Equivalent("com.amazonaws.services.iot.ResultConfigurationResult"))
39+
.isEqualTo("software.amazon.awssdk.services.iot.ResultConfigurationResponse");
40+
41+
assertThat(NamingConversionUtils.getV2Equivalent("com.amazonaws.services.iot.ListCACertificatesRequest"))
42+
.isEqualTo("software.amazon.awssdk.services.iot.ListCaCertificatesRequest");
3443
}
3544

3645
@Test

0 commit comments

Comments
 (0)