

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

# Come Amazon Q Developer trasforma il codice per gli aggiornamenti del linguaggio Java
<a name="how-CT-works"></a>

Per trasformare il codice, Amazon Q Developer genera un piano di trasformazione che utilizza per aggiornare la versione del linguaggio di codice del progetto. Dopo aver trasformato il codice, fornisce un riepilogo della trasformazione e una differenza dei file per consentirti di esaminare le modifiche prima di accettarle. Poiché Amazon Q Developer apporta le modifiche minime necessarie per rendere il codice aggiornato compatibile con il JDK di destinazione, è necessaria un’ulteriore trasformazione per aggiornare le librerie e le dipendenze del progetto. Le sezioni seguenti forniscono ulteriori dettagli su come Amazon Q esegue la trasformazione.

## Creazione del codice e di un piano di trasformazione
<a name="build-code-create-plan"></a>

Per iniziare a trasformare il codice, Amazon Q crea il progetto localmente e genera un artefatto di compilazione che contiene il codice sorgente, le dipendenze del progetto e i log di compilazione. 

Dopo aver generato l’artefatto di compilazione, Amazon Q crea il codice in un ambiente di compilazione sicuro e crea un piano di trasformazione personalizzato in base al progetto o al modulo che stai aggiornando. Il piano di trasformazione delinea le modifiche specifiche che Amazon Q tenterà di apportare, tra cui nuove versioni di dipendenza, importanti modifiche al codice e sostituzioni suggerite per il codice obsoleto. Queste modifiche si basano sulla compilazione preliminare del codice e potrebbero cambiare durante la trasformazione.

## Trasformazioni di codice
<a name="transform-code"></a>

Per trasformare il codice, Amazon Q tenta di aggiornarlo alla versione Java di destinazione in base alle modifiche proposte nel piano di trasformazione. Man mano che apporta le modifiche, ricostruisce ed esegue i test di unità esistenti nel codice sorgente per correggere in modo iterativo eventuali errori riscontrati. L’aggiornamento JDK può essere effettuato dalla seguente versione del codice sorgente alla versione di destinazione:
+ Da Java 8 a 17
+ Da Java 8 a 21
+ Da Java 11 a 17
+ Da Java 11 a 21
+ Da Java 17 a 21

Amazon Q apporta le modifiche minime necessarie per rendere il codice compatibile con la versione Java di destinazione. Una volta che Amazon Q ha eseguito un aggiornamento JDK minimo, puoi avviare una trasformazione separata per aggiornare tutte le dipendenze di terze parti. In alternativa, puoi specificare le dipendenze di terze parti e le relative versioni in un file YAML per aggiornare tali dipendenze solo durante la trasformazione dell’aggiornamento della libreria.

Amazon Q tenta di apportare le seguenti modifiche durante l’aggiornamento del codice:
+ Aggiorna i componenti del codice obsoleti in base ai suggerimenti sulla versione Java di destinazione
+ Aggiorna le librerie e i framework più diffusi a una versione compatibile con la versione Java di destinazione. La procedura include l’aggiornamento delle seguenti librerie e framework alle ultime versioni principali disponibili: 
  + Apache Commons IO 
  + Apache HttpClient 
  + bc-fips 
  + Cucumber-JVM 
  + Ibernazione 
  + jackson-annotations 
  + JakartaEE
  + Javax 
  + javax.servlet 
  + jaxb-api 
  + jaxb-impl 
  + jaxen 
  + jcl-over-slf4j 
  + json-simple 
  + jsr305 
  + junit 
  + junit-jupiter-api 
  + Log4j 
  + Micronaut 
  + Mockito 
  + mockito-core 
  + Okio 
  + PowerMockito 
  + Quarkus 
  + slf4j 
  + slf4j-api 
  + Spring Boot 
  + Spring Framework 
  + Spring Security 
  + Swagger 
  + testng 

**Nota**  
Non spegnere o chiudere il computer locale durante la trasformazione del codice, perché la compilazione lato client richiede una connessione di rete stabile.

## Compilazione del codice nell’ambiente locale
<a name="java-local-builds"></a>

Durante una trasformazione, Amazon Q esegue delle build di verifica nell’ambiente locale. Amazon Q trasforma il codice lato server in più fasi. Dopo ogni fase, Amazon Q invia il codice all’ambiente locale per creare e testare le modifiche apportate. Il codice viene quindi rinviato lato server per continuare la trasformazione. 

La build nell’ambiente locale aiuta a verificare il codice trasformato permettendo ad Amazon Q di eseguire test che richiedono l’accesso a risorse private. Per ridurre al minimo i rischi di sicurezza associati alla creazione di AI-generated codice nel tuo ambiente locale, Amazon Q esamina e aggiorna il codice generato per risolvere i problemi di sicurezza.

## Revisione del riepilogo della trasformazione e accettazione delle modifiche
<a name="review-plan-accept-changes"></a>

Una volta completata la trasformazione, Amazon Q ne fornisce un riepilogo con i dettagli sulle modifiche apportate, incluso lo stato della build finale che indica se l’intero progetto è stato aggiornato. È anche possibile visualizzare un riepilogo del log di compilazione per comprendere eventuali problemi che hanno impedito ad Amazon Q di creare il codice nella versione aggiornata.

Il riepilogo della trasformazione include inoltre le differenze tra le modifiche proposte nel piano di trasformazione e le modifiche apportate da Amazon Q al termine dell’operazione per aggiornare il codice, oltre a eventuali modifiche aggiuntive non incluse nel piano originale. 

Dopo aver esaminato il riepilogo della trasformazione, è possibile visualizzare le modifiche proposte da Amazon Q in una visualizzazione delle differenze dei file. Qualsiasi modifica al codice suggerita da Amazon Q non influirà sui file di progetto correnti finché non accetti le modifiche. Il codice trasformato è disponibile fino a 30 giorni dopo il completamento della trasformazione. 

## Completamento di trasformazioni parzialmente riuscite
<a name="partially-successful-transformations"></a>

A seconda della complessità e delle specifiche della codebase, potrebbero verificarsi delle istanze in cui la trasformazione è parzialmente riuscita. Ciò significa che Amazon Q è stato in grado di trasformare solo determinati file o aree di codice del progetto. In questo caso, è necessario aggiornare manualmente il codice rimanente affinché il progetto sia compilabile nella versione del linguaggio aggiornata. 

La chat di Amazon Q nell’IDE può essere d’aiuto per trasformare la parte rimanente di codice. Puoi chiedere ad Amazon Q di esaminare i file parzialmente aggiornati e fornire nuovo codice per risolvere problemi, come gli errori di compilazione. Puoi anche utilizzare [funzionalità come Feature development](q-in-IDE-chat.md#develop-code) e [Workspace context](workspace-context.md) per includere più parti del tuo progetto come contesto e ricevere suggerimenti per più file contemporaneamente. 