

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# AWS SDK für Java Migrationstool
<a name="migration-tool"></a>

Das AWS SDK für Java bietet ein Migrationstool, mit dem die Migration von SDK for Java 1.x (V1) -Code auf 2.x (V2) automatisiert werden kann. Das Tool verwendet [OpenRewrite](https://docs.openrewrite.org/)— ein Open-Source-Tool zur Refaktorierung von Quellcode —, um die Migration durchzuführen. OpenRewrite verwendet Regeln zur Codeänderung (sogenannte „Rezepte“), um Ihren Quellcode automatisch von V1- auf V2-Syntax und Muster zu aktualisieren.

Das Tool unterstützt Regeln zur Codeänderung für SDK-Dienstclients und die allgemeine [S3 Transfer Manager-Bibliothek](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/transfer/TransferManager.html). Regeln zur Codeänderung für andere High-Level-Clients APIs wie die [DynamoDB Enhanced Client API](dynamodb-enhanced-client.md) von V1 [https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.html](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.html)bis V2 werden nicht unterstützt. 

Weitere Informationen zu Einschränkungen finden Sie [am Ende dieser Seite](#migration-tool-limitations). Ausführliche Beispiele für häufig nicht unterstützte Codemuster mit manuellen Migrationsschritten finden Sie unter [Nicht unterstützte Codemuster](migration-tool-unsupported-patterns.md).

## Verwenden Sie das Migrationstool
<a name="migration-tool-use"></a>

### Migrieren Sie ein Maven-Projekt
<a name="migration-tool-use-maven"></a>

Folgen Sie den nachstehenden Anweisungen, um Ihr auf Maven basierendes SDK for Java 1.x-Projekt mithilfe des [OpenRewriteMaven-Plugin-Tools](https://docs.openrewrite.org/reference/rewrite-maven-plugin) zu migrieren.

1. Navigieren Sie zum Stammverzeichnis Ihres Maven-Projekts

   Öffnen Sie ein Terminalfenster (Befehlszeile) und navigieren Sie zum Stammverzeichnis Ihrer Maven-basierten Anwendung.

1. Führen Sie den Befehl des Plugins aus `rewrite-maven-plugin`

   Du kannst zwischen zwei Modi (Maven-Ziele) wählen: `dryRun` und`run`.

   **`dryRun`**** Modus**

   In diesem `dryRun` Modus generiert das Plugin Diff-Logs in der Konsolenausgabe und eine `rewrite.patch` im `target/rewrite` Ordner benannte Patch-Datei. In diesem Modus können Sie eine Vorschau der Änderungen anzeigen, die vorgenommen werden würden, da keine Änderungen an den Quellcodedateien vorgenommen werden. 

   Das folgende Beispiel zeigt, wie das Plugin im `dryRun` Modus aufgerufen wird.

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

   {{<rewrite-plugin-version>}}\*Ersetzen Sie es durch den `rewriteMavenPluginVersion` Wert, den Sie in dieser [Testdatei](https://github.com/aws/aws-sdk-java-v2/blob/3a01289246f1f4ac814a354051d00030e53ef968/test/v2-migration-tests/src/test/java/software/amazon/awssdk/v2migrationtests/MavenTestBase.java#L54) sehen.

   \*\*Durch eine 2.x SDK-Version {{<sdkversion>}} ersetzen. Besuchen Sie [Maven Central](https://central.sonatype.com/artifact/software.amazon.awssdk/v2-migration), um nach der neuesten Version zu suchen. 
**Wichtig**  
Stellen Sie sicher, dass Sie die in der [Testdatei `rewrite-maven-plugin`](https://github.com/aws/aws-sdk-java-v2/blob/3a01289246f1f4ac814a354051d00030e53ef968/test/v2-migration-tests/src/test/java/software/amazon/awssdk/v2migrationtests/MavenTestBase.java#L54) angegebene Version verwenden, da andere Versionen möglicherweise nicht funktionieren.

   Ihre Konsolenausgabe aus dem `dryRun` Modus sollte der folgenden Ausgabe ähneln.

   ```
   [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.
   ```

   **`run`**** Modus**

   Wenn Sie das Plug-in im `run` Modus ausführen, ändert es den Quellcode auf der Festplatte, sodass die Änderungen übernommen werden. Stellen Sie sicher, dass Sie eine Sicherungskopie des Quellcodes haben, bevor Sie den Befehl ausführen.

   Das folgende Beispiel zeigt, wie das Plugin im `run` Modus aufgerufen wird.

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

   \*Ersetze es {{<rewrite-plugin-version>}} durch `rewriteMavenPluginVersionvalue` das, was du in dieser [Testdatei](https://github.com/aws/aws-sdk-java-v2/blob/3a01289246f1f4ac814a354051d00030e53ef968/test/v2-migration-tests/src/test/java/software/amazon/awssdk/v2migrationtests/MavenTestBase.java#L54) siehst.

   \*\*Durch eine 2.x SDK-Version {{<sdkversion>}} ersetzen. Besuchen Sie [Maven Central](https://central.sonatype.com/artifact/software.amazon.awssdk/v2-migration), um nach der neuesten Version zu suchen. 

   Nachdem Sie den Befehl ausgeführt haben, kompilieren Sie Ihre Anwendung und führen Sie Tests durch, um die Änderungen zu überprüfen. 

### Migrieren Sie ein Gradle-Projekt
<a name="migration-tool-use-gradle"></a>

[Folgen Sie den nachstehenden Anweisungen, um Ihr Gradle-basiertes SDK for Java 1.x-Projekt mithilfe des OpenRewrite Gradle-Plugin-Tools zu migrieren.](https://docs.openrewrite.org/reference/gradle-plugin-configuration)

1. Navigieren Sie zum Stammverzeichnis Ihres Gradle-Projekts

   Öffnen Sie ein Terminalfenster (Befehlszeile) und navigieren Sie zum Stammverzeichnis Ihrer Gradle-basierten Anwendung.

1. Erstellen Sie ein Gradle-Init-Skript

   Erstellen Sie eine `init.gradle` Datei mit dem folgenden Inhalt im Verzeichnis.

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

   {{<rewrite-plugin-version>}}\*Ersetzen Sie durch die Version, die Sie in dieser [Testdatei](https://github.com/aws/aws-sdk-java-v2/blob/master/test/v2-migration-tests/src/test/resources/software/amazon/awssdk/v2migrationtests/gradle/before/init.gradle#L6) sehen.

1. Führen Sie den Befehl aus `rewrite`

   Wie beim Maven-Plugin können Sie das Gradle-Plugin im Modus `dryRun` oder `run` ausführen.

   **`dryRun` Modus**

   Das folgende Beispiel zeigt, wie das Plugin im Modus aufgerufen wird. `dryRun`

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

   **`run` Modus**

   Das folgende Beispiel zeigt, wie das Plugin im `run` Modus aufgerufen wird.

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

## Aktuelle Einschränkungen
<a name="migration-tool-limitations"></a>

Die Migration unterstützt zwar den Großteil des V1-Codes durch Regeln zur Codeänderung, die auf das V2-Äquivalent aktualisiert werden, einige Klassen und Methoden sind jedoch nicht abgedeckt. Folgen Sie für diese Klassen und Methoden den [step-by-step Anweisungen](migration-steps.md), um Ihren Code manuell zu migrieren.

Bei einigen Regeln zur Codeänderung, die nicht unterstützt werden, fügt das Migrationstool möglicherweise einen Kommentar hinzu, der wie folgt beginnt:

```
/*AWS SDK for Java v2 migration: Transform for ...
```

Im Anschluss an den Kommentar gibt das Tool einen generischen Stub der V2-Version der Methode oder Klasse aus. In der folgenden Ausgabe hat das Migrationstool beispielsweise versucht, die `setBucketLifecycleConfiguration` Methode des V1 S3-Clients zu migrieren:

```
/*AWS SDK for Java v2 migration: Transform for setBucketLifecycleConfiguration method not supported. 
Please manually migrate your code by using builder pattern, update from BucketLifecycleConfiguration.Rule 
to LifecycleRule, StorageClass to TransitionStorageClass, and adjust imports and names.*/
s3.putBucketLifecycleConfiguration(
        PutBucketLifecycleConfigurationRequest.builder()
            .bucket(bucketName)
            .lifecycleConfiguration(BucketLifecycleConfiguration.builder()
                .build())
            .build());
```

Über die Links in der folgenden Liste gelangen Sie zu Migrationsinformationen, die Ihnen bei der manuellen Migration des Codes helfen.
+ [S3-Client-Unterschiede zwischen Version 1 und Version 2 von AWS SDK für Java](migration-s3-client.md)
+ [S3-Übertragungsmanager](migration-s3-transfer-manager.md) (TransferManager)
+ [DynamoDB-Objektzuordnung](migration-ddb-mapper.md) (Dynamo) DBMapper
+ [EC2 Metadaten-Hilfsprogramm](migration-imds.md) () EC2 MetadataUtils
+ [Kellner](migration-waiters.md) () AmazonDynamo DBWaiters
+ [IAM Policy Builder](migration-iam-policy-builder.md) (Richtlinie)
+ [CloudFront vorsignieren](migration-cloudfront-presigning.md) (CloudFrontUrlSigner,) CloudFrontCookieSigner
+ [S3-Ereignisbenachrichtigungen](migration-s3-event-notification.md) (S3EventNotification)
+ Veröffentlichung von SDK-Metriken ([1.x-Dokumentation](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/generating-sdk-metrics.html), [2.x-Dokumentation](metrics.md))
+ [Nicht unterstützte Codemuster](migration-tool-unsupported-patterns.md) — Detaillierte Beispiele für gängige Codemuster, die eine manuelle Migration erfordern