

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Cosa c'è di diverso tra AWS SDK per Java 1.x e 2.x
<a name="migration-whats-different"></a>

Questa sezione descrive le principali modifiche da tenere a mente quando si converte un'applicazione dall'utilizzo della AWS SDK per Java versione 1.x alla versione 2.x.

## Modifica del nome del pacchetto
<a name="mig-diff-package-name-change"></a>

Una modifica notevole rispetto all'SDK for Java 1.x all'SDK for Java 2.x è la modifica del nome del pacchetto. I nomi dei pacchetti iniziano con `software.amazon.awssdk` SDK 2.x, mentre lo utilizza l'SDK 1.x. `com.amazonaws`

Questi stessi nomi differenziano gli artefatti Maven da SDK 1.x a SDK 2.x. Gli artefatti Maven per l'SDK 2.x utilizzano GroupID, mentre l'SDK 1.x utilizza `software.amazon.awssdk` GroupID. `com.amazonaws`

In alcuni casi il codice richiede una dipendenza per un progetto che altrimenti utilizza solo artefatti SDK 2.x`com.amazonaws`. Un esempio di ciò è quando si lavora con il lato server. AWS Lambda Questo è stato mostrato nella sezione [Configurazione di un progetto Apache Maven precedente](setup-project-maven.md#modules-dependencies) di questa guida.

**Nota**  
Diversi nomi di pacchetto nell'SDK 1.x contengono. `v2` L'uso di `v2` in questo caso di solito significa che il codice contenuto nel pacchetto è destinato a funzionare con la versione 2 del servizio.   
Poiché il nome completo del pacchetto inizia con`com.amazonaws`, si tratta di componenti SDK 1.x. Esempi di questi nomi di pacchetto nell'SDK 1.x sono:   
`com.amazonaws.services.dynamodbv2`
`com.amazonaws.retry.v2`
`com.amazonaws.services.apigatewayv2`
`com.amazonaws.services.simpleemailv2`

## Aggiungere la versione 2.x al progetto
<a name="adding-v2"></a>

Maven è il modo consigliato per gestire le dipendenze quando si utilizza la 2.x. AWS SDK per Java Per aggiungere componenti della versione 2.x al progetto, aggiorna il `pom.xml` file con una dipendenza dall'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>
```

Puoi anche [utilizzare le versioni 1.x e 2.x side-by-side durante](migration-side-by-side.md) la migrazione del progetto alla versione 2.x.

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

Client, richieste di operazione e oggetti di risposta non sono più modificabili e non possono essere cambiati dopo la creazione. Per riutilizzare una variabile di richiesta o di risposta, è necessario creare un nuovo oggetto per assegnarla.

**Example di aggiornamento di un oggetto richiesta in 1.x**  

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

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

**Example di aggiornamento di un oggetto richiesta in 2.x**  

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

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

## Metodi Setter e Getter
<a name="setter-getter-methods"></a>

Nella versione AWS SDK per Java 2.x, i nomi dei metodi setter non includono il prefisso or. `set` `with` Ad esempio, `*.withEndpoint()` è adesso. `*.endpoint()`

I nomi dei metodi Getter non utilizzano il `get` prefisso.

**Example dell'utilizzo dei metodi setter in 1.x**  

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

**Example dell'utilizzo dei metodi setter in 2.x**  

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

**Example di usare i metodi getter in 1.x**  

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

**Example di usare i metodi getter in 2.x**  

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

## nomi delle classi del modello
<a name="model-classname-changes"></a>

I nomi delle classi del modello che rappresentano le risposte di servizio terminano con `Response` la v2 anziché con `Result` quella utilizzata dalla v1.

**Example di nomi di classi che rappresentano una risposta in v1**  

```
CreateApiKeyResult
AllocateAddressResult
```

**Example di nomi di classi che rappresentano una risposta in v2**  

```
CreateApiKeyResponse
AllocateAddressResponse
```

## Stato della migrazione di librerie e utilità
<a name="migration-libraries-utilities"></a>

### SDK for Java: librerie e utilità
<a name="migration-java-sdk-libs-utils"></a>

La tabella seguente elenca lo stato di migrazione delle librerie e delle utilità per l'SDK for Java. 


| Nome della versione 1.12.x | Nome della versione 2.x | Dalla versione 2.x | 
| --- | --- | --- | 
| Dinamo DBMapper | [DynamoDbEnhancedClient](dynamodb-enhanced-client.md) | 2.12.0 | 
| Waiter | [Waiter](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 EC2 per metadati |  [Client EC2 Metadata](examples-ec2-IMDS.md)  | 2.19.29 | 
| Analizzatore URI S3 |  [Analizzatore URI S3](https://aws.amazon.com/blogs/devops/s3-uri-parsing-is-now-available-in-aws-sdk-for-java-2-x/)  | 2.20.41 | 
| IAM Policy Builder | [IAM Policy Builder](feature-iam-policy-builder.md) | 2.20.126 | 
| Notifiche di eventi di Amazon S3 | [Notifiche di eventi S3](examples-s3-event-notifications.md#s3-event-notification-read) | 2.25.11  | 
| Buffering lato client di Amazon SQS | [API di batch automatico delle richieste per Amazon SQS](sqs-auto-batch.md) | 2.28.0 | 
| Listener di avanzamento | Listener di avanzamento | [non ancora rilasciato](https://github.com/aws/aws-sdk-java-v2/issues/25) | 

### librerie correlate
<a name="migration-other-sdks"></a>

La tabella seguente elenca le librerie rilasciate separatamente ma che funzionano con l'SDK for Java 2.x.


| Nome utilizzato con la versione 2.x dell'SDK for Java | Dalla versione | 
| --- | --- | 
|  [Client di crittografia 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 di crittografia del database per DynamoDB](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java.html) | 3.0.0 2 | 

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

Il client di crittografia per Amazon S3 è disponibile utilizzando la seguente dipendenza Maven.

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

#### 2 SDK AWS di crittografia del database per DynamoDB
<a name="migration-ddb-encryption-sdk"></a>

Il AWS Database Encryption SDK per DynamoDB è disponibile per la versione 2 utilizzando la seguente dipendenza Maven.

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

Le informazioni sulla libreria di crittografia per DynamoDB che funziona con la versione 1 di Java SDK sono disponibili nella [AWS Database Encryption SDK Developer Guide (denominata Amazon *DynamoDB* Encryption](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/java.html) Client for Java) e in. [GitHub](https://github.com/aws/aws-dynamodb-encryption-java)

[Per ulteriori informazioni sulla libreria di crittografia DynamoDB compatibile con la versione 2 di Java SDK, consulta la [Database Encryption SDK Developer Guide e AWS il](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java.html) codice sorgente. GitHub](https://github.com/aws/aws-database-encryption-sdk-dynamodb)

Le informazioni sulla migrazione sulla libreria di crittografia sono disponibili nella [AWS Database](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java-migrate.html) Encryption SDK Developer Guide.

### Dettagli sulla migrazione per librerie e utilità
<a name="migrate-libs-utils-details"></a>
+ [Transfer Manager](migration-s3-transfer-manager.md)
+ [Utilità per i metadati EC2](migration-imds.md)
+ [CloudFrontpreassegnazione](migration-cloudfront-presigning.md)
+ [analisi URI S3](migration-s3-uri-parser.md)
+ [DynamoDB mapping/document APIs](migration-ddb-mapper.md) 
+ [IAM Policy Builder](migration-iam-policy-builder.md)
+ [Notifiche di eventi S3](migration-s3-event-notification.md)
+ [Pubblicazione delle metriche SDK (documentazione [1.x, documentazione 2.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/generating-sdk-metrics.html))](metrics.md)