Modernizzazione delle applicazioni Java

watsonx Code Assistant Piano standard

Potete modernizzare la vostra applicazione a Liberty. Per modernizzare l'applicazione, si carica prima un bundle di migrazione o si costruisce e analizza l'applicazione, quindi si risolvono i problemi dell'applicazione.

Prima di iniziare, configurate l'ambiente Java aziendale.

Le sorgenti del server applicativo tra cui è possibile scegliere sono:

  • Apache Server applicativo Tomcat
  • Server delle applicazioni JBoss
  • WebLogic Application Server
  • WebSphere Application Server tradizionale V6.1
  • WebSphere Application Server tradizionale V7.0
  • WebSphere Application Server tradizionale V8.0
  • WebSphere Application Server tradizionale V8.5.5
  • WebSphere Application Server tradizionale V9.0
  • Altri server applicativi di terze parti

Solo per l' Eclipse IDE: Per ottenere risultati ottimali con un'applicazione Java multimodulo, assicurarsi di importare il modulo aggregatore e ogni sottomodulo come progetti separati nell'area di lavoro di Eclipse. è improbabile che Watsonx Code Assistant riesca a eseguire l'introspezione del progetto se si importa la directory di primo livello come un unico progetto.

Completare i passaggi per caricare il bundle di migrazione dell'applicazione o i passaggi per analizzare l'applicazione. Dopo aver completato una serie di passaggi, è possibile risolvere i problemi relativi alla migrazione. I passaggi per risolvere i problemi sono gli stessi sia per i passaggi del bundle di migrazione che per l'analisi dell'applicazione. Una volta risolti i problemi, si ottiene un'applicazione modernizzata.

Tempo necessario per analizzare il codice

Il tempo necessario per analizzare la tua applicazione varia. I tempi seguenti sono tipici.

Tempo necessario per l'analisi
Ora Dettagli applicazione
Da pochi secondi a qualche minuto Meno di 100 classi
da 2 a 10 minuti da 20.000 a 50.000 righe di codice
10 o più minuti 300.000 righe di codice

Quando watsonx Code Assistant analizza l'applicazione, esclude per impostazione predefinita alcuni pacchetti di terze parti dall'analisi del codice. Per ulteriori informazioni, vedere Pacchetti di terze parti esclusi dall'analisi delle applicazioni.

Utilizzo di un bundle di migrazione per modernizzare l'applicazione

I passi seguenti presuppongono l'uso di IBM Cloud® Transformation Advisor versione 3.10 o successiva per generare un bundle di migrazione. Il pacchetto di migrazione contiene un elenco di problemi di modernizzazione che devono essere affrontati. Contiene anche informazioni di configurazione generate automaticamente per consentire all'applicazione di funzionare correttamente in Liberty.

Se hai già caricato e analizzato un pacchetto di migrazione per il tuo progetto, caricando un nuovo pacchetto di migrazione sovrascriverai l'analisi esistente.

Prima di modernizzare l'applicazione, eseguirne una build completa per assicurarsi di partire da una build dell'applicazione buona e conosciuta. Questa configurazione garantisce inoltre che i file di classe siano aggiornati con l'ultimo codice sorgente, requisito necessario prima di eseguire automazioni che aggiungono modifiche per gli aggiornamenti di versione dell' Java.

Se si annullano le modifiche al codice, è necessario fare clic su Torna a caricare/analizzare ed eseguire un'analisi completa se si desidera modernizzare nuovamente l'applicazione.

  1. Nell'IDE, fate clic con il tasto destro del mouse su qualsiasi elemento della gerarchia nella directory dell'applicazione che volete modernizzare.

  2. Utilizzare uno dei due percorsi per avviare il processo di modernizzazione. Entrambi sono uguali:

    • Fare clic su watsonx Code Assistant quindi fare clic su Modernizza a Liberty.
    • Fare clic su Modernize Java Applications, quindi su Modernize to Liberty.
  3. Nella pagina Modernize* *, caricare il bundle di migrazione.

    L'IDE analizza la cartella del progetto, raccoglie informazioni sull'applicazione e quindi carica il bundle di migrazione generato da Transformation Advisor.

    1. Fare clic su Carica bundle di migrazione.

    2. Selezionate il file del bundle dell'applicazione '.zip dall'elenco e fate clic su Apri.

      Quando il processo di caricamento del bundle di migrazione è completato, la pagina Modernize* *visualizza i seguenti file di configurazione contenuti nel bundle:

      • server.xml è il file di configurazione di Liberty ed è necessario per avviare l'applicazione.
      • Containerfile è necessario solo per creare un'immagine del contenitore per l'applicazione Liberty.
    3. Selezionate i file da aggiungere al progetto e fate clic su 'Proceed.

      • (Obbligatorio) Selezionare il file " server.xml.
      • (Facoltativo) Selezionare il file 'Containerfile solo se si sta creando un'immagine contenitore per l'applicazione Liberty.

    Al termine del caricamento del bundle di migrazione, vengono visualizzati i problemi da risolvere o rivedere.

  4. Risolvere i problemi dell'applicazione.

    A seconda dei problemi da risolvere, la capacità di risolverli può essere automatizzata, assistita o autogestita. I problemi presenti nella scheda Informazioni aggiuntive non richiedono una modifica del codice, ma potrebbe essere necessario verificarli o testarli e apportare una modifica al codice, se lo si desidera.

Analizzare l'applicazione per modernizzarla

I passi seguenti presuppongono che si stia analizzando l'applicazione invece di usare un bundle di migrazione Transformation Advisor per modernizzare l'applicazione. L'analisi fornisce un elenco di problemi da risolvere e una configurazione limitata del server nel file 'server.xml. Il file " server.xml " contiene un elenco delle funzionalità utilizzate dall'applicazione, ma non include altre informazioni di configurazione come le connessioni al database o le configurazioni JMS.

Se si annullano le modifiche al codice, è necessario fare clic su Torna a caricare/analizzare ed eseguire un'analisi completa se si desidera modernizzare nuovamente l'applicazione.

  1. Nell'IDE, fate clic con il tasto destro del mouse su qualsiasi elemento della gerarchia nella directory dell'applicazione che volete modernizzare.

  2. Utilizzare uno dei due percorsi per avviare il processo di modernizzazione. Entrambi sono uguali:

    • Fare clic su watsonx Code Assistant quindi fare clic su Modernizza a Liberty.
    • Fare clic su Modernize Java Applications, quindi su Modernize to Liberty.
  3. Nella pagina Modernizza* *, espandere Analizza applicazione e fare clic su Avvia analisi.

  4. Selezionare i parametri di analisi, che definiscono le regole in base alle quali viene analizzato il server applicativo.

    1. Selezionare l'origine del server applicazioni e la destinazione del server applicazioni.

    2. È possibile modificare l'origine di Java SE, che viene visualizzata automaticamente con un valore consigliato.

      Il valore consigliato si basa sulla versione di Java SE che watsonx Code Assistant consiglia per l'origine del server applicazioni. Il server delle applicazioni potrebbe utilizzare una versione di Java SE diversa da quella consigliata. Se lo è, modificate il sorgente Java SE con la versione utilizzata dal vostro application server.

      Ad esempio, watsonx Code Assistant raccomanda Java SE 8 per WebSphere Application Server V8.5.5 anche se il vostro application server potrebbe utilizzare una versione precedente di Java SE.

      La versione minima supportata di Java è Java 5.

    3. Selezionare la destinazione Java SE.

    4. Fare clic su Analizza o su Costruisci e analizza.

      L'analisi dell'applicazione viene eseguita sul binario dell'applicazione. L'applicazione deve essere costruita prima di iniziare l'analisi. È possibile creare l'applicazione automaticamente o manualmente.

      • Per creare e analizzare automaticamente l'applicazione, fate clic su Costruisci e analizza.
      • Se si costruisce manualmente l'applicazione, bisogna prima costruirla e poi fare clic su Analizza.

      Dopo che l'applicazione è stata costruita e analizzata, vengono visualizzati i problemi da correggere o rivedere.

      Quando si fa clic su Build and analyze (Crea e analizza ), l'applicazione viene creata nella versione sorgente dell' Java e corrente, in modo da poter essere analizzata per verificare eventuali problemi di aggiornamento dell' Java. Assicurarsi che l'IDE abbia il kit di sviluppo IDE ( Java ) della versione sorgente dell' Java, configurato in modo che l'IDE possa compilare correttamente l'applicazione.

  5. Risolvere i problemi dell'applicazione.

    A seconda dei problemi da risolvere, la capacità di risolverli può essere automatizzata, assistita o autogestita. I problemi presenti nella scheda Informazioni aggiuntive non richiedono una modifica del codice, ma potrebbe essere necessario verificarli o testarli e apportare una modifica al codice, se lo si desidera.

Perché in un report di analisi viene incluso un file.class invece del file.java?

Quando si esegue un'analisi di un binario (JAR/WAR/EAR), i problemi vengono sempre rilevati nei file di classe. Quando lo scanner binario viene eseguito al di fuori di watsonx Code Assistant, non ha accesso al codice sorgente, quindi il file.class viene incluso nel rapporto di analisi. Quando si importa un piano di migrazione o si esegue un'analisi all'interno di watsonx Code Assistant, i rapporti mostrano i riferimenti ai file di classe, ma watsonx Code Assistant collega il file.class al file.java e i file.java vengono visualizzati nell'interfaccia utente di watsonx Code Assistant.

Correzione di problemi e revisione di informazioni aggiuntive per la vostra applicazione

La pagina Modernizza* *elenca le seguenti informazioni:

  • L'origine del server applicativo e la destinazione del server applicativo
  • La versione Java SE di partenza e la versione Java SE di arrivo
  • Collegamenti a un rapporto sulla tecnologia, a un rapporto sull'inventario e a un rapporto di analisi
  • Schede per i problemi da risolvere, che possono essere automatici, assistiti o autogestiti, e informazioni aggiuntive.

Il kit di sviluppo Java di destinazione è necessario quando si eseguono le correzioni automatiche e quando si costruisce l'applicazione dopo le modifiche apportate alla versione Java di destinazione. Assicuratevi che il kit di sviluppo Java di destinazione sia configurato per il vostro IDE.

  • L'estensione dell' Eclipse IDE cerca automaticamente di trovare il kit di sviluppo Java corretto che corrisponde alla versione Java target dall'insieme di tutti i kit di sviluppo Java configurati nell'IDE.
  • Nell'IDE Visual Studio Code, è necessario modificare manualmente la configurazione del Java developer kit.

Completamento delle correzioni automatiche

Se esiste una scheda Correzioni automatiche con una o più correzioni, selezionare la scheda.

Poiché watsonx Code Assistant completa le correzioni per l'utente, non è necessario apportare alcuna modifica al codice. Il modello linguistico di grandi dimensioni (LLM) non viene utilizzato per le correzioni automatiche.

  1. Espandere le istruzioni e leggerle.
  2. Aprire facoltativamente il problema per esaminarne la descrizione.
  3. Fare clic su Esegui correzioni automatiche.
    • Le correzioni automatiche sono state risolte.
    • I problemi esterni rimangono nell'elenco finché non si aggiorna la dipendenza associata.
  4. Al termine dell'esecuzione delle correzioni automatiche, fare clic su Ricostruisci e aggiorna per aggiornare l'elenco dei problemi.

Se le correzioni automatiche non vengono eseguite e producono errori di compilazione nell'output della console, assicurarsi di aggiornare la versione del plug-in di maven-compiler a 3.13.0 o più recente.

Completamento delle correzioni assistite

Se esiste una scheda Correzioni assistite con una o più correzioni, selezionare la scheda.

Sebbene l'utente corregga il codice, watsonx Code Assistant lo assiste fornendo suggerimenti nella chat su come modificare il codice.

Il livello di assistenza disponibile per i problemi varia a seconda del problema. Le correzioni assistite ti aiutano a risolvere il problema e a volte un suggerimento sul codice ti porta fino in fondo o quasi. Altre volte, il suggerimento di codice può essere semplice come la rimozione di una vecchia API per evitare un errore di compilazione e non è richiesta alcuna ulteriore azione da parte dell'utente. È importante seguire i passaggi per ogni riparazione assistita per comprenderne il valore e i limiti. Nei casi in cui non viene fornito un suggerimento completo per il codice, puoi pensare alla correzione assistita come a un inizio di conversazione nella chat. Continuate a partecipare alla chat per comprendere il problema e la sua risoluzione.

Per un elenco dei problemi associati alle correzioni assistite, vedere il riferimento alle correzioni assistite.

Per utilizzare le correzioni assistite:

  1. Espandere le Istruzioni e seguire le istruzioni.

  2. Per ogni questione, espandetela.

  3. Fare clic su Leggi tutto per espandere il numero.

  4. Fare clic sul file elencato nel problema.

    Il file si apre nell'editor.

  5. Espandere il problema per visualizzarne i dettagli.

  6. Se nei dettagli viene richiesto di selezionare uno snippet di codice, selezionarlo.

  7. Fare clic su Aiutami per ricevere assistenza nella risoluzione del problema.

    Se si utilizza Visual Studio Code, si applicano le seguenti restrizioni:

    • Assicurarsi di selezionare il codice Java in un solo editor attivo.
    • Assicuratevi che l'editor attivo in cui avete selezionato il codice Java sia in un gruppo di editor diverso da quello della vista Modernize to Liberty o Java Upgrade.
  8. Segui i suggerimenti sul codice nella chat in modo da modificare il codice per risolvere i problemi.

    A volte, la chat fornisce una risposta informativa invece di un suggerimento di codice.

  9. Mentre risolvi i problemi, fai clic su Ricostruisci e aggiorna finché tutte le correzioni assistite non sono state risolte.

Completare le correzioni autogestite

Se è presente una scheda Correzioni autogestite con una o più correzioni, selezionare la scheda.

Si modifica il codice e si stabilisce come correggerlo, ma si può ottenere aiuto dalla chat.

  1. Espandere le Istruzioni e seguire le istruzioni.

  2. Espandere ogni numero.

  3. Fare clic su Leggi tutto per espandere il numero.

  4. Fare clic sul file elencato nel problema.

    Il file si apre nell'editor.

  5. Fare clic su Avvia chat, che viene visualizzato per ogni occorrenza del problema.

    Si apre la finestra della chat per ricevere aiuto in merito all'evento. Ad esempio, si può chiedere all'assistente al codice cosa fa il codice corrente. Oppure si può chiedere se esiste un'implementazione alternativa per il codice problematico.

  6. Mentre risolvi i problemi, fai clic su Ricostruisci e aggiorna finché tutte le correzioni autoguidate non sono state risolte.

Indirizzare le informazioni aggiuntive

Se è presente una scheda Informazioni aggiuntive con un numero pari o superiore a uno, selezionare la scheda.

I problemi elencati nella scheda sono determinati allo stesso modo dei problemi in altre schede. Sebbene le questioni relative alle informazioni aggiuntive non richiedano una modifica del codice, è opportuno esaminarle per assicurarsi che l'applicazione funzioni quando il codice viene migrato.

Le informazioni aggiuntive potrebbero indicare problemi, come lievi cambiamenti comportamentali in un API o problemi di connettività nei database o nei registri utente, e cosa fare al riguardo.

Ad esempio, si dispone di un database a cui si connette l'applicazione. Leggendo il numero per questa situazione, ci si assicura che l'host e la porta configurati per l'applicazione siano validi e accessibili quando l'applicazione viene migrata.

  • Espandere le istruzioni e seguirle.

  • Fare clic su ogni numero.

    • Fare clic su Leggi tutto per espandere il numero.
    • Fate clic sul link del file elencato nel problema per esaminare il codice.

Lavorare su questioni esterne all'applicazione corrente

Mentre si lavora sulle correzioni, alcune potrebbero essere classificate come problemi esterni all'applicazione corrente. Il codice sorgente di questi problemi si trova in archivi specifici che non fanno parte dell'applicazione sorgente corrente.

Se l'archivio è una biblioteca di proprietà dell'organizzazione:

  1. È possibile aprire il codice sorgente associato come applicazione separata e utilizzare watsonx Code Assistant per correggere i problemi.

  2. Quindi, è possibile aggiornare l'applicazione corrente per utilizzare la nuova versione corretta.

Se l'archivio è una biblioteca non di proprietà della vostra organizzazione:

  1. È necessario aggiornare a una versione che non contenga questo problema. Se non esiste una versione simile, potrebbe essere necessario utilizzare una tecnologia alternativa.

  2. È possibile avviare una conversazione con watsonx Code Assistant per ottenere assistenza nella scelta di un sostituto. Per iniziare, provate a chiedere a What is the library X used for? o Is it easy to replace?. Continuate la conversazione per ottenere maggiori informazioni sull'uso specifico della biblioteca.