Show Menu
ARGOMENTI×

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 creare applicazioni da componenti piccoli, riutilizzabili e collaborativi. Questi componenti possono essere composti in un'applicazione e distribuiti ".
In questo modo è possibile gestire facilmente i bundle in quanto possono essere arrestati, installati e avviati individualmente. Le interdipendenze vengono gestite automaticamente. Ciascun componente OSGi (consultate la specifica HomePageOSGi) è contenuto in uno dei vari bundle.
Potete gestire le impostazioni di configurazione per tali bundle tramite:
Entrambi i metodi possono essere utilizzati anche se esistono sottili differenze, principalmente in relazione ai modi di esecuzione:
    • La console Web è l’interfaccia standard per la configurazione OSGi. Offre un’interfaccia utente per la modifica delle varie proprietà, dove è possibile selezionare i possibili valori da elenchi predefiniti.
      Di conseguenza, è il metodo più semplice da usare.
    • Tutte le configurazioni effettuate con la console Web vengono applicate immediatamente e si applicano all'istanza corrente, indipendentemente dalla modalità di esecuzione corrente, o da eventuali modifiche successive alla modalità di esecuzione.
    • Contiene le impostazioni definite nella console Web.
    • Può essere incluso nei pacchetti di contenuto per l'utilizzo in altre istanze.
    • Questo richiede la configurazione manuale tramite CRXDE Lite.
    • A causa delle convenzioni di denominazione dei sling:OsgiConfig nodi, potete collegare la configurazione a una specifica modalità di esecuzione. È anche possibile salvare le configurazioni per più modalità di esecuzione nello stesso repository.
    • Tutte le configurazioni appropriate vengono applicate immediatamente (a seconda della modalità di esecuzione).
A prescindere dal metodo utilizzato, tutti i seguenti metodi di configurazione:
  • Verificare che la copia o la replica del contenuto del repository ricrei configurazioni identiche.
  • Consentire il check-out delle configurazioni su FileVault o Subversion; per la sicurezza o per ulteriori aggiornamenti.
  • Può essere salvato in pacchetti per l’utilizzo durante la configurazione di altre istanze.
  • Consentono di eseguire i rollout di configurazione utilizzando gli script per fornire i dettagli di configurazione.
I dettagli di alcune impostazioni importanti sono elencati in Impostazioni di configurazione OSGi.

Configurazione OSGi con la console Web

La console Console Web Web di AEM offre un’interfaccia standard per la configurazione dei bundle. La scheda Configurazione viene utilizzata per configurare i bundle OSGi ed è quindi il meccanismo sottostante per configurare i parametri di sistema AEM.
Eventuali modifiche apportate vengono applicate immediatamente alla configurazione OSGi interessata, senza necessità di riavvio.
Le modifiche apportate nella console Web vengono salvate nella directory archivio come file di configurazione. Questi possono essere inclusi in pacchetti di contenuti da riutilizzare in altre installazioni.
Nella console Web tutte le descrizioni che fanno riferimento alle impostazioni predefinite si riferiscono alle impostazioni predefinite di Sling.
Adobe Experience Manager dispone di impostazioni predefinite specifiche, pertanto i valori predefiniti impostati possono essere diversi da quelli documentati nella console.
Per aggiornare una configurazione con la console Web:
  1. Accedi alla scheda Configurazione della console Web tramite:
    • Aprite la console Web dal collegamento nel menu Strumento -> Operazioni . 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. Selezionate il bundle da configurare tramite:
    • facendo clic sull’icona Modifica per il bundle
    • facendo clic sul Nome del bundle
  3. Viene aperta una finestra di dialogo. Qui è possibile apportare le modifiche necessarie; ad esempio, impostare il livello di registro su INFO :
    Gli aggiornamenti vengono salvati nella directory archivio come file di configurazione. Per individuarli successivamente (ad esempio per includere in un pacchetto di contenuti da utilizzare in un'altra istanza), è necessario prendere nota dell'identità persistente ( PID ).
  4. Fai clic su Salva .
    Le modifiche vengono applicate immediatamente alla configurazione OSGi del sistema in esecuzione. Non è necessario riavviare il sistema.
    È ora possibile individuare i relativi file di configurazione ; ad esempio, da includere in un pacchetto di contenuto da utilizzare in un'altra istanza.

Configurazione OSGi con i file di configurazione

Le modifiche di configurazione effettuate tramite la console Web vengono memorizzate nella directory archivio come file di configurazione ( .config ) in:
/apps
Questi possono essere inclusi nei pacchetti di contenuto e riutilizzati in altre istanze.
Il formato dei file di configurazione è molto specifico. Per maggiori informazioni, consulta la documentazione slingstart.html#default-configuration-format Sling Apache.
Per questo motivo si consiglia di creare e mantenere il file di configurazione apportando modifiche effettive nella console Web.
La console Web non mostra alcuna indicazione della posizione in cui sono state salvate le modifiche, ma può essere facilmente individuata:
  1. Create il file di configurazione apportando una modifica iniziale nella console Web.
  2. Aprite CRXDE Lite.
  3. Nel menu Strumenti selezionare Query ... .
  4. Invia una query di tipo SQL per cercare il PID della configurazione aggiornata.
    Ad esempio, Apache Felix OSGi Management Console ha l’identità persistente (PID) di:
    org.apache.felix.webconsole.internal.servlet.OsgiManager
    Pertanto, la query SQL potrebbe 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
    Potete aprire questo file per visualizzare le modifiche, ma per evitare errori di digitazione è consigliabile apportare modifiche effettive con la console.
  6. Ora potete creare un pacchetto di contenuto contenente questo nodo e utilizzarlo come necessario per le altre istanze.

Configurazione OSGi nell'archivio

Oltre a utilizzare la console Web, potete anche definire i dettagli di configurazione nella directory archivio. Questo consente di configurare facilmente le diverse modalità di esecuzione.
Queste configurazioni vengono eseguite creando sling:OsgiConfig nodi nella directory archivio a cui fare riferimento il sistema. Questi nodi riflettono le configurazioni OSGi e formano un'interfaccia utente per tali configurazioni. Per aggiornare i dati di configurazione, aggiornare le proprietà del nodo.
Se modificate i dati di configurazione nel repository, le modifiche vengono applicate immediatamente alla configurazione OSGi interessata, 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 più punti, il sistema:
  • cerca tutti i nodi di tipo sling:OsgiConfig
  • filtri in base al nome del servizio
  • filtri in base alla modalità di esecuzione

Aggiunta di una nuova configurazione all'archivio

Cosa devi sapere

Per aggiungere una nuova configurazione al repository è necessario conoscere quanto segue:
  1. Identità ​persistente (PID) del servizio.
    Fare riferimento al campo Configurazioni nella console Web. Il nome viene visualizzato tra parentesi dopo il nome del bundle (o in Informazioni di configurazione verso il fondo della pagina).
    Ad esempio, create un nodo com.day.cq.wcm.core.impl.VersionManagerImpl. per configurare AEM WCM Version Manager .
  2. Indica se è necessaria una modalità Modalità di esecuzione di esecuzione specifica. Create 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. Indica se è necessaria una configurazione o una configurazione ​di fabbrica.
  4. I singoli parametri da configurare; incluse eventuali definizioni di parametri esistenti che dovranno essere ricreate.
    Fate riferimento al singolo campo dei parametri nella console Web. Il nome viene visualizzato tra parentesi per ciascun parametro.
    Ad esempio, creare una proprietà versionmanager.createVersionOnActivation per configurare Crea versione all'attivazione .
  5. Esiste già una configurazione in /libs ? Per elencare tutte le configurazioni nell'istanza, utilizzate lo strumento Query in CRXDE Lite per inviare la seguente query SQL:
    select * from sling:OsgiConfig
    In tal caso, questa configurazione può essere copiata /apps/<yourProject>/ e quindi personalizzata nella nuova posizione.

Creazione della configurazione nell'archivio

Per aggiungere la nuova configurazione alla directory archivio:
  1. Utilizzate CRXDE Lite per passare a:
    /apps/<yourProject>
  2. Se non già esistente, create la config cartella ( sling:Folder ):
    • config - applicabile a tutte le modalità di esecuzione
    • config.<run-mode> - specifica di una particolare modalità di esecuzione
  3. In questa cartella create un nodo:
    • Tipo: sling:OsgiConfig
    • Nome: l’identità persistente (PID);
      ad esempio, per AEM WCM Version Manager utilizzare com.day.cq.wcm.core.impl.VersionManagerImpl
    Quando si crea una configurazione di fabbrica aggiungere -<identifier> al nome.
    Come in: org.apache.sling.commons.log.LogManager.factory.config-<identifier>
    Dove <identifier> viene sostituito da testo libero che è necessario immettere per identificare l’istanza (non è possibile omettere tali informazioni); ad esempio:
    org.apache.sling.commons.log.LogManager.factory.config-MINE
  4. Per ogni parametro da configurare, create 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, per Create Version on Activation l'utilizzo versionmanager.createVersionOnActivation
    • Tipo: se del caso.
    • Valore: come necessario.
    Dovete solo creare proprietà per i parametri che desiderate configurare, mentre altri continueranno a utilizzare i valori predefiniti impostati da AEM.
  5. Salvate tutte le modifiche.
    Le modifiche vengono applicate non appena il nodo viene aggiornato riavviando il servizio (come con le modifiche apportate nella console Web).
Non è necessario modificare nulla nel /libs percorso.
Il percorso completo di una configurazione deve essere corretto affinché possa essere letto all'avvio.

Dettagli configurazione

Ordine di risoluzione all'avvio

Viene utilizzato il seguente ordine di precedenza:
  1. nodi repository in /apps/*/config... .con file di tipo sling:OsgiConfig o proprietà.
  2. nodi repository con tipo sling:OsgiConfig in /libs/*/config... . (definizioni predefinite).
  3. Qualsiasi .config file da <*cq-installation-dir*>/crx-quickstart/launchpad/config/... . nel file system locale.
Ciò significa che una configurazione generica in /libs può essere mascherata da una configurazione specifica di progetto in /apps .

Ordine di risoluzione in fase di esecuzione

Le modifiche alla configurazione apportate durante l'esecuzione del sistema attivano un ricarico con la configurazione modificata.
Viene quindi applicato il seguente ordine di precedenza:
  1. La modifica di una configurazione nella console Web avrà effetto immediato in quanto ha precedenza in fase di esecuzione.
  2. La modifica di una configurazione in /apps diventerà immediata.
  3. La modifica di una configurazione in /libs avrà effetto immediato, a meno che non venga mascherata 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, potete 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 i nodi di configurazione in /apps/*/config.emea , /apps/*/config.author.dev/ e /apps/*/config.author.emea.dev/ verrà applicata, mentre i nodi di configurazione in /apps/*/config.author.asean/ e /config/author.dev.emea.noldap/ non saranno applicati.
Se si applicano più configurazioni per lo stesso PID, viene applicata la configurazione con il numero più elevato di modalità di esecuzione corrispondenti.
Ad esempio, se un'istanza è stata avviata con le modalità di esecuzione author,dev,emea e sia /apps/*/config.author/ che per /apps/*/config.emea.author/ definire una configurazione per com.day.cq.wcm.core.impl.VersionManagerImpl , la configurazione in /apps/*/config.emea.author/ verrà applicata.
La granularità di questa regola è a livello 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 - Filtro AEM WCM:
    libs/wcm/core/config.author/com.day.cq.wcm.core.WCMRequestFilter
  • Pubblica - Filtro AEM WCM:
    libs/wcm/core/config.publish/com.day.cq.wcm.core.WCMRequestFilter
  • Pubblica - Statistiche pagina WCM AEM:
    libs/wcm/core/config.publish/com.day.cq.wcm.core.stats.PageViewStatistics
Poiché risiedono in queste configurazioni, non /libs devono essere modificate direttamente, ma copiate nell'area dell'applicazione ( /apps ) prima della personalizzazione.
Per elencare tutti i nodi di configurazione dell'istanza, utilizzate la funzionalità Query in CRXDE Lite per inviare la seguente query SQL:
select * from sling:OsgiConfig

Persistenza della configurazione

  • Se modificate una configurazione tramite la console Web, in genere viene scritta nella directory archivio all’indirizzo:
    /apps/{somewhere}
    • Per impostazione predefinita {somewhere} la configurazione è system/config scritta su
      /apps/system/config
    • Tuttavia, se state modificando una configurazione che inizialmente proveniva da un’altra posizione della directory archivio: ad esempio:
      /libs/foo/config/someconfig
      La configurazione aggiornata viene quindi scritta nella posizione originale; ad esempio:
      /apps/foo/config/someconfig
  • Le impostazioni modificate da admin vengono salvate nei *.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 di 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 effettuate per il backup e/o l'installazione multipla:
      • Apache Felix OSGi Management Console
        ../crx/org/apache/felix/webconsole/internal/servlet/OsgiManager.config
      • Repository client CRX Sling
        ../com/day/crx/sling/client/impl/CRXSlingClientRepository/<pid-nr>.config
Non è mai necessario modificare le cartelle o i file in:
/crx-quickstart/launchpad/config