OSGi configureren configuring-osgi
OSGi is een fundamenteel element in de technologiestapel van Adobe Experience Manager (AEM). Het wordt gebruikt om de samengestelde bundels van AEM en hun configuratie te controleren.
OSGi "biedt de gestandaardiseerde primitieven die het mogelijk maken toepassingen te maken op basis van kleine, herbruikbare en gezamenlijke onderdelen. Deze componenten kunnen in een toepassing worden samengesteld en worden opgesteld".
Hierdoor kunt u eenvoudig bundels beheren, aangezien deze kunnen worden gestopt, geïnstalleerd en afzonderlijk kunnen worden gestart. De onderlinge afhankelijkheden worden automatisch verwerkt. Elke component OSGi (zie OSGi-specificatie) bevindt zich in een van de verschillende bundels.
U kunt de configuratie-instellingen voor dergelijke bundels beheren door:
- met de Adobe CQ-webconsole
- gebruiken configuratiebestanden
- configureren content-nodes (
sling:OsgiConfig
) in de opslagplaats
Beide methoden kunnen worden gebruikt, hoewel er subtiele verschillen zijn, vooral met betrekking tot Modi uitvoeren:
-
-
De console van het Web is de standaardinterface voor configuratie OSGi. Deze interface biedt een interface voor het bewerken van de verschillende eigenschappen, waarbij mogelijke waarden uit vooraf gedefinieerde lijsten kunnen worden geselecteerd.
Als zodanig is het de eenvoudigste methode.
-
Om het even welke configuraties die met de Console van het Web worden aangebracht worden onmiddellijk toegepast en van toepassing op de huidige instantie, ongeacht de huidige looppaswijze, of om het even welke verdere veranderingen in de looppaswijze.
-
-
- Bevat instellingen die zijn gedefinieerd in de webconsole.
- Kan worden opgenomen in inhoudspakketten voor gebruik op andere instanties.
-
content-nodes (sling:osgiConfig) in de repository
- Dit vereist handconfiguratie gebruikend CRXDE Lite.
- Vanwege de naamconventies van de
sling:OsgiConfig
knooppunten, kunt u de configuratie aan een specifieke uitvoeringsmodus. U kunt zelfs configuraties voor meer dan één uitvoeringswijze in de zelfde bewaarplaats opslaan. - Eventuele geschikte configuraties worden direct toegepast (afhankelijk van de uitvoeringsmodus).
Welke methode u ook gebruikt, al deze configuratiemethoden:
- Zorg ervoor dat bij het kopiëren of repliceren van de inhoud van de opslagplaats identieke configuraties worden hersteld.
- Hiermee kunt u configuraties uitchecken naar FileVault of Subversion. voor beveiliging of verdere updates.
- Kan in pakketten worden opgeslagen voor gebruik bij het instellen van andere instanties.
- Sta u toe om configuratierolouts uit te voeren gebruikend manuscripten om de configuratiedetails voor te stellen.
OSGi Configuratie met de Console van het Web osgi-configuration-with-the-web-console
De Webconsole in AEM biedt een gestandaardiseerde interface voor het configureren van de bundels. De Configuratie tab wordt gebruikt voor het vormen van de bundels OSGi, en is daarom het onderliggende mechanisme voor het vormen van AEM systeemparameters.
Eventuele aangebrachte wijzigingen worden onmiddellijk toegepast op de relevante OSGi-configuratie. Er is geen herstart nodig.
Een configuratie bijwerken met de webconsole:
-
Toegang krijgen tot Configuratie tabblad van de webconsole door:
-
De webconsole openen via de koppeling op het tabblad Gereedschap -> Bewerkingen -menu. Na het registreren in de console kunt u het drop-down menu gebruiken van:
OSGi >
-
De directe URL; bijvoorbeeld:
http://localhost:4502/system/console/configMgr
Er wordt een lijst weergegeven.
-
-
Selecteer de bundel die u door één van beiden wilt vormen:
- klikken op de Bewerken pictogram voor die bundel
- klikken op de Naam van de bundel
-
Er wordt een dialoogvenster geopend. Hier kunt u desgewenst bewerken. Stel bijvoorbeeld de Logboekniveau tot
INFO
:note note NOTE Updates worden in de opslagplaats opgeslagen als configuratiebestanden. Als u deze achteraf wilt zoeken (bijvoorbeeld om de inhoud op te nemen in een inhoudspakket voor gebruik op een ander exemplaar), moet u een notitie maken van de blijvende identiteit ( PID
). -
Klikken Opslaan.
Uw veranderingen worden onmiddellijk toegepast op de relevante configuratie OSGi van het lopende systeem, wordt geen nieuw begin vereist.
note note NOTE U kunt nu de verwante configuratiebestand(en); bijvoorbeeld om op te nemen in een inhoudspakket voor gebruik op een andere instantie.
OSGi-configuratie met configuratiebestanden osgi-configuration-with-configuration-files
De veranderingen van de configuratie die worden aangebracht gebruikend de Console van het Web worden voortgeduurd in de bewaarplaats als configuratiedossiers ( .config
) onder:
/apps
Deze kunnen in inhoudspakketten worden opgenomen en op andere instanties worden hergebruikt.
De console van het Web toont geen aanwijzing van waar in de bewaarplaats uw veranderingen zijn bewaard, maar zij kunnen gemakkelijk worden gevestigd:
-
Maak het configuratiebestand door een eerste wijziging aanbrengen in de webconsole.
-
Open CRXDE Lite.
-
In de Gereedschappen menu selecteren Query uitvoeren… .
-
Een query verzenden van Type
SQL
om naar PID van de configuratie te zoeken die u hebt bijgewerkt.Bijvoorbeeld: Apache Felix OSGi Management Console heeft de persistente identiteit (PID) van:
org.apache.felix.webconsole.internal.servlet.OsgiManager
De SQL-query zou dus kunnen zijn:
code language-shell select * from nt:base where jcr:path like '/apps/%' and contains(*, 'org.apache.felix.webconsole.internal.servlet.OsgiManager')
-
De knoop van het configuratiedossier zal worden getoond.
In het bovenstaande voorbeeld:
/apps/system/config/org.apache.felix.webconsole.internal.servlet.OsgiManager.config
note caution CAUTION U kunt dit bestand openen om uw wijzigingen weer te geven, maar om typefouten te voorkomen, is het raadzaam werkelijke wijzigingen aan te brengen met de console. -
U kunt nu een inhoudspakket maken dat dit knooppunt bevat en dat naar wens op de andere instanties wordt gebruikt.
OSGi-configuratie in de opslagplaats osgi-configuration-in-the-repository
Naast het gebruik van de webconsole kunt u ook configuratiegegevens definiëren in de opslagplaats. Hierdoor kunt u de verschillende uitvoeringsmodi eenvoudig configureren.
Deze configuraties worden gemaakt door sling:OsgiConfig
knooppunten in de opslagplaats waar het systeem naar kan verwijzen. Deze knopen weerspiegelen de configuraties OSGi, en vormen een gebruikersinterface aan hen. Om de configuratiegegevens bij te werken werkt u de knoopeigenschappen bij.
Als u de configuratiegegevens in de bewaarplaats wijzigt worden de veranderingen onmiddellijk toegepast op de relevante configuratie OSGi alsof de veranderingen gebruikend de console van het Web, met de aangewezen bevestiging en consistentiecontroles waren aangebracht. Dit geldt ook voor het kopiëren van een configuratie uit /libs/
tot /apps/
.
Aangezien de zelfde configuratieparameter in verscheidene plaatsen kan worden gevestigd, kan het systeem:
- zoekopdrachten naar alle knooppunten van het type
sling:OsgiConfig
- filters volgens de dienstnaam
- filters volgens de uitvoermodus
Een nieuwe configuratie toevoegen aan de opslagplaats adding-a-new-configuration-to-the-repository
Wat u moet weten what-you-need-to-know
Om een nieuwe configuratie aan de bewaarplaats toe te voegen moet u het volgende weten:
-
De Blijvende identiteit (PID) van de service.
Verwijs naar de Configuraties in de webconsole. De naam wordt tussen haakjes weergegeven na de naam van de bundel (of in de Configuratiegegevens onder aan de pagina).
Maak bijvoorbeeld een knooppunt
com.day.cq.wcm.core.impl.VersionManagerImpl.
om te vormen AEM WCM-versiebeheer. -
Of een specifieke uitvoeringsmodus is vereist. Maak de map:
config
- voor alle uitvoeringsmodiconfig.author
- voor de auteursomgevingconfig.publish
- voor de publicatieomgevingconfig.<run-mode>
- in voorkomend geval
-
Of een Configuratie of Fabrieksconfiguratie is noodzakelijk.
-
de afzonderlijke parameters die moeten worden geconfigureerd; met inbegrip van bestaande parameterdefinities die opnieuw moeten worden gemaakt.
Verwijs het individuele parametergebied in de console van het Web. De naam wordt tussen haakjes weergegeven voor elke parameter.
Maak bijvoorbeeld een eigenschap
versionmanager.createVersionOnActivation
om te vormen Versie maken bij activering. -
Bestaat er al een configuratie in
/libs
? Als u alle configuraties in uw exemplaar wilt weergeven, gebruikt u de Query in CRXDE Lite om de volgende SQL-query te verzenden:select * from sling:OsgiConfig
Als dat het geval is, kan deze configuratie worden gekopieerd naar
/apps/<yourProject>/
en vervolgens aangepast op de nieuwe locatie.
De configuratie maken in de opslagplaats creating-the-configuration-in-the-repository
Om de nieuwe configuratie aan de bewaarplaats eigenlijk toe te voegen:
-
Gebruik CRXDE Lite om te navigeren naar:
/apps/<yourProject>
-
Als deze nog niet bestaat, maakt u de
config
map (sling:Folder
):config
- van toepassing op alle uitvoeringsmodiconfig.<run-mode>
- specifiek voor een bepaalde uitvoeringsmodus
-
Maak in deze map een knooppunt:
-
Type:
sling:OsgiConfig
-
Naam: de persistente identiteit (PID);
bijvoorbeeld voor AEM gebruik van WCM Version Manager
com.day.cq.wcm.core.impl.VersionManagerImpl
note note NOTE Bij het toevoegen van een fabrieksconfiguratie -<identifier>
op de naam.Zoals in: org.apache.sling.commons.log.LogManager.factory.config-<identifier>
Wanneer <identifier>
wordt vervangen door vrije tekst die u (moet) invoeren om het exemplaar te identificeren (u kunt deze informatie niet weglaten); bijvoorbeeld:org.apache.sling.commons.log.LogManager.factory.config-MINE
-
-
Voor elke parameter die u wilt vormen, creeer een bezit op deze knoop:
- Naam: de parameternaam zoals aangetoond in de console van het Web; de naam wordt tussen haakjes weergegeven aan het einde van de veldbeschrijving. Bijvoorbeeld:
Create Version on Activation
gebruikenversionmanager.createVersionOnActivation
- Type: in voorkomend geval.
- Waarde: zoals vereist.
U hoeft alleen eigenschappen te maken voor de parameters die u wilt configureren, anderen gebruiken nog steeds de standaardwaarden die door AEM zijn ingesteld.
- Naam: de parameternaam zoals aangetoond in de console van het Web; de naam wordt tussen haakjes weergegeven aan het einde van de veldbeschrijving. Bijvoorbeeld:
-
Sla alle wijzigingen op.
De veranderingen worden toegepast zodra de knoop door de dienst (zoals met veranderingen die in de console van het Web worden aangebracht) opnieuw te beginnen wordt bijgewerkt.
/libs
pad.Configuratiedetails configuration-details
Volgorde resolutie bij opstarten resolution-order-at-startup
De volgende rangorde wordt gebruikt:
-
Opslagknooppunten onder
/apps/*/config...
.either met typesling:OsgiConfig
of eigenschapsbestanden. -
Opslagknooppunten met type
sling:OsgiConfig
krachtens/libs/*/config...
. (definities buiten de box). -
Alle
.config
bestanden van<*cq-installation-dir*>/crx-quickstart/launchpad/config/...
. op het lokale bestandssysteem.
Dit betekent dat een generische configuratie in /libs
kan worden gemaskeerd door een projectspecifieke configuratie in /apps
.
Volgorde van resolutie bij uitvoering resolution-order-at-runtime
De veranderingen van de configuratie die worden aangebracht terwijl het systeem loopt teweegbrengen een herlading met de gewijzigde configuratie.
Dan is de volgende orde van belangrijkheid van toepassing:
- Het wijzigen van een configuratie in de console van het Web zal onmiddellijk van kracht worden aangezien het belangrijkheid bij runtime neemt.
- Een configuratie aanpassen in
/apps
onmiddellijk van kracht worden. - Een configuratie aanpassen in
/libs
wordt onmiddellijk van kracht, tenzij het wordt gemaskeerd door een configuratie in/apps
.
Resolutie van meerdere uitvoermodi resolution-of-multiple-run-modes
Voor configuraties die specifiek zijn voor de uitvoermodus, kunnen meerdere uitvoermodi worden gecombineerd. U kunt bijvoorbeeld configuratiemappen in de volgende stijl maken:
/apps/*/config.<runmode1>.<runmode2>/
Configuraties in dergelijke mappen worden toegepast als alle uitvoermodi overeenkomen met een uitvoeringsmodus die bij het opstarten is gedefinieerd.
Als bijvoorbeeld een instantie is gestart met de uitvoermodi author,dev,emea
, configuratieknooppunten in /apps/*/config.emea
, /apps/*/config.author.dev/
en /apps/*/config.author.emea.dev/
wordt toegepast, terwijl configuratieknooppunten in /apps/*/config.author.asean/
en /config/author.dev.emea.noldap/
wordt niet toegepast.
Als meerdere configuraties voor dezelfde PID van toepassing zijn, wordt de configuratie met het hoogste aantal overeenkomende uitvoeringsmodi toegepast.
Als bijvoorbeeld een instantie is gestart met de uitvoermodi author,dev,emea
en beide /apps/*/config.author/
en /apps/*/config.emea.author/
een configuratie definiëren voorcom.day.cq.wcm.core.impl.VersionManagerImpl
, de configuratie in /apps/*/config.emea.author/
wordt toegepast.
De granulariteit van deze regel staat op een PID-niveau.
U kunt geen eigenschappen definiëren voor dezelfde PID in /apps/*/config.author/
en meer specifieke /apps/*/config.emea.author/
voor dezelfde PID.
De configuratie met het hoogste aantal passende looppaswijzen zal voor volledige PID efficiënt zijn.
Standaardconfiguraties standard-configurations
In de volgende lijst ziet u een kleine selectie van de configuraties die beschikbaar zijn (in een standaardinstallatie) in de opslagplaats:
-
Auteur - AEM WCM-filter:
libs/wcm/core/config.author/com.day.cq.wcm.core.WCMRequestFilter
-
Publiceren - AEM WCM-filter:
libs/wcm/core/config.publish/com.day.cq.wcm.core.WCMRequestFilter
-
Publiceren - AEM WCM-paginatiestatistieken:
libs/wcm/core/config.publish/com.day.cq.wcm.core.stats.PageViewStatistics
/libs
ze mogen niet rechtstreeks worden bewerkt, maar moeten wel naar het toepassingsgebied worden gekopieerd ( /apps
) vóór aanpassing.Om van alle configuratieknooppunten in uw instantie een lijst te maken, gebruik Query functionaliteit in CRXDE Lite om de volgende SQL-query te verzenden:
select * from sling:OsgiConfig
Configuratievolstand configuration-persistence
-
Als u een configuratie door de console van het Web verandert, wordt het (gewoonlijk) geschreven in de bewaarplaats bij:
/apps/{somewhere}
-
Standaard
{somewhere}
issystem/config
zodat wordt de configuratie geschreven aan/apps/system/config
-
Als u echter een configuratie bewerkt die oorspronkelijk van elders in de opslagplaats afkomstig was: bijvoorbeeld:
/libs/foo/config/someconfig
Dan wordt de bijgewerkte configuratie geschreven onder de originele plaats; bijvoorbeeld:
/apps/foo/config/someconfig
-
-
Instellingen die worden gewijzigd door
admin
worden opgeslagen in*.config
bestanden onder:code language-none /crx-quickstart/launchpad/config
-
Dit is het privé gegevensgebied van OSGi configuratie admin en houdt alle configuratiedetails die door worden gespecificeerd
admin
, ongeacht hoe zij het systeem zijn binnengekomen. -
Dit is een implementatiedetails en u moet deze folder niet direct uitgeven.
-
Het is echter handig om de locatie van deze configuratiebestanden te kennen, zodat u kopieën kunt maken voor back-up en/of meerdere installaties:
-
Apache Felix OSGi Management Console
../crx/org/apache/felix/webconsole/internal/servlet/OsgiManager.config
-
CRX Sling Client Repository
../com/day/crx/sling/client/impl/CRXSlingClientRepository/<pid-nr>.config
-
-
/crx-quickstart/launchpad/config