Skip to content

Commit 7ffe6bc

Browse files
authored
Migration Tool: update list of packages to skip (#5882)
* Update list of unsupported v1 packages * Update list of unsupported v1 packages
1 parent 492d3b2 commit 7ffe6bc

File tree

4 files changed

+93
-5
lines changed

4 files changed

+93
-5
lines changed

v2-migration/pom.xml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,50 @@
167167
</exclusion>
168168
</exclusions>
169169
</dependency>
170+
<dependency>
171+
<groupId>com.amazonaws</groupId>
172+
<artifactId>aws-java-sdk-sns</artifactId>
173+
<scope>test</scope>
174+
<exclusions>
175+
<exclusion>
176+
<groupId>com.fasterxml.jackson</groupId>
177+
<artifactId>jackson-core</artifactId>
178+
</exclusion>
179+
</exclusions>
180+
</dependency>
181+
<dependency>
182+
<groupId>com.amazonaws</groupId>
183+
<artifactId>aws-java-sdk-stepfunctions</artifactId>
184+
<scope>test</scope>
185+
<exclusions>
186+
<exclusion>
187+
<groupId>com.fasterxml.jackson</groupId>
188+
<artifactId>jackson-core</artifactId>
189+
</exclusion>
190+
</exclusions>
191+
</dependency>
192+
<dependency>
193+
<groupId>com.amazonaws</groupId>
194+
<artifactId>aws-java-sdk-kinesisvideo</artifactId>
195+
<scope>test</scope>
196+
<exclusions>
197+
<exclusion>
198+
<groupId>com.fasterxml.jackson</groupId>
199+
<artifactId>jackson-core</artifactId>
200+
</exclusion>
201+
</exclusions>
202+
</dependency>
203+
<dependency>
204+
<groupId>com.amazonaws</groupId>
205+
<artifactId>aws-java-sdk-emr</artifactId>
206+
<scope>test</scope>
207+
<exclusions>
208+
<exclusion>
209+
<groupId>com.fasterxml.jackson</groupId>
210+
<artifactId>jackson-core</artifactId>
211+
</exclusion>
212+
</exclusions>
213+
</dependency>
170214
<dependency>
171215
<groupId>org.openrewrite</groupId>
172216
<artifactId>rewrite-maven</artifactId>

v2-migration/src/main/java/software/amazon/awssdk/v2migration/ChangeSdkType.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import static software.amazon.awssdk.v2migration.internal.utils.NamingConversionUtils.getV2Equivalent;
1919
import static software.amazon.awssdk.v2migration.internal.utils.NamingConversionUtils.getV2ModelPackageWildCardEquivalent;
2020
import static software.amazon.awssdk.v2migration.internal.utils.SdkTypeUtils.isSupportedV1Class;
21+
import static software.amazon.awssdk.v2migration.internal.utils.SdkTypeUtils.isSupportedV1ClientClass;
2122
import static software.amazon.awssdk.v2migration.internal.utils.SdkTypeUtils.isV1ClientClass;
2223

2324
import java.util.ArrayList;
@@ -335,7 +336,7 @@ public J visitMethodInvocation(J.MethodInvocation method, ExecutionContext ctx)
335336

336337
JavaType.FullyQualified declaringType = method.getMethodType().getDeclaringType();
337338
JavaType returnType = method.getMethodType().getReturnType();
338-
if (isV1ClientClass(returnType)) {
339+
if (isV1ClientClass(returnType) && isSupportedV1ClientClass(returnType)) {
339340
if (returnType instanceof JavaType.FullyQualified) {
340341
String fullyQualifiedName = ((JavaType.FullyQualified) returnType).getFullyQualifiedName();
341342
storeV1ClassMetadata(fullyQualifiedName);

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

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ public final class SdkTypeUtils {
7979
private static final Pattern V2_ASYNC_CLIENT_CLASS_PATTERN = Pattern.compile(
8080
"software\\.amazon\\.awssdk\\.services\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9]+AsyncClient");
8181

82+
private static final Pattern KINESIS_VIDEO_PUT_MEDIA_CLIENT_BUILDER = Pattern.compile(
83+
"com.amazonaws.services.kinesisvideo.AmazonKinesisVideoPutMediaClientBuilder");
84+
8285
/**
8386
* V2 core classes with a builder
8487
*/
@@ -116,10 +119,24 @@ public final class SdkTypeUtils {
116119

117120
private static final Set<String> V1_SERVICES_PACKAGE_NAMES = new HashSet<>();
118121

119-
private static final Set<String> PACKAGES_TO_SKIP = new HashSet<>(
122+
private static final Set<String> PACKAGES_AND_CLASSES_TO_SKIP = new HashSet<>(
120123
Arrays.asList("com.amazonaws.services.s3.transfer",
121124
"com.amazonaws.services.dynamodbv2.datamodeling",
122-
"com.amazonaws.services.lambda.invoke"));
125+
"com.amazonaws.services.lambda.invoke",
126+
"com.amazonaws.services.sns.message",
127+
"com.amazonaws.services.dynamodbv2.xspec",
128+
"com.amazonaws.services.dynamodbv2.document.spec",
129+
"com.amazonaws.services.stepfunctions.builder",
130+
"com.amazonaws.services.elasticmapreduce.util",
131+
"com.amazonaws.services.elasticmapreduce.spi",
132+
"com.amazonaws.services.simpleemail.AWSJavaMailTransport",
133+
"com.amazonaws.services.kinesisvideo.AmazonKinesisVideoPutMedia",
134+
"com.amazonaws.services.s3.model.PresignedUrlDownloadRequest",
135+
"com.amazonaws.services.s3.model.PresignedUrlDownloadResult",
136+
"com.amazonaws.services.s3.model.PresignedUrlDownloadConfig",
137+
"com.amazonaws.services.s3.model.PresignedUrlUploadRequest",
138+
"com.amazonaws.services.s3.model.PresignedUrlUploadResult"
139+
));
123140

124141
static {
125142
V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sagemakeredgemanager");
@@ -518,7 +535,7 @@ public static boolean isSupportedV1Class(JavaType.FullyQualified fullyQualified)
518535
String fullyQualifiedName = fullyQualified.getFullyQualifiedName();
519536

520537
if (!fullyQualifiedName.startsWith("com.amazonaws.") ||
521-
PACKAGES_TO_SKIP.stream().anyMatch(fullyQualifiedName::startsWith)) {
538+
PACKAGES_AND_CLASSES_TO_SKIP.stream().anyMatch(fullyQualifiedName::startsWith)) {
522539
return false;
523540
}
524541

@@ -551,6 +568,10 @@ public static boolean isV1ClientClass(JavaType type) {
551568
&& type.isAssignableFrom(V1_SERVICE_CLIENT_CLASS_PATTERN);
552569
}
553570

571+
public static boolean isSupportedV1ClientClass(JavaType type) {
572+
return !type.isAssignableFrom(KINESIS_VIDEO_PUT_MEDIA_CLIENT_BUILDER);
573+
}
574+
554575
public static boolean isV2ModelBuilder(JavaType type) {
555576
return type != null
556577
&& type.isAssignableFrom(V2_MODEL_BUILDER_PATTERN);

v2-migration/src/test/java/software/amazon/awssdk/v2migration/internal/utils/SdkTypeUtilsTest.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,17 @@
1919
import static org.assertj.core.api.Assertions.assertThatThrownBy;
2020

2121
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;
22+
import com.amazonaws.services.dynamodbv2.document.spec.UpdateItemSpec;
23+
import com.amazonaws.services.dynamodbv2.xspec.ExpressionSpecBuilder;
24+
import com.amazonaws.services.elasticmapreduce.spi.EMRFSAnnotationProvider;
25+
import com.amazonaws.services.elasticmapreduce.util.StepFactory;
26+
import com.amazonaws.services.kinesisvideo.AmazonKinesisVideoPutMedia;
27+
import com.amazonaws.services.lambda.invoke.LambdaInvokerFactory;
2228
import com.amazonaws.services.s3.transfer.TransferManager;
29+
import com.amazonaws.services.sns.message.SnsMessageManager;
2330
import com.amazonaws.services.sqs.AmazonSQS;
2431
import com.amazonaws.services.sqs.model.SendMessageRequest;
32+
import com.amazonaws.services.stepfunctions.builder.StepFunctionBuilder;
2533
import java.util.stream.Stream;
2634
import org.junit.jupiter.api.Test;
2735
import org.junit.jupiter.params.ParameterizedTest;
@@ -114,8 +122,22 @@ public static Stream<Arguments> isSupportedV1ClassParams() {
114122
Arguments.of("v1ClientClass_shouldReturnTrue", AmazonSQS.class.getCanonicalName(), true),
115123
Arguments.of("tmClass_shouldReturnFalse", TransferManager.class.getCanonicalName(), false),
116124
Arguments.of("ddbMapper_shouldReturnFalse", DynamoDBMapper.class.getCanonicalName(), false),
125+
Arguments.of("kinesisVideoPutMedia_shouldReturnFalse", AmazonKinesisVideoPutMedia.class.getCanonicalName(), false),
126+
Arguments.of("snsMessageManager_shouldReturnFalse", SnsMessageManager.class.getCanonicalName(), false),
127+
Arguments.of("ddbDocumentSpec_shouldReturnFalse", UpdateItemSpec.class.getCanonicalName(), false),
128+
Arguments.of("ddbXspec_shouldReturnFalse", ExpressionSpecBuilder.class.getCanonicalName(), false),
129+
Arguments.of("stepfunctionsBuilder_shouldReturnFalse", StepFunctionBuilder.class.getCanonicalName(), false),
130+
Arguments.of("emrUtil_shouldReturnFalse", StepFactory.class.getCanonicalName(), false),
131+
Arguments.of("emrSpi_shouldReturnFalse", EMRFSAnnotationProvider.class.getCanonicalName(), false),
132+
Arguments.of("lambdaInvoke_shouldReturnFalse", LambdaInvokerFactory.class.getCanonicalName(), false),
133+
Arguments.of("sesJavaMailTransport_shouldReturnFalse", "com.amazonaws.services.simpleemail.AWSJavaMailTransport", false),
117134
Arguments.of("customSdk_shouldReturnFalse", "com.amazonaws.services.foobar.model.FooBarRequest", false),
118-
Arguments.of("customSdk_shouldReturnFalse", "com.amazonaws.services.foobar.FooBarClient", false)
135+
Arguments.of("customSdk_shouldReturnFalse", "com.amazonaws.services.foobar.FooBarClient", false),
136+
Arguments.of("s3PresignedUrlDownloadRequest_shouldReturnFalse", "com.amazonaws.services.s3.model.PresignedUrlDownloadRequest", false),
137+
Arguments.of("s3PresignedUrlDownloadResult_shouldReturnFalse", "com.amazonaws.services.s3.model.PresignedUrlDownloadResult", false),
138+
Arguments.of("s3PresignedUrlDownloadConfig_shouldReturnFalse", "com.amazonaws.services.s3.model.PresignedUrlDownloadConfig", false),
139+
Arguments.of("s3PresignedUrlUploadRequest_shouldReturnFalse", "com.amazonaws.services.s3.model.PresignedUrlUploadRequest", false),
140+
Arguments.of("s3PresignedUrlUploadResult_shouldReturnFalse", "com.amazonaws.services.s3.model.PresignedUrlUploadResult", false)
119141
);
120142
}
121143

0 commit comments

Comments
 (0)