

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Quelle est la différence entre la version AWS SDK pour Java 1.x et la version 2.x
<a name="migration-whats-different"></a>

Cette section décrit les principaux changements à prendre en compte lors de la conversion d'une application de la AWS SDK pour Java version 1.x à la version 2.x.

## Modification du nom du package
<a name="mig-diff-package-name-change"></a>

Un changement notable entre le SDK pour Java 1.x et le SDK pour Java 2.x est le changement de nom du package. Les noms des packages commencent par `software.amazon.awssdk` dans le SDK 2.x, alors que le SDK 1.x utilise. `com.amazonaws`

Ces mêmes noms différencient les artefacts Maven du SDK 1.x au SDK 2.x. Les artefacts Maven du SDK 2.x utilisent le GroupID, tandis que le SDK 1.x utilise le `software.amazon.awssdk` GroupID. `com.amazonaws`

Il arrive parfois que votre code nécessite une `com.amazonaws` dépendance pour un projet qui, par ailleurs, n'utilise que des artefacts du SDK 2.x. C'est par exemple le cas lorsque vous travaillez avec le côté serveur AWS Lambda. Cela a été expliqué dans la section [Configurer un projet Apache Maven](setup-project-maven.md#modules-dependencies) plus haut dans ce guide.

**Note**  
Plusieurs noms de packages contenus dans le SDK 1.x contiennent. `v2` `v2`Dans ce cas, l'utilisation de signifie généralement que le code du package est conçu pour fonctionner avec la version 2 du service.   
Comme le nom complet du package commence par`com.amazonaws`, il s'agit de composants du SDK 1.x. Voici des exemples de ces noms de packages dans le SDK 1.x :   
`com.amazonaws.services.dynamodbv2`
`com.amazonaws.retry.v2`
`com.amazonaws.services.apigatewayv2`
`com.amazonaws.services.simpleemailv2`

## Ajouter la version 2.x à votre projet
<a name="adding-v2"></a>

Maven est la méthode recommandée pour gérer les dépendances lors de l'utilisation de la version AWS SDK pour Java 2.x. Pour ajouter des composants de la version 2.x à votre projet, mettez à jour votre `pom.xml` fichier avec une dépendance au SDK. 

**Example**  

```
<dependencyManagement>
    <dependencies>
        <dependency>
          <groupId>software.amazon.awssdk</groupId>
          <artifactId>bom</artifactId>
          <version>2.27.21</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>dynamodb</artifactId>
    </dependency>
</dependencies>
```

Vous pouvez également [utiliser les versions 1.x et 2.x lorsque side-by-side](migration-side-by-side.md) vous migrez votre projet vers la version 2.x.

## Immuable POJOs
<a name="immutable-classes"></a>

Les clients et les objets de demande et de réponse d'opération sont désormais immuables et ne peuvent pas être modifiés après création. Pour réutiliser une variable de demande ou de réponse, vous devez créer un objet pour l'attribuer.

**Example de mise à jour d'un objet de demande dans la version 1.x**  

```
DescribeAlarmsRequest request = new DescribeAlarmsRequest();
DescribeAlarmsResult response = cw.describeAlarms(request);

request.setNextToken(response.getNextToken());
```

**Example de mise à jour d'un objet de demande dans la version 2.x**  

```
DescribeAlarmsRequest request = DescribeAlarmsRequest.builder().build();
DescribeAlarmsResponse response = cw.describeAlarms(request);

request = DescribeAlarmsRequest.builder()
        .nextToken(response.nextToken())
        .build();
```

## Méthodes Setter et Getter
<a name="setter-getter-methods"></a>

Dans la version AWS SDK pour Java 2.x, les noms des méthodes setter n'incluent pas le préfixe `set` or`with`. Par exemple, `*.withEndpoint()` c'est maintenant`*.endpoint()`.

Les noms des méthodes Getter n'utilisent pas le `get` préfixe.

**Example de l'utilisation des méthodes setter dans la version 1.x**  

```
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard()
        		.withRegion("us-east-1")
        		.build();
```

**Example de l'utilisation des méthodes setter dans la version 2.x**  

```
DynamoDbClient client = DynamoDbClient.builder()
        		.region(Region.US_EAST_1)
        		.build();
```

**Example de l'utilisation des méthodes getter dans la version 1.x**  

```
String token = request.getNextToken();
```

**Example de l'utilisation des méthodes getter dans la version 2.x**  

```
String token = request.nextToken();
```

## Noms des classes de modèles
<a name="model-classname-changes"></a>

Les noms des classes de modèles qui représentent les réponses des services se terminent par `Response` la version 2 au lieu de `Result` celle utilisée par la version 1.

**Example de noms de classes qui représentent une réponse dans la version 1**  

```
CreateApiKeyResult
AllocateAddressResult
```

**Example de noms de classes qui représentent une réponse dans la version 2**  

```
CreateApiKeyResponse
AllocateAddressResponse
```

## État de migration des bibliothèques et des utilitaires
<a name="migration-libraries-utilities"></a>

### SDK pour bibliothèques et utilitaires Java
<a name="migration-java-sdk-libs-utils"></a>

Le tableau suivant répertorie l'état de migration des bibliothèques et des utilitaires pour le SDK for Java. 


| Nom de la version 1.12.x | Nom de la version 2.x | Depuis la version 2.x | 
| --- | --- | --- | 
| Dynamo DBMapper | [DynamoDbEnhancedClient](dynamodb-enhanced-client.md) | 2.12.0 | 
| Programmes d’attente | [Programmes d'attente](waiters.md) | 2.15.0 | 
| CloudFrontUrlSigner, CloudFrontCookieSigner | [CloudFrontUtilities](https://aws.amazon.com/blogs/developer/amazon-cloudfront-signed-urls-and-cookies-are-now-supported-in-aws-sdk-for-java-2-x/) | 2,18,33 | 
| TransferManager | [S3TransferManager](transfer-manager.md) | 2.19.0 | 
| Client de métadonnées EC2 |  [Client de métadonnées EC2](examples-ec2-IMDS.md)  | 2,19,29 | 
| Analyseur d'URI S3 |  [Analyseur d'URI S3](https://aws.amazon.com/blogs/devops/s3-uri-parsing-is-now-available-in-aws-sdk-for-java-2-x/)  | 2,20,41 | 
| Générateur de politiques IAM | [Générateur de politiques IAM](feature-iam-policy-builder.md) | 2,20,126 | 
| Notifications d’événements S3 | [Notifications d'événements S3](examples-s3-event-notifications.md#s3-event-notification-read) | 2,25,11  | 
| Mise en mémoire tampon côté client Amazon SQS | [API de traitement automatique des demandes par lots pour Amazon SQS](sqs-auto-batch.md) | 2.28.0 | 
| Écouteurs de progression | Écouteurs de progression | [pas encore publié](https://github.com/aws/aws-sdk-java-v2/issues/25) | 

### Bibliothèques associées
<a name="migration-other-sdks"></a>

Le tableau suivant répertorie les bibliothèques publiées séparément mais compatibles avec le SDK for Java 2.x.


| Nom utilisé avec la version 2.x du SDK pour Java | Depuis la version | 
| --- | --- | 
|  [Client de chiffrement Amazon S3](https://docs.aws.amazon.com/amazon-s3-encryption-client/latest/developerguide/what-is-s3-encryption-client.html)  |  3,0.0 1  | 
| [AWS SDK de chiffrement de base de données pour DynamoDB](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java.html) | 3,0.0 2 | 

#### 1 client de chiffrement Amazon S3
<a name="migration-s3-encryption-sdk"></a>

Le client de chiffrement pour Amazon S3 est disponible en utilisant la dépendance Maven suivante.

```
<dependency>
    <groupId>software.amazon.encryption.s3</groupId>
    <artifactId>amazon-s3-encryption-client-java</artifactId>
    <version>{{3.x}}</version>
</dependency>
```

#### 2 SDK AWS de chiffrement de base de données pour DynamoDB
<a name="migration-ddb-encryption-sdk"></a>

Le SDK AWS de chiffrement de base de données pour DynamoDB est disponible pour la version 2 en utilisant la dépendance Maven suivante.

```
<dependency> 
    <groupId>software.amazon.cryptography</groupId>
    <artifactId>aws-database-encryption-sdk-dynamodb</artifactId>
    <version>{{3.x}}</version>
</dependency>
```

Les informations sur la bibliothèque de chiffrement pour DynamoDB qui fonctionne avec la version v1 du SDK Java sont disponibles dans le Guide du développeur du SDK de [chiffrement de base AWS de données (](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/java.html)appelé Amazon *DynamoDB* Encryption Client for Java) et dans. [GitHub](https://github.com/aws/aws-dynamodb-encryption-java)

[Pour plus d'informations sur la bibliothèque de chiffrement DynamoDB compatible avec la version 2 du SDK Java, consultez le guide du développeur du SDK de [chiffrement de base de données et AWS le code](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java.html) source. GitHub](https://github.com/aws/aws-database-encryption-sdk-dynamodb)

Les informations de migration relatives à la bibliothèque de chiffrement sont disponibles dans le [Guide du développeur du SDK AWS de chiffrement de base](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java-migrate.html) de données.

### Détails de migration pour les bibliothèques et les utilitaires
<a name="migrate-libs-utils-details"></a>
+ [Gestionnaire des transferts](migration-s3-transfer-manager.md)
+ [Utilitaire de métadonnées EC2](migration-imds.md)
+ [CloudFrontprésignant](migration-cloudfront-presigning.md)
+ [Analyse d'URI S3](migration-s3-uri-parser.md)
+ [DynamoDB mapping/document APIs](migration-ddb-mapper.md) 
+ [Générateur de politiques IAM](migration-iam-policy-builder.md)
+ [Notifications d'événements S3](migration-s3-event-notification.md)
+ Publication de métriques dans le SDK (documentation [1.x, documentation](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/generating-sdk-metrics.html) [2.x](metrics.md))