Risoluzione degli avvisi di utilizzo obsoleti della libreria per ch.qos.logback e API rimosse in Cloud Manager
Cloud Manager segnala l’utilizzo obsoleto della libreria per ch.qos.logback o altre API rimosse durante i passaggi di compilazione, qualità del codice o distribuzione. Questi avvisi provengono dalle versioni obsolete di ACS AEM Commons, da un classificatore Maven non corretto o da un codice cliente che fa riferimento direttamente alle API rimosse. In alcuni casi, i riferimenti di Logback provengono dai bundle della piattaforma gestita da Adobe e non richiedono modifiche da parte del cliente. L’identificazione dell’origine esatta (versione ACS Commons, mancata corrispondenza del classificatore, codice cliente o runtime Adobe) determina la correzione corretta.
Descrizione description
Problema: Cloud Manager segnala che l’utilizzo di ch.qos.logback o API rimossa è stato dichiarato obsoleto durante i controlli di qualità della build o del codice
Descrizione
Gli avvisi o gli errori della pipeline del Centro operativo Cloud Manager indicano un utilizzo obsoleto di ch.qos.logback o di altre API rimosse. Questi avvisi vengono visualizzati nella fase di compilazione in region-deprecated-api o configuration-api controlli. La causa principale varia: le versioni obsolete di ACS AEM Commons richiamano il Logback in modo transitorio, viene utilizzato il classificatore Maven errato, i riferimenti al codice cliente fanno riferimento alle API rimosse o i bundle interni gestiti da Adobe registrano il Logback in fase di esecuzione senza influire sulla build.
Ambiente:
- Adobe Experience Manager as a Cloud Service (AEMaaCS)
- Cloud Manager (pipeline di build, qualità del codice e distribuzione)
- ACS AEM Commons
Problema/Sintomi:
- I registri di compilazione di Cloud Manager mostrano:
Usage of deprecated package found : ch.qos.logback.* : This internal logback API is not supported by AEM as a Cloud Service - I registri di runtime contengono voci come
ServiceEvent REGISTERED [ ch.qos.logback.core.filter.Filter]anche quando il codice del cliente non utilizza la funzione Logback - Compilazione non riuscita con errori relativi alle API obsolete, ad esempio
RequestResponseFactory - Analizzatore codice segnala errori quali
Service.ranking is not of type Integero avvisi provenienti dagroovy-all:2.4.15 - Gli errori del precompilatore JSP vengono visualizzati dopo l’aggiornamento di ACS Commons:
File tld:http://sling.apache.org/taglibs/sling/1.0 not found
Causa principale:
Gli avvisi obsoleti della libreria si verificano quando Cloud Manager rileva l’utilizzo di API pianificate per la rimozione. I pacchetti ACS AEM Commons precedenti includono ch.qos.logback in modo transitorio e l’utilizzo del classificatore ACS Commons on-premise su AEMaaCS attiva anche questo avviso. Il codice cliente che fa riferimento alle API obsolete in Cloud Service, ad esempio com.day.cq.contentsync.handler.util.RequestResponseFactory, genera errori simili. I riferimenti di logback dai bundle di piattaforma gestiti da Adobe non causeranno blocchi di distribuzione e non richiedono l’azione del cliente.
Come confermare
-
Esaminare i registri di compilazione di Cloud Manager per le voci che fanno riferimento alle versioni del bundle
ch.qos.logback.*,groovy-all:2.4.15,com.day.cq.contentsync.handler.utilo ACS Commons. Se i registri non sono accessibili, scaricali tramite Cloud Manager>Pipeline>Esecuzione>Registri. -
Confermare la versione esatta di ACS Commons individuando righe quali
com.adobe.acs:acs-aem-commons-bundle:5.2.0o avvisi che fanno riferimento a Logback. -
Esegui una struttura di dipendenze Maven completa per verificare la presenza di versioni in conflitto:
code language-none mvn dependency:tree -Dincludes=com.adobe.acs:acs-aem-commons* -
Cerca nei file di proprietà del cliente eventuali riferimenti di Logback diretti:
-
Windows:
code language-none findstr /S /N /I "ch.qos.logback" pom.xml *.xml *.yml *.yaml
-
Risoluzione resolution
-
Mancata corrispondenza della versione o del classificatore di ACS Commons (più comune): Verifica la dipendenza ACS Commons di
all/pom.xmlnel progetto. Verificare che<classifier>cloud</classifier>sia presente e che la versione sia almeno6.11.0. La voce deve essere simile a:code language-none <groupId>com.adobe.acs</groupId> <artifactId>acs-aem-commons-all</artifactId> <version>6.16.0</version> <classifier>cloud</classifier>
Se nell’albero delle dipendenze vengono visualizzate versioni in conflitto, rimuovere eventuali riferimenti diretti o transitivi alle build ACS Commons precedenti.
2. Codice cliente che fa riferimento a API rimosse: Cerca nel codebase i pacchetti obsoleti contrassegnati nei registri di Cloud Manager. Sostituire gli utilizzi delle API rimosse come RequestResponseFactory con le API Sling Builder (org.apache.sling.api.request.builder.Builders o SlingUriBuilder). Esegui nuovamente l’analisi del codice Cloud Manager per confermare che non rimangano avvisi API obsoleti.
3. Errori del precompilatore JSP dopo un aggiornamento di ACS Commons: Aggiungi la dipendenza Sling JSP Taglib al modulo ui.apps con scope=provided:
"
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.scripting.jsp.taglib</artifactId>
<version>2.4.0</version>
<scope>fornito</scope>
"
Eseguire nuovamente la pipeline e confermare che l’errore tld not found non sia più presente.
4. errori di configurazione aemanalyser nelle versioni successive: Se la versione 1.6.16 restituisce errori quali Service.ranking is not of type Integer, passare alla versione 1.6.4 o 1.6.14. Esegui nuovamente la pipeline e conferma che venga completata senza errori di analisi.
5. groovy-all:2.4.15 contrassegnato come obsoleto: Sostituisci con la variante Orbinson Groovy Console:
"
<groupId>be.orbinson.aem</groupId>
<artifactId>aem-groovy-console-all</artifactId>
<version>19.0.8</version>
<type>zip</type>
"
Il passaggio Conferma qualità codice segnala nessun avviso groovy-all. Se Groovy Console non è in uso, rimuoverla completamente.
6. Riferimenti di logback solo dai bundle gestiti da Adobe: Se in Qualità codice non sono visualizzati avvisi di libreria obsoleti e le uniche voci di logback sono righe di sola esecuzione come ServiceEvent REGISTERED [ ch.qos.logback.core.filter.Filter] nei registri, senza avvisi nel passaggio di compilazione, non è richiesta alcuna azione. Queste provengono dai bundle della piattaforma Adobe e non bloccano l’implementazione.
7. Convalida: Avvia una nuova analisi del codice o l’esecuzione della pipeline completa. I registri di conferma della compilazione non mostrano ch.qos.logback voci in region-deprecated-api e nessun avviso API obsoleto per il codice cliente o ACS Commons.