Configurazione di OSGi

OSGi è un elemento fondamentale nello stack tecnologico di Adobe Experience Manager (AEM). Viene utilizzato per controllare i bundle compositi di AEM e la loro configurazione.

OSGi "fornisce le primitive standardizzate che consentono di costruire applicazioni a partire da componenti di piccole dimensioni, riutilizzabili e collaborative. Questi componenti possono essere composti in un’applicazione e distribuiti".

Questo consente una facile gestione dei bundle in quanto possono essere arrestati, installati, avviati individualmente. Le interdipendenze vengono gestite automaticamente. Ogni componente OSGi (vedi la Specifiche OSGi) è contenuta in uno dei vari bundle.

Puoi gestire le impostazioni di configurazione per tali bundle:

Entrambi i metodi possono essere utilizzati anche se esistono differenze sottili, principalmente in relazione Modalità di esecuzione:

  • Console web Adobe CQ

    • La Web Console è l’interfaccia standard per la configurazione OSGi. Offre un’interfaccia utente per la modifica delle varie proprietà, dove è possibile selezionare valori da elenchi predefiniti.

      Pertanto è il metodo più semplice da utilizzare.

    • Tutte le configurazioni effettuate con la console Web vengono applicate immediatamente e applicabili all'istanza corrente, indipendentemente dalla modalità di esecuzione corrente o da eventuali modifiche successive alla modalità di esecuzione.

  • file di configurazione

    • Contiene le impostazioni definite nella console Web.
    • Può essere incluso nei pacchetti di contenuti da utilizzare su altre istanze.
  • content-nodes (sling:osgiConfig) nell'archivio

    • È necessaria una configurazione manuale tramite CRXDE Lite.
    • A causa delle convenzioni di denominazione del sling:OsgiConfig nodi, puoi collegare la configurazione a uno specifico modalità di esecuzione. Puoi anche salvare le configurazioni per più di una modalità di esecuzione nello stesso archivio.
    • Tutte le configurazioni appropriate vengono applicate immediatamente (a seconda della modalità di esecuzione).

A prescindere dal metodo utilizzato, tutti i seguenti metodi di configurazione:

  • Assicurati che la copia o la replica del contenuto del repository ricrea configurazioni identiche.
  • Consentire il check-out delle configurazioni su FileVault o Subversion; per la sicurezza o per ulteriori aggiornamenti.
  • Può essere salvato in pacchetti da utilizzare durante la configurazione di altre istanze.
  • Consente di eseguire rollout di configurazione utilizzando gli script per proporre i dettagli di configurazione.
NOTA

I dettagli di alcune impostazioni importanti sono elencati in Impostazioni di configurazione OSGi.

Configurazione OSGi con la console Web

La Console web in AEM fornisce un’interfaccia standardizzata per la configurazione dei bundle. La Configurazione viene utilizzata per configurare i bundle OSGi ed è quindi il meccanismo sottostante per configurare i parametri di sistema AEM.

Tutte le modifiche apportate vengono immediatamente applicate alla configurazione OSGi pertinente, non è necessario riavviare il sistema.

NOTA

Le modifiche apportate nella console web vengono salvate nell’archivio come file di configurazione. Questi possono essere inclusi nei pacchetti di contenuti da riutilizzare in altre installazioni.

NOTA

Nella console Web tutte le descrizioni che fanno riferimento alle impostazioni predefinite si riferiscono ai valori predefiniti di Sling.

Adobe Experience Manager dispone di valori predefiniti propri e pertanto i valori predefiniti impostati possono essere diversi da quelli documentati nella console.

Per aggiornare una configurazione con la console Web:

  1. Accedere al Configurazione scheda della console Web:

    • Apertura della console web dal collegamento nella Strumento -> Operazioni menu. Dopo aver effettuato l’accesso alla console è possibile utilizzare il menu a discesa di:

      OSGi >

    • URL diretto; ad esempio:

      http://localhost:4502/system/console/configMgr
      Verrà visualizzato un elenco.

  2. Seleziona il bundle da configurare tramite:

    • facendo clic sul pulsante Modifica icona per quel bundle
    • facendo clic sul pulsante Nome del pacchetto
  3. Viene aperta una finestra di dialogo. Consente di modificare le impostazioni desiderate. ad esempio, imposta Livello di log a INFO:

    chlimage_1-140

    NOTA

    Gli aggiornamenti vengono salvati nell’archivio come file di configurazione. Per individuarli successivamente, (ad esempio per includere in un pacchetto di contenuti da utilizzare su un’altra istanza) è necessario prendere nota dell’identità persistente ( PID).

  4. Fai clic su Salva.

    Le modifiche vengono applicate immediatamente alla configurazione OSGi pertinente del sistema in esecuzione. Non è necessario riavviare il sistema.

    NOTA

    È ora possibile individuare il relativo file di configurazione; ad esempio, da includere in un pacchetto di contenuti da utilizzare su un’altra istanza.

Configurazione OSGi con file di configurazione

Le modifiche di configurazione effettuate tramite la Console web vengono mantenute nell’archivio come file di configurazione ( .config) in:

/apps

Questi possono essere inclusi nei pacchetti di contenuti e riutilizzati in altre istanze.

NOTA

Il formato dei file di configurazione è molto specifico - vedi Documentazione di Sling Apache per informazioni complete.

Per questo motivo è consigliabile creare e gestire il file di configurazione apportando modifiche effettive nella console Web.

La console Web non mostra alcuna indicazione di dove nell’archivio sono state salvate le modifiche, ma queste possono essere facilmente posizionate:

  1. Crea il file di configurazione per effettuare una modifica iniziale nella console web.

  2. Apri CRXDE Lite.

  3. In Strumenti selezione menu Query in corso… .

  4. Invia una query di Tipo SQL per cercare il PID della configurazione che hai aggiornato.

    Ad esempio: Console di gestione Apache Felix OSGi presenta l’identità persistente (PID) di:

    org.apache.felix.webconsole.internal.servlet.OsgiManager

    La query SQL potrebbe quindi essere:

    select * from nt:base where jcr:path like '/apps/%' and contains(*, 'org.apache.felix.webconsole.internal.servlet.OsgiManager')
    
  5. Verrà visualizzato il nodo del file di configurazione.

    Per l'esempio precedente:

    /apps/system/config/org.apache.felix.webconsole.internal.servlet.OsgiManager.config

    ATTENZIONE

    Puoi aprire questo file per visualizzare le modifiche, ma per evitare errori di digitazione è consigliabile apportare modifiche effettive con la console.

  6. Ora puoi creare un pacchetto di contenuti, contenente questo nodo, e utilizzarlo come necessario sulle altre istanze.

Configurazione OSGi nell’archivio

Oltre a utilizzare la console web, puoi anche definire i dettagli di configurazione nell’archivio. Questo consente di configurare facilmente le diverse modalità di esecuzione.

Queste configurazioni vengono create creando sling:OsgiConfig nodi nell'archivio a cui fare riferimento nel sistema. Questi nodi riflettono le configurazioni OSGi e formano un’interfaccia utente per tali configurazioni. Per aggiornare i dati di configurazione si aggiornano le proprietà del nodo.

Se modifichi i dati di configurazione nell’archivio, le modifiche vengono immediatamente applicate alla configurazione OSGi pertinente, come se le modifiche fossero state apportate utilizzando la console Web, con i controlli di convalida e coerenza appropriati. Questo vale anche per l’azione di copia di una configurazione da /libs/ a /apps/.

Poiché lo stesso parametro di configurazione può essere individuato in diverse posizioni, il sistema:

  • cerca tutti i nodi di tipo sling:OsgiConfig
  • filtra in base al nome del servizio
  • filtra in base alla modalità di esecuzione

Aggiunta di una nuova configurazione all’archivio

Cosa devi sapere

Per aggiungere una nuova configurazione all’archivio è necessario conoscere quanto segue:

  1. La Identità persistente (PID) del servizio.

    Fai riferimento al Configurazioni nella console Web. Il nome viene visualizzato tra parentesi dopo il nome del bundle (o nel Informazioni di configurazione verso il fondo della pagina).

    Ad esempio, crea un nodo com.day.cq.wcm.core.impl.VersionManagerImpl. per configurare Gestione delle versioni di WCM AEM.

    chlimage_1-141

  2. Se un modalità di esecuzione è obbligatorio. Crea la cartella:

    • config - per tutte le modalità di esecuzione
    • config.author - per l’ambiente di authoring
    • config.publish - per l’ambiente di pubblicazione
    • config.<run-mode> - se del caso
  3. Se un Configurazione o Configurazione di fabbrica è necessario.

  4. i singoli parametri da configurare; incluse le definizioni di parametri esistenti che dovranno essere ricreati.

    Fai riferimento al singolo campo del parametro nella console Web. Il nome viene visualizzato tra parentesi per ciascun parametro.

    Ad esempio, creare una proprietà
    versionmanager.createVersionOnActivation per configurare Crea versione su attivazione.

    chlimage_1-142

  5. Esiste già una configurazione in /libs? Per elencare tutte le configurazioni nella tua istanza, utilizza il Query strumento in CRXDE Lite per inviare la seguente query SQL:

    select * from sling:OsgiConfig

    In tal caso, questa configurazione può essere copiata in /apps/<yourProject>/, quindi personalizzato nella nuova posizione.

Creazione della configurazione nell’archivio

Per aggiungere effettivamente la nuova configurazione all’archivio:

  1. Utilizza CRXDE Lite per passare a:

    /apps/<yourProject>

  2. Se non è già esistente, crea il config cartella ( sling:Folder):

    • config - applicabile a tutte le modalità di esecuzione
    • config.<run-mode> - specifica di una particolare modalità di esecuzione
  3. Sotto questa cartella crea un nodo:

    • Tipo: sling:OsgiConfig

    • Nome: l'identità persistente (PID);

      ad esempio per AEM uso di WCM Version Manager com.day.cq.wcm.core.impl.VersionManagerImpl

    NOTA

    Quando si aggiunge una configurazione di fabbrica -<identifier> al nome.

    Come in: org.apache.sling.commons.log.LogManager.factory.config-<identifier>

    Dove <identifier> è sostituito dal testo libero che devi (inserire) per identificare l’istanza (non puoi omettere queste informazioni); ad esempio:

    org.apache.sling.commons.log.LogManager.factory.config-MINE

  4. Per ogni parametro da configurare, crea una proprietà su questo nodo:

    • Nome: il nome del parametro come mostrato nella console Web; il nome viene visualizzato tra parentesi alla fine della descrizione del campo. Ad esempio, Create Version on Activation use versionmanager.createVersionOnActivation
    • Tipo: se del caso.
    • Valore: se necessario.

    È sufficiente creare le proprietà per i parametri che si desidera configurare. Gli altri avranno comunque i valori predefiniti impostati da AEM.

  5. Salva tutte le modifiche.

    Le modifiche vengono applicate non appena il nodo viene aggiornato riavviando il servizio (come con le modifiche apportate nella console Web).

ATTENZIONE

Non devi cambiare nulla nel /libs percorso.

ATTENZIONE

Il percorso completo di una configurazione deve essere corretto per essere letto all'avvio.

Dettagli di configurazione

Ordine di risoluzione all'avvio

Viene utilizzato il seguente ordine di precedenza:

  1. Nodi archivio sotto /apps/*/config....o con tipo sling:OsgiConfig o file di proprietà.

  2. Nodi archivio con tipo sling:OsgiConfig sotto /libs/*/config.... (definizioni predefinite).

  3. Qualsiasi .config file da <*cq-installation-dir*>/crx-quickstart/launchpad/config/.... sul file system locale.

Ciò significa che una configurazione generica in /libs può essere mascherato da una configurazione specifica di progetto in /apps.

Ordine di risoluzione in fase di esecuzione

Le modifiche apportate alla configurazione durante l'esecuzione del sistema attivano un ricaricamento con la configurazione modificata.

Si applica quindi il seguente ordine di precedenza:

  1. La modifica di una configurazione nella console Web avrà effetto immediato in quanto ha la precedenza in fase di esecuzione.
  2. Modifica di una configurazione in /apps avrà effetto immediato.
  3. Modifica di una configurazione in /libs avrà effetto immediato, a meno che non sia mascherato da una configurazione in /apps.

Risoluzione di più modalità di esecuzione

Per configurazioni specifiche della modalità di esecuzione, è possibile combinare più modalità di esecuzione. Ad esempio, puoi creare cartelle di configurazione nel seguente stile:

/apps/*/config.<runmode1>.<runmode2>/

Le configurazioni in tali cartelle verranno applicate se tutte le modalità di esecuzione corrispondono a una modalità di esecuzione definita all'avvio.

Ad esempio, se un'istanza è stata avviata con le modalità di esecuzione author,dev,emea, nodi di configurazione in /apps/*/config.emea, /apps/*/config.author.dev/ e /apps/*/config.author.emea.dev/ viene applicata, mentre i nodi di configurazione in /apps/*/config.author.asean/ e /config/author.dev.emea.noldap/ non verranno applicati.

Se sono applicabili più configurazioni per lo stesso PID, viene applicata la configurazione con il numero più alto di modalità di esecuzione corrispondenti.

Ad esempio, se un'istanza è stata avviata con le modalità di esecuzione author,dev,emeae /apps/*/config.author/ e /apps/*/config.emea.author/ definire una configurazione per
com.day.cq.wcm.core.impl.VersionManagerImpl, la configurazione in /apps/*/config.emea.author/ saranno applicati.

La granularità di questa regola è a livello di PID.
Non è possibile definire alcune proprietà per lo stesso PID in /apps/*/config.author/ e più specifiche in /apps/*/config.emea.author/ per lo stesso PID.
La configurazione con il maggior numero di modalità di esecuzione corrispondenti sarà efficace per l'intero PID.

Configurazioni standard

L’elenco seguente mostra una piccola selezione delle configurazioni disponibili (in un’installazione standard) nell’archivio:

  • Autore - AEM filtro WCM:

    libs/wcm/core/config.author/com.day.cq.wcm.core.WCMRequestFilter

  • Pubblica - AEM filtro WCM:

    libs/wcm/core/config.publish/com.day.cq.wcm.core.WCMRequestFilter

  • Pubblica - AEM statistiche pagina WCM:

    libs/wcm/core/config.publish/com.day.cq.wcm.core.stats.PageViewStatistics

NOTA

Poiché queste configurazioni risiedono in /libs non devono essere modificati direttamente, ma copiati nell'area dell'applicazione ( /apps) prima della personalizzazione.

Per elencare tutti i nodi di configurazione nella tua istanza, utilizza Query funzionalità in CRXDE Lite per inviare la seguente query SQL:

select * from sling:OsgiConfig

Persistenza della configurazione

  • Se modifichi una configurazione tramite la console Web, in genere viene scritta nell’archivio all’indirizzo:

    /apps/{somewhere}

    • Per impostazione predefinita {somewhere} è system/config in modo che la configurazione venga scritta in

      /apps/system/config

    • Tuttavia, se modifichi una configurazione che proviene inizialmente da un’altra posizione nell’archivio: ad esempio:

      /libs/foo/config/someconfig

      Quindi la configurazione aggiornata viene scritta nella posizione originale; ad esempio:

      /apps/foo/config/someconfig

  • Impostazioni modificate da admin vengono salvati in *.config file in:

       /crx-quickstart/launchpad/config
    
    • Si tratta dell’area dati privata dell’amministratore di configurazione OSGi e contiene tutti i dettagli di configurazione specificati da admin, indipendentemente da come sono entrati nel sistema.

    • Si tratta di un dettaglio dell’implementazione e non devi mai modificare direttamente questa directory.

    • Tuttavia, è utile conoscere la posizione di questi file di configurazione in modo che le copie possano essere prese per il backup e/o installazione multipla:

      • Console di gestione Apache Felix OSGi

        ../crx/org/apache/felix/webconsole/internal/servlet/OsgiManager.config

      • Archivio client CRX Sling

        ../com/day/crx/sling/client/impl/CRXSlingClientRepository/<pid-nr>.config

ATTENZIONE

Devi mai modificare le cartelle o i file in:

/crx-quickstart/launchpad/config

In questa pagina