From cae19ee9f6851362c758356185e32a4e59744be5 Mon Sep 17 00:00:00 2001
From: David Ho <70000000+davidh44@users.noreply.github.com>
Date: Mon, 16 Sep 2024 15:38:53 -0700
Subject: [PATCH] Migration tool exclude custom sdks (#5602)
* Migration tool skip transforming custom SDKs
* Remove packages to skip
* Keep skipped packages test and add Lambda invoke class
---
v2-migration/pom.xml | 13 +-
.../awssdk/v2migration/ChangeSdkType.java | 21 +-
.../internal/utils/SdkTypeUtils.java | 403 ++++++++++++++++++
.../awssdk/v2migration/ChangeSdkTypeTest.java | 6 +-
4 files changed, 428 insertions(+), 15 deletions(-)
diff --git a/v2-migration/pom.xml b/v2-migration/pom.xml
index 23580d32d122..23a7fcaf1526 100644
--- a/v2-migration/pom.xml
+++ b/v2-migration/pom.xml
@@ -142,6 +142,17 @@
+
+ com.amazonaws
+ aws-java-sdk-s3
+ test
+
+
+ com.fasterxml.jackson
+ jackson-core
+
+
+
com.amazonaws
aws-java-sdk-dynamodb
@@ -155,7 +166,7 @@
com.amazonaws
- aws-java-sdk-s3
+ aws-java-sdk-lambda
test
diff --git a/v2-migration/src/main/java/software/amazon/awssdk/v2migration/ChangeSdkType.java b/v2-migration/src/main/java/software/amazon/awssdk/v2migration/ChangeSdkType.java
index 7c8d6838120b..ce7c32a47fe3 100644
--- a/v2-migration/src/main/java/software/amazon/awssdk/v2migration/ChangeSdkType.java
+++ b/v2-migration/src/main/java/software/amazon/awssdk/v2migration/ChangeSdkType.java
@@ -17,11 +17,11 @@
import static software.amazon.awssdk.v2migration.internal.utils.NamingConversionUtils.getV2Equivalent;
import static software.amazon.awssdk.v2migration.internal.utils.NamingConversionUtils.getV2ModelPackageWildCardEquivalent;
+import static software.amazon.awssdk.v2migration.internal.utils.SdkTypeUtils.isCustomSdk;
import static software.amazon.awssdk.v2migration.internal.utils.SdkTypeUtils.isV1ClientClass;
import static software.amazon.awssdk.v2migration.internal.utils.SdkTypeUtils.isV1ModelClass;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.IdentityHashMap;
@@ -65,10 +65,6 @@ public class ChangeSdkType extends Recipe {
"com\\.amazonaws\\.services\\.[a-zA-Z0-9]+\\.model\\.\\*";
private static final String V1_SERVICE_WILD_CARD_CLASS_PATTERN = "com\\.amazonaws\\.services\\.[a-zA-Z0-9]+\\.\\*";
- private static final Set PACKAGES_TO_SKIP = new HashSet<>(
- Arrays.asList("com.amazonaws.services.s3.transfer",
- "com.amazonaws.services.dynamodbv2.datamodeling"));
-
@Override
public String getDisplayName() {
return "Change AWS SDK for Java v1 types to v2 equivalents";
@@ -139,17 +135,16 @@ private static boolean isWildcard(String fullName) {
private static boolean isV1Class(JavaType.FullyQualified fullyQualified) {
String fullyQualifiedName = fullyQualified.getFullyQualifiedName();
- if (shouldSkip(fullyQualifiedName)) {
- log.info(() -> String.format("Skipping transformation for %s because it is not supported in the migration "
- + "tooling at the moment", fullyQualifiedName));
+
+ if (!isV1ModelClass(fullyQualified) && !isV1ClientClass(fullyQualified)) {
return false;
}
- return isV1ModelClass(fullyQualified) || isV1ClientClass(fullyQualified);
- }
-
- private static boolean shouldSkip(String fqcn) {
- return PACKAGES_TO_SKIP.stream().anyMatch(fqcn::startsWith);
+ if (isCustomSdk(fullyQualifiedName)) {
+ log.info(() -> String.format("Skipping transformation for %s because it is a custom SDK", fullyQualifiedName));
+ return false;
+ }
+ return true;
}
@Override
diff --git a/v2-migration/src/main/java/software/amazon/awssdk/v2migration/internal/utils/SdkTypeUtils.java b/v2-migration/src/main/java/software/amazon/awssdk/v2migration/internal/utils/SdkTypeUtils.java
index 4569619d2231..d594a81f33fc 100644
--- a/v2-migration/src/main/java/software/amazon/awssdk/v2migration/internal/utils/SdkTypeUtils.java
+++ b/v2-migration/src/main/java/software/amazon/awssdk/v2migration/internal/utils/SdkTypeUtils.java
@@ -92,6 +92,397 @@ public final class SdkTypeUtils {
private static final Pattern V2_CLIENT_BUILDER_PATTERN = Pattern.compile(
"software\\.amazon\\.awssdk\\.services\\.[a-zA-Z0-9]+\\.[a-zA-Z0-9]+Builder");
+ private static final Set V1_SERVICES_PACKAGE_NAMES = new HashSet<>();
+
+ static {
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sagemakeredgemanager");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.medialive");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudhsm");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.comprehendmedical");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudsearchv2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudsearchdomain");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.billingconductor");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.support");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.memorydb");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kinesisvideowebrtcstorage");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kinesisvideosignalingchannels");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.chime");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.inspector2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.taxsettings");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.rds");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.paymentcryptographydata");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.verifiedpermissions");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ecrpublic");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.internetmonitor");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ec2.util");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ec2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.tnb");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.securitytoken");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.translate");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.inspector");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.datasync");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.certificatemanager");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codepipeline");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.braket");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.appconfigdata");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.qldbsession");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.gluedatabrew");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.workdocs");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.amplify");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.bedrock");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.outposts");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ram");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.macie2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.elasticfilesystem");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.simpleemailv2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.logs");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.servicediscovery");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.importexport");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.workspacesweb");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.appflow");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.chimesdkvoice");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lookoutmetrics");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.s3.model");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.s3");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.repostspace");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.health");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.amplifyuibuilder");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.databasemigrationservice");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.dax");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.clouddirectory");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.costexplorer");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.elasticloadbalancing");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.omics");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.timestreaminfluxdb");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.workmailmessageflow");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codebuild");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.workmail");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ssooidc");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudwatch");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.servermigration");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.stepfunctions");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ssmincidents");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.trustedadvisor");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.wellarchitected");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.elasticsearch");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.quicksight");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.forecastquery");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.bedrockagent");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.migrationhub");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.imagebuilder");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.medicalimaging");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.appsync");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.paymentcryptography");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.budgets");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.controlcatalog");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotfleetwise");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.forecast");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.chimesdkidentity");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.networkfirewall");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.computeoptimizer");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudformation");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.simpleemail");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.pinpoint");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mturk");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.autoscalingplans");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.elastictranscoder");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.neptunedata");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.qapps");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.dlm");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.workspaces");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mediaconvert");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.connect");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.account");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sagemakerfeaturestoreruntime");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.apigateway");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mediapackage");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.amplifybackend");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.proton");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.config");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.wafv2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.qconnect");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.emrserverless");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.scheduler");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mailmanager");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mainframemodernization");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.dynamodbv2.xspec");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.dynamodbv2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.personalize");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.managedgrafana");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codegurusecurity");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ivschat");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.s3outposts");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudwatchrum");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ivs");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.directory");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.costandusagereport");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.connectcampaign");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotanalytics");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.identitystore");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.migrationhuborchestrator");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.eksauth");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codeconnections");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.transfer");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.waf");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.greengrassv2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.supportapp");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.deadline");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cognitosync");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.route53recoverycontrolconfig");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.connectcontactlens");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.appfabric");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cleanroomsml");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.licensemanagerusersubscriptions");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.appregistry");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.eventbridge");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mediaconnect");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.costoptimizationhub");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ec2instanceconnect");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.migrationhubstrategyrecommendations");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iottwinmaker");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.customerprofiles");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.route53domains");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.route53");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.freetier");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotsecuretunneling");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sagemakergeospatial");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.backupgateway");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.s3control");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kinesisanalyticsv2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mediapackagevod");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kinesisvideo");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.route53recoverycluster");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.docdbelastic");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.marketplacemetering");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.applicationautoscaling");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mediapackagev2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ebs");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.qbusiness");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.simpleworkflow");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cognitoidp");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codestarnotifications");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.networkmonitor");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotfleethub");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotwireless");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.eks");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.controltower");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.drs");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.opensearch");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ssmcontacts");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.applicationdiscovery");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.private5g");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudfront");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.location");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.timestreamquery");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.marketplacedeployment");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.route53recoveryreadiness");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.chimesdkmediapipelines");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.shield");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.synthetics");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.xray");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.elasticloadbalancingv2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.marketplaceagreement");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.signer");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.directconnect");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codegurureviewer");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.securitylake");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sso");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lexmodelbuilding");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mgn");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lightsail");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotjobsdataplane");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.pricing");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.vpclattice");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.identitymanagement");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.datapipeline");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.marketplacecommerceanalytics");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.globalaccelerator");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mq");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.marketplaceentitlement");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.resourcegroups");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.pipes");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.artifact");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.finspace");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.opensearchserverless");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.athena");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ecr");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.storagegateway");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.panorama");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.managedblockchainquery");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.bedrockagentruntime");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cognitoidentity");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotdata");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iot");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sqs");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.pinpointsmsvoicev2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.rekognition");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.dataexchange");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.fsx");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.snowdevicemanagement");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.finspacedata");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.inspectorscan");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.recyclebin");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.detective");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mwaa");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.applicationcostprofiler");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotevents");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ivsrealtime");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ecs");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.bedrockruntime");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kinesis");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kinesisanalytics");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kinesisfirehose");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudhsmv2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.glue");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codedeploy");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.simpledb.util");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.simpledb");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.launchwizard");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.personalizeevents");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.devopsguru");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.opsworks");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kafka");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.voiceid");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudcontrolapi");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sagemakerruntime");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.textract");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.batch");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.appconfig");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudwatchevents");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codeartifact");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.autoscaling");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.resiliencehub");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.securityhub");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iot1clickdevices");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.backup");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotdeviceadvisor");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mediastore");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.serverlessapplicationrepository");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.fms");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.timestreamwrite");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ioteventsdata");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codeguruprofiler");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lexruntimev2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.elasticache");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kendra");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.snowball");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotthingsgraph");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.pcaconnectorscep");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iotsitewise");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lexmodelsv2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.redshiftserverless");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.migrationhubconfig");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.pi");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kendraranking");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.osis");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.bcmdataexports");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.accessanalyzer");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.appintegrations");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.b2bi");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.keyspaces");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.elasticinference");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.redshift");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudtrail");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.connectparticipant");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.gamelift");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.acmpca");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.simspaceweaver");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lookoutequipment");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.pinpointsmsvoice");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codestarconnections");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.personalizeruntime");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lambda");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.emrcontainers");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sns.util");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sns");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.chimesdkmeetings");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.entityresolution");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.networkmanager");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.datazone");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.savingsplans");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.resourcegroupstaggingapi");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.organizations");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ssoadmin");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lakeformation");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kafkaconnect");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.glacier");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.docdb");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.appstream");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.applicationsignals");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudwatchevidently");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.healthlake");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sagemaker");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codecommit");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.frauddetector");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.apptest");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.transcribe");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.migrationhubrefactorspaces");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.apprunner");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.machinelearning");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.servicequotas");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.marketplacecatalog");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.route53resolver");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.nimblestudio");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.rdsdata");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.fis");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.chimesdkmessaging");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lookoutforvision");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.chatbot");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.resourceexplorer2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloudtraildata");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.devicefarm");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lexruntime");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.arczonalshift");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.ssmsap");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.comprehend");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.connectwisdom");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.licensemanagerlinuxsubscriptions");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.polly");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.appmesh");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.schemas");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.managedblockchain");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.guardduty");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cloud9");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.greengrass");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.simplesystemsmanagement");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.connectcases");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.licensemanager");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mediastoredata");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.servicecatalog");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.oam");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.secretsmanager");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.qldb");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.redshiftdataapi");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.opsworkscm");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.pinpointemail");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.apigatewayv2");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.cleanrooms");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.elasticmapreduce");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.pcaconnectorad");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iot1clickprojects");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.elasticbeanstalk");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.worklink");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.supplychain");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.sagemakermetrics");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.groundstation");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.prometheus");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.apigatewaymanagementapi");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.neptune");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.workspacesthinclient");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.codestar");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.route53profiles");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.augmentedairuntime");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.auditmanager");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.iamrolesanywhere");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.mediatailor");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.kms");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.robomaker");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.applicationinsights");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.s3.transfer");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.dynamodbv2.datamodeling");
+ V1_SERVICES_PACKAGE_NAMES.add("com.amazonaws.services.lambda.invoke");
+ }
+
private SdkTypeUtils() {
}
@@ -99,6 +490,18 @@ public static boolean isV1Class(JavaType type) {
return type != null && type.isAssignableFrom(V1_SERVICE_CLASS_PATTERN);
}
+ public static boolean isCustomSdk(String fullyQualifiedName) {
+ int lastIndexOfDot = fullyQualifiedName.lastIndexOf('.');
+ // i.e.., com.amazonaws.services.SERVICE.CLASSNAME
+ String packagePrefix = fullyQualifiedName.substring(0, lastIndexOfDot);
+
+ int lastIndexOfDotModelClass = packagePrefix.lastIndexOf('.');
+ // i.e., com.amazonaws.services.SERVICE.model.CLASSNAME
+ String packagePrefixModelClass = packagePrefix.substring(0, lastIndexOfDotModelClass);
+
+ return !V1_SERVICES_PACKAGE_NAMES.contains(packagePrefix) && !V1_SERVICES_PACKAGE_NAMES.contains(packagePrefixModelClass);
+ }
+
public static boolean isV1ModelClass(JavaType type) {
return type != null
&& type instanceof JavaType.FullyQualified
diff --git a/v2-migration/src/test/java/software/amazon/awssdk/v2migration/ChangeSdkTypeTest.java b/v2-migration/src/test/java/software/amazon/awssdk/v2migration/ChangeSdkTypeTest.java
index d5222293f4f5..e4d9a4c29617 100644
--- a/v2-migration/src/test/java/software/amazon/awssdk/v2migration/ChangeSdkTypeTest.java
+++ b/v2-migration/src/test/java/software/amazon/awssdk/v2migration/ChangeSdkTypeTest.java
@@ -29,7 +29,7 @@ public class ChangeSdkTypeTest implements RewriteTest {
@Override
public void defaults(RecipeSpec spec) {
spec.recipe(new ChangeSdkType()).parser(Java8Parser.builder().classpath("aws-java-sdk-sqs", "sqs", "aws-java-sdk-s3",
- "aws-java-sdk-dynamodb"));
+ "aws-java-sdk-dynamodb", "aws-java-sdk-lambda"));
}
@Test
@@ -225,19 +225,23 @@ void hasUnsupportedFeature_shouldSkip() {
"import com.amazonaws.services.s3.transfer.TransferManager;\n" +
"import com.amazonaws.services.sqs.model.DeleteQueueRequest;\n" +
"import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;\n" +
+ "import com.amazonaws.services.lambda.invoke.LambdaFunction;\n" +
"class Test {\n" +
" private TransferManager transferManager;\n" +
" private DeleteQueueRequest deleteQueue;\n" +
" private DynamoDBMapper ddbMapper;\n" +
+ " private LambdaFunction lambdaFunction;\n" +
"}\n",
"import com.amazonaws.services.s3.transfer.TransferManager;\n"
+ "import software.amazon.awssdk.services.sqs.model.DeleteQueueRequest;\n"
+ "import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;\n"
+ + "import com.amazonaws.services.lambda.invoke.LambdaFunction;\n"
+ "\n"
+ "class Test {\n"
+ " private TransferManager transferManager;\n"
+ " private DeleteQueueRequest deleteQueue;\n"
+ " private DynamoDBMapper ddbMapper;\n"
+ + " private LambdaFunction lambdaFunction;\n"
+ "}"
)
);