Sovrapposizioni

Ultimo aggiornamento: 2023-05-04
  • Argomenti:
  • Developing
    Visualizza ulteriori informazioni su questo argomento
  • Creato per:
  • Developer
ATTENZIONE

AEM 6.4 ha raggiunto la fine del supporto esteso e questa documentazione non viene più aggiornata. Per maggiori dettagli, consulta la nostra periodi di assistenza tecnica. Trova le versioni supportate qui.

AEM (e prima di questo, CQ) utilizza da tempo il principio delle sovrapposizioni per consentire di estendere e personalizzare la console e altre funzionalità (ad esempio, authoring delle pagine).

La sovrapposizione è un termine che può essere utilizzato in molti contesti. In questo contesto (estensione AEM) una sovrapposizione implica l’utilizzo delle funzionalità predefinite e l’imposizione di definizioni personalizzate (per personalizzare la funzionalità standard).

In un'istanza standard, la funzionalità predefinita è mantenuta in /libs e si consiglia di definire la sovrapposizione (personalizzazioni) in /apps ramo. AEM utilizza un percorso di ricerca per trovare una risorsa, eseguendo prima la ricerca /apps e quindi /libs la è possibile configurare il percorso di ricerca). Questo meccanismo significa che la sovrapposizione (e le personalizzazioni qui definite) avrà priorità.

A partire dalla versione 6.0 AEM sono state apportate modifiche alle modalità di implementazione e utilizzo delle sovrapposizioni:

  • AEM 6.0 in avanti - per GraniteSovrapposizioni correlate (cioè l’interfaccia touch)

    • Metodo

      • Ricostruire l'appropriato /libs struttura /apps.

        Questa operazione non richiede una copia 1:1, Sling Resource Merger viene utilizzato per fare riferimento incrociato alle definizioni originali richieste. Sling Resource Merger fornisce servizi per l’accesso e l’unione delle risorse tramite meccanismi di differenziazione (differenze).

      • Apporta le modifiche in /apps.

    • Vantaggi

      • Più robusto per le modifiche in /libs.
      • Ridefinisci solo ciò che è effettivamente richiesto.
  • Sovrapposizioni e sovrapposizioni non granite prima di AEM 6.0

    • Metodo

      • Copia il contenuto da /libs a /apps

        È necessario copiare l’intero ramo secondario, incluse le proprietà.

      • Apporta le modifiche in /apps.

    • Svantaggi

      • Anche se le modifiche non andranno perse quando qualcosa cambia in /libs, potrebbe essere necessario ricreare alcune modifiche che si verificano nella sovrapposizione in /apps.
ATTENZIONE

La Sling Resource Merger e i relativi metodi possono essere utilizzati solo con Granite. Ciò significa che la creazione di una sovrapposizione con una struttura dell’ossatura è appropriata solo per l’interfaccia utente standard abilitata per il tocco.

Le sovrapposizioni per altre aree (inclusa l’interfaccia classica) richiedono di copiare il nodo appropriato e l’intera sottostruttura, quindi di apportare le modifiche necessarie.

Le sovrapposizioni sono il metodo consigliato per molte modifiche, ad esempio configurazione delle console o creazione della categoria di selezione nel browser risorse nel pannello laterale (utilizzato per l’authoring delle pagine). Sono richiesti come:

  • You non deve apporta modifiche nel /libs filiale ​ Eventuali modifiche apportate potrebbero andare perse, in quanto questo ramo è soggetto a modifiche ogni volta che:

    • aggiornamento dell'istanza
    • applica un hotfix
    • installare un feature pack
  • Concentrano le modifiche in un'unica posizione; semplificando il monitoraggio, la migrazione, il backup e/o il debug delle modifiche, a seconda delle necessità.

Configurazione dei percorsi di ricerca

Per le sovrapposizioni la risorsa consegnata è un aggregato delle risorse e delle proprietà recuperate, a seconda dei percorsi di ricerca che possono essere definiti:

  • La risorsa Percorso di ricerca del risolutore come definito nel Configurazione OSGi per Factory di Apache Sling Resource Resolver.

    • L’ordine dall’alto verso il basso dei percorsi di ricerca indica le rispettive priorità.
    • In un'installazione standard, i valori predefiniti principali sono /apps, /libs - il contenuto /apps ha una priorità più alta di quella di /libs (cioè sovrapposizioni it).
  • Due utenti di servizi necessitano dell’accesso JCR:READ al percorso in cui sono memorizzati gli script. Gli utenti sono: components-search-service (utilizzato da com.day.cq.wcm.coreto access/cache components) e sling-scripting (utilizzato da org.apache.sling.servlets.resolver per trovare i servlet).

  • La seguente configurazione deve anche essere configurata in base al punto in cui hai inserito i tuoi script (in questo esempio sotto /etc, /libs o /apps).

    PID = org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl
    resource.resolver.searchpath=["/etc","/apps","/libs"]
    resource.resolver.vanitypath.whitelist=["/etc/","/apps/","/libs/","/content/"]
    
  • Infine, anche il Risolutore Servlet deve essere configurato (in questo esempio per aggiungere anche /etc)

    PID = org.apache.sling.servlets.resolver.SlingServletResolver
    servletresolver.paths=["/bin/","/libs/","/apps/","/etc/","/system/","/index.servlet","/login.servlet","/services/"]
    

Esempio di utilizzo

Alcuni esempi sono trattati quando:

In questa pagina