

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á.

# O que há de diferente entre AWS SDK para Java 1.x e 2.x
<a name="migration-whats-different"></a>

Esta seção descreve as principais mudanças a serem observadas ao converter um aplicativo do uso da AWS SDK para Java versão 1.x para a versão 2.x.

## Alteração do nome do pacote
<a name="mig-diff-package-name-change"></a>

Uma alteração notável do SDK para Java 1.x para o SDK para Java 2.x é a alteração do nome do pacote. Os nomes dos pacotes começam com `software.amazon.awssdk` no SDK 2.x, enquanto o SDK 1.x usa `com.amazonaws`.

Esses mesmos nomes diferenciam os artefatos do Maven do SDK 1.x para o SDK 2.x. Os artefatos do Maven para o SDK 2.x usam o groupld `software.amazon.awssdk`, enquanto o SDK 1.x usa o groupld `com.amazonaws`.

Algumas vezes, seu código exige uma dependência de `com.amazonaws` para um projeto que, de outra forma, usa somente artefatos do SDK 2.x. Um exemplo disso é quando você trabalha com o AWS Lambda do lado do servidor. Isso foi mostrado na seção [Configurar um projeto do Apache Maven](setup-project-maven.md#modules-dependencies), anteriormente neste guia.

**nota**  
Vários nomes de pacotes no SDK 1.x contêm a `v2`. O uso da `v2` nesse caso geralmente significa que o código no pacote é direcionado para funcionar com a versão 2 do serviço.   
Como o nome completo do pacote começa com `com.amazonaws`, esses são componentes do SDK 1.x. Exemplos desses nomes de pacotes no SDK 1.x:   
`com.amazonaws.services.dynamodbv2`
`com.amazonaws.retry.v2`
`com.amazonaws.services.apigatewayv2`
`com.amazonaws.services.simpleemailv2`

## Adicionar a versão 2.x ao seu projeto
<a name="adding-v2"></a>

O Maven é a forma recomendada de gerenciar dependências ao usar o AWS SDK para Java 2.x. Para adicionar os componentes da versão 2.x ao projeto, basta atualizar o arquivo `pom.xml` com uma dependência no 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>
```

Você também pode [usar as versões 1.x e 2.x side-by-side](migration-side-by-side.md) ao migrar seu projeto para a versão 2.x.

## Imutável POJOs
<a name="immutable-classes"></a>

Os clientes e solicitação de operação e objetos de resposta agora são imutáveis e não podem ser alterados após a criação. Para reutilizar uma variável de solicitação ou resposta, você deve criar um novo objeto para atribuir a ela.

**Example de atualizar um objeto de solicitação na 1.x**  

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

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

**Example de atualizar um objeto de solicitação em 2.x**  

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

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

## Métodos setter e getter
<a name="setter-getter-methods"></a>

No AWS SDK para Java 2.x, os nomes dos métodos setter não incluem o prefixo `set` or`with`. Por exemplo, `*.withEndpoint()` é `*.endpoint()` agora.

Os nomes dos métodos getter não usam o prefixo `get`.

**Example de usar métodos setter na 1.x**  

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

**Example de usar métodos setter na 2.x**  

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

**Example de usar métodos getter na 1.x**  

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

**Example de usar métodos getter na 2.x**  

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

## Nomes da classe do modelo
<a name="model-classname-changes"></a>

Os nomes das classes de modelo que representam as respostas do serviço terminam com `Response` na v2, em vez de `Result`, que a v1 usa.

**Example de nomes de classes que representam uma resposta na v1**  

```
CreateApiKeyResult
AllocateAddressResult
```

**Example de nomes de classes que representam uma resposta na v2**  

```
CreateApiKeyResponse
AllocateAddressResponse
```

## Status da migração de bibliotecas e utilitários
<a name="migration-libraries-utilities"></a>

### Bibliotecas e utilitários do SDK para Java
<a name="migration-java-sdk-libs-utils"></a>

A tabela a seguir lista o status da migração de bibliotecas e utilitários do SDK para Java. 


| Nome da versão 1.12.x | Nome da versão 2.x | Desde a versão em 2.x | 
| --- | --- | --- | 
| Dínamo DBMapper | [DynamoDbEnhancedClient](dynamodb-enhanced-client.md) | 2.12.0 | 
| Waiters | [Waiters](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 | 
| Cliente de metadados do EC2 |  [Cliente de metadados do EC2](examples-ec2-IMDS.md)  | 2.19.29 | 
| Analisador de URI do S3 |  [Analisador de URI do S3](https://aws.amazon.com/blogs/devops/s3-uri-parsing-is-now-available-in-aws-sdk-for-java-2-x/)  | 2.20.41 | 
| Criador de política do IAM | [Criador de política do IAM](feature-iam-policy-builder.md) | 2.20.126 | 
| Notificações de eventos do S3 | [Notificações de eventos do S3](examples-s3-event-notifications.md#s3-event-notification-read) | 2.25.11  | 
| Buffer do lado do cliente do Amazon SQS | [API de agrupamento em lote de automático de solicitações para Amazon SQS](sqs-auto-batch.md) | 2.28.0 | 
| Listeners de progresso | Listeners de progresso | [ainda não lançado](https://github.com/aws/aws-sdk-java-v2/issues/25) | 

### Bibliotecas relacionadas
<a name="migration-other-sdks"></a>

A tabela a seguir lista as bibliotecas lançadas separadamente, mas que funcionam com o SDK para Java 2.x.


| Nome usado com a versão 2.x do SDK para Java | Desde a versão | 
| --- | --- | 
|  [Cliente de criptografia do 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 criptografia de banco de dados para DynamoDB](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java.html) | 3.0.0 2 | 

#### 1Cliente de criptografia do Amazon S3
<a name="migration-s3-encryption-sdk"></a>

O cliente de criptografia para o Amazon S3 está disponível usando a dependência do Maven a seguir.

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

#### 2 SDK AWS de criptografia de banco de dados para DynamoDB
<a name="migration-ddb-encryption-sdk"></a>

O SDK AWS de criptografia de banco de dados para DynamoDB está disponível para V2 usando a seguinte dependência do Maven.

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

As informações sobre a biblioteca de criptografia do DynamoDB que funciona com a versão 1 do Java SDK estão disponíveis no [AWS Guia do desenvolvedor do Database Encryption SDK (chamado Amazon *DynamoDB* Encryption](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/java.html) Client for Java) e em. [GitHub](https://github.com/aws/aws-dynamodb-encryption-java)

[Para obter mais informações sobre a biblioteca de criptografia do DynamoDB que é compatível com a versão 2 do Java SDK, consulte o Guia do desenvolvedor do SDK de [criptografia de banco de dados e AWS a](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java.html) fonte. GitHub](https://github.com/aws/aws-database-encryption-sdk-dynamodb)

As informações de migração sobre a biblioteca de criptografia estão disponíveis no [Guia do desenvolvedor do SDK de criptografia de banco de dados da AWS](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/ddb-java-migrate.html).

### Detalhes da migração para bibliotecas e utilitários
<a name="migrate-libs-utils-details"></a>
+ [Gerenciador de Transferências](migration-s3-transfer-manager.md)
+ [Utilitário de metadados do EC2](migration-imds.md)
+ [CloudFrontpré-assinando](migration-cloudfront-presigning.md)
+ [Análise de URI do S3](migration-s3-uri-parser.md)
+ [DynamoDB mapping/document APIs](migration-ddb-mapper.md) 
+ [Criador de política do IAM](migration-iam-policy-builder.md)
+ [Notificações de eventos do S3](migration-s3-event-notification.md)
+ Publicação de métricas do SDK ([documentação da 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/generating-sdk-metrics.html), [documentação da 2.x](metrics.md))