Ferramenta de migração (versão prévia) - AWS SDK for Java 2.x

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Ferramenta de migração (versão prévia)

O AWS SDK for Java fornece uma ferramenta de migração que ajuda a automatizar a migração do código Java 1.x SDK para 2.x. A ferramenta usa OpenRewrite— uma ferramenta de refatoração de código-fonte de código aberto — para realizar a migração.

Você pode usar a ferramenta agora como uma versão prévia. A ferramenta oferece suporte a todos os clientes SDK de serviços, exceto AmazonS3Client e de alto nívelAPIs, como e D. TransferManagerynamoDBMapper A ferramenta também tem algumas limitações que estão listadas no final deste tópico.

Use a ferramenta de migração

Migrar um projeto Maven

Siga as instruções abaixo para migrar seu projeto baseado em Maven SDK para Java 1.x usando a ferramenta de plug-in Maven. OpenRewrite

  1. Navegue até o diretório raiz do seu projeto Maven

    Abra uma janela de terminal (linha de comando) e navegue até o diretório raiz do seu aplicativo baseado em Maven.

  2. Execute o rewrite-maven-plugin comando do plugin

    Você pode escolher entre dois modos (metas do Maven): dryRun e. run

    Modo dryRun

    No dryRun modo, o plug-in gera registros de diferenças na saída do console e um arquivo de patch nomeado rewrite.patch na target/rewrite pasta. Esse modo permite que você visualize as alterações que seriam feitas, já que nenhuma alteração é feita nos arquivos de código-fonte.

    O exemplo a seguir mostra como invocar o plug-in no dryRun modo.

    mvn org.openrewrite.maven:rewrite-maven-plugin:dryRun \ -Drewrite.recipeArtifactCoordinates=software.amazon.awssdk:v2-migration:<sdkversion>*-PREVIEW \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2

    *Substituir <sdkversion> com uma SDK versão 2.x. Visite o Maven Central para verificar a versão mais recente.

    A saída do console do dryRun modo deve ser semelhante à saída a seguir.

    [WARNING] These recipes would make changes to project/src/test/resources/maven/before/pom.xml: [WARNING] software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2 [WARNING] software.amazon.awssdk.v2migration.UpgradeSdkDependencies [WARNING] org.openrewrite.java.dependencies.AddDependency: {groupId=software.amazon.awssdk, artifactId=apache-client, version=2.27.0, onlyIfUsing=com.amazonaws.ClientConfiguration} [WARNING] org.openrewrite.java.dependencies.AddDependency: {groupId=software.amazon.awssdk, artifactId=netty-nio-client, version=2.27.0, onlyIfUsing=com.amazonaws.ClientConfiguration} [WARNING] org.openrewrite.java.dependencies.ChangeDependency: {oldGroupId=com.amazonaws, oldArtifactId=aws-java-sdk-bom, newGroupId=software.amazon.awssdk, newArtifactId=bom, newVersion=2.27.0} [WARNING] org.openrewrite.java.dependencies.ChangeDependency: {oldGroupId=com.amazonaws, oldArtifactId=aws-java-sdk-s3, newGroupId=software.amazon.awssdk, newArtifactId=s3, newVersion=2.27.0} [WARNING] org.openrewrite.java.dependencies.ChangeDependency: {oldGroupId=com.amazonaws, oldArtifactId=aws-java-sdk-sqs, newGroupId=software.amazon.awssdk, newArtifactId=sqs, newVersion=2.27.0} [WARNING] These recipes would make changes to project/src/test/resources/maven/before/src/main/java/foo/bar/Application.java: [WARNING] software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2 [WARNING] software.amazon.awssdk.v2migration.S3GetObjectConstructorToFluent [WARNING] software.amazon.awssdk.v2migration.ConstructorToFluent [WARNING] software.amazon.awssdk.v2migration.S3StreamingResponseToV2 [WARNING] software.amazon.awssdk.v2migration.ChangeSdkType [WARNING] software.amazon.awssdk.v2migration.ChangeSdkCoreTypes [WARNING] software.amazon.awssdk.v2migration.ChangeExceptionTypes [WARNING] org.openrewrite.java.ChangeType: {oldFullyQualifiedTypeName=com.amazonaws.AmazonClientException, newFullyQualifiedTypeName=software.amazon.awssdk.core.exception.SdkException} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getRequestId(), newMethodName=requestId} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getErrorCode(), newMethodName=awsErrorDetails().errorCode} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getServiceName(), newMethodName=awsErrorDetails().serviceName} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getErrorMessage(), newMethodName=awsErrorDetails().errorMessage} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getRawResponse(), newMethodName=awsErrorDetails().rawResponse().asByteArray} [WARNING] org.openrewrite.java.ChangeMethodName: {methodPattern=com.amazonaws.AmazonServiceException getRawResponseContent(), newMethodName=awsErrorDetails().rawResponse().asUtf8String} [WARNING] org.openrewrite.java.ChangeType: {oldFullyQualifiedTypeName=com.amazonaws.AmazonServiceException, newFullyQualifiedTypeName=software.amazon.awssdk.awscore.exception.AwsServiceException} [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilderPattern [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilder [WARNING] software.amazon.awssdk.v2migration.V1SetterToV2 [WARNING] software.amazon.awssdk.v2migration.V1GetterToV2 ... [WARNING] software.amazon.awssdk.v2migration.V1BuilderVariationsToV2Builder [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilderPattern [WARNING] software.amazon.awssdk.v2migration.NewClassToBuilder [WARNING] software.amazon.awssdk.v2migration.V1SetterToV2 [WARNING] software.amazon.awssdk.v2migration.HttpSettingsToHttpClient [WARNING] software.amazon.awssdk.v2migration.WrapSdkClientBuilderRegionStr [WARNING] Patch file available: [WARNING] project/src/test/resources/maven/before/target/rewrite/rewrite.patch [WARNING] Estimate time saved: 20m [WARNING] Run 'mvn rewrite:run' to apply the recipes.

    Modo run

    Quando você executa o plug-in no run modo, ele modifica o código-fonte no disco para aplicar as alterações. Certifique-se de ter um backup do código-fonte antes de executar o comando.

    O exemplo a seguir mostra como invocar o plug-in no run modo.

    mvn org.openrewrite.maven:rewrite-maven-plugin:run \ -Drewrite.recipeArtifactCoordinates=software.amazon.awssdk:v2-migration:<sdkversion>*-PREVIEW \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2

    *Substituir <sdkversion> com uma SDK versão 2.x. Visite o Maven Central para verificar a versão mais recente.

    Depois de executar o comando, compile seu aplicativo e execute testes para verificar as alterações.

Migrar um projeto do Gradle

Siga as instruções abaixo para migrar seu SDK projeto baseado em Java 1.x Grade usando a ferramenta de plug-in Gradle. OpenRewrite

  1. Navegue até o diretório raiz do seu projeto Maven

    Abra uma janela de terminal (linha de comando) e navegue até o diretório raiz do seu aplicativo baseado em Gradle.

  2. Crie um script de inicialização do Gradle

    Crie um init.gradle arquivo com o seguinte conteúdo no diretório.

    initscript { repositories { maven { url "https://plugins.gradle.org/m2" } } dependencies { classpath("org.openrewrite:plugin:latest.release") } } rootProject { plugins.apply(org.openrewrite.gradle.RewritePlugin) dependencies { rewrite("software.amazon.awssdk:v2-migration:latest.release") } afterEvaluate { if (repositories.isEmpty()) { repositories { mavenCentral() } } } }
  3. Execute o rewrite comando

    Assim como no plug-in Maven, você pode executar o plug-in do Gradle no modo dryRun orrun.

    Modo dryRun

    O exemplo a seguir mostra como invocar o plug-in no dryRun modo.

    gradle rewriteDryRun --init-script init.gradle \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2

    Modo run

    O exemplo a seguir mostra como invocar o plug-in no run modo.

    gradle rewriteRun --init-script init.gradle \ -Drewrite.activeRecipes=software.amazon.awssdk.v2migration.AwsSdkJavaV1ToV2

Limitações atuais

A versão prévia atual não oferece suporte a todos os recursos doSDK. Support para recursos adicionais será adicionado em breve.

No momento, a ferramenta não oferece suporte aos seguintes recursos. Os links na lista abaixo levam você às informações de migração para ajudá-lo a migrar manualmente o código.