Skip to content

Commit 8329c9b

Browse files
authored
Account for v1 package service name differences (#5353)
1 parent 4590205 commit 8329c9b

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public static String getV2Equivalent(String currentFqcn) {
3535

3636
String v2ClassName = CodegenNamingUtils.pascalCase(v1ClassName);
3737
String v2PackagePrefix = packagePrefix.replace(V1_PACKAGE_PREFIX, V2_PACKAGE_PREFIX);
38+
v2PackagePrefix = checkPackageServiceNameForV2Suffix(v2PackagePrefix);
3839

3940
if (Stream.of("Abstract", "Amazon", "AWS").anyMatch(v1ClassName::startsWith)) {
4041
v2ClassName = getV2ClientOrExceptionEquivalent(v1ClassName);
@@ -46,6 +47,19 @@ public static String getV2Equivalent(String currentFqcn) {
4647
return v2PackagePrefix + "." + v2ClassName;
4748
}
4849

50+
/**
51+
* Edge cases in v1 package names
52+
*/
53+
private static String checkPackageServiceNameForV2Suffix(String v2PackagePrefix) {
54+
if (v2PackagePrefix.contains("dynamodbv2")) {
55+
return v2PackagePrefix.replace("dynamodbv2", "dynamodb");
56+
}
57+
if (v2PackagePrefix.contains("cloudsearchv2")) {
58+
return v2PackagePrefix.replace("cloudsearchv2", "cloudsearch");
59+
}
60+
return v2PackagePrefix;
61+
}
62+
4963
public static String getV2ModelPackageWildCardEquivalent(String currentFqcn) {
5064
int lastIndexOfDot = currentFqcn.lastIndexOf(".");
5165
String packagePrefix = currentFqcn.substring(0, lastIndexOfDot);

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import static org.assertj.core.api.Assertions.assertThat;
1919

2020
import org.junit.jupiter.api.Test;
21-
import software.amazon.awssdk.migration.internal.utils.NamingConversionUtils;
2221

2322
public class NamingConversionUtilsTest {
2423
@Test
@@ -86,4 +85,12 @@ void v2WildCardImport_shouldConvertToV2() {
8685
assertThat(NamingConversionUtils.getV2ModelPackageWildCardEquivalent("com.amazonaws.services.iot.*"))
8786
.isEqualTo("software.amazon.awssdk.services.iot.*");
8887
}
88+
89+
@Test
90+
void packageNameV2Suffix_shouldBeRemoved() {
91+
assertThat(NamingConversionUtils.getV2Equivalent("com.amazonaws.services.cloudsearchv2.AmazonCloudSearchClient"))
92+
.isEqualTo("software.amazon.awssdk.services.cloudsearch.CloudSearchClient");
93+
assertThat(NamingConversionUtils.getV2Equivalent("com.amazonaws.services.dynamodbv2.AmazonDynamoDB"))
94+
.isEqualTo("software.amazon.awssdk.services.dynamodb.DynamoDbClient");
95+
}
8996
}

0 commit comments

Comments
 (0)