Problemi di obsolescenza di Java 8 e Java 11 durante la migrazione a Java 21 in AEMaaCS

Adobe Experience Manager (AEM) as a Cloud Service non supporta più Java 8 o Java 11 in fase di runtime e richiede la migrazione a Java 21. Questo problema si verifica quando le versioni Java di build-time, le versioni Java di runtime, le dipendenze di terze parti o le timeline di migrazione creano problemi di compatibilità e incertezza sulle azioni richieste. Per risolvere il problema, verifica runtime, convalida compatibilità e aggiorna build.

Descrizione description

Ambiente

Adobe Experience Manager as a Cloud Service (AEMaaCS)

Problema/Sintomi

  • Gli avvisi sulla build di Cloud Manager indicano l’utilizzo di API Java obsolete.
  • L’ambiente esegue Java 21 in fase di runtime, mentre la build utilizza ancora Java 11.
  • I team non sono sicuri che le build Java 11 continuino a essere supportate dopo il rollout runtime Java 21.
  • Le notifiche del Centro operativo fanno riferimento ai requisiti di obsolescenza o migrazione di Java.
  • Le versioni runtime e build-time Java appaiono incoerenti tra gli ambienti.

Causa principale

Il problema si verifica perché AEM as a Cloud Service aggiorna gli ambienti di runtime a Java 21, mentre i progetti dei clienti possono continuare a utilizzare Java 11 per i processi di build. Runtime Java è gestito da Adobe, mentre build-time Java è controllato dalla configurazione del progetto. Comprendere male questa separazione, insieme a API obsolete e incompatibilità di dipendenze, porta a problemi di migrazione e convalida della build.

Risoluzione resolution

Segui questi passaggi per convalidare l’utilizzo di Java Runtime e preparare l’applicazione per la compatibilità con Java 21:

  1. Verifica la versione Java di runtime aprendo Developer Console da Cloud Manager e rivedendo la versione Java riportata.
  2. Registra la versione Java runtime tramite un componente OSGi personalizzato registrando il valore di System.getProperty("java.version") quando la versione runtime non è visibile in Developer Console.
  3. Esaminare il file .cloudmanager/java-version e determinare se il progetto viene generato con Java 11, 17 o 21.
  4. Convalidare la compatibilità con Java 21 verificando che l’ambiente sia in AEM versione 17098 o successiva, eseguendo il SDK locale con Java 21, distribuendo l’applicazione localmente e verificando che non si verifichino problemi di caricamento o dipendenza.
  5. Creare un ramo di sviluppo che imposta .cloudmanager/java-version su 21 ed eseguire una pipeline di sviluppo per convalidare il comportamento dell’applicazione in Java 21.
  6. Controlla l’utilizzo delle API obsolete quando vengono visualizzate le notifiche del Centro operativo e aggiorna il codice che fa riferimento a pacchetti obsoleti o rimossi, ad esempio API Sling, Felix o Jetty rimosse.
  7. Aggiornare la versione della build a Java 21 creando o modificando il file .cloudmanager/java-version con 21 ed eseguendo una pipeline non di produzione una volta completata la convalida della compatibilità.
  8. Rivedi eventuali e-mail di notifica della migrazione Java 21 e aggiorna le librerie o le dipendenze non supportate identificate nell’analisi delle dipendenze. Ad esempio, sostituisci o aggiorna le versioni non supportate delle librerie, come Groovy o Logback, se identificate.
  9. Convalidare la risoluzione confermando che il runtime riporta Java 21, che le build di Cloud Manager hanno esito positivo, che le notifiche di obsolescenza non vengono più visualizzate e che i test funzionali hanno esito positivo.

Quando inoltrare la richiesta

  • Dopo la convalida delle autorizzazioni, Developer Console rimane inaccessibile.
  • L’applicazione continua a mostrare incompatibilità di dipendenza dopo la convalida Java 21.
  • Le build di Cloud Manager non riescono dopo aver aggiornato la versione di build a Java 21.
  • Le dipendenze non supportate rimangono irrisolte dopo l’analisi della migrazione e il monitoraggio e aggiornamento.

Lettura correlata

recommendation-more-help
experience-cloud-kcs-help-kbarticles