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:
sling:OsgiConfig
) in de opslagplaatsBeide 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.
content-nodes (sling:osgiConfig) in de repository
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.Welke methode u ook gebruikt, al deze configuratiemethoden:
Details van bepaalde belangrijke instellingen worden weergegeven onder OSGi-configuratie-instellingen.
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.
Wijzigingen die in de webconsole zijn aangebracht, worden in de opslagplaats opgeslagen als configuratiebestanden. Deze kunnen worden opgenomen in inhoudspakketten voor hergebruik in verdere installaties.
Op de console van het Web om het even welke beschrijvingen die standaardmontages vermelden hebben op het Verschuiven gebreken.
Adobe Experience Manager heeft zijn eigen gebreken en zodat zouden de vastgestelde gebreken van die op de console kunnen verschillen worden gedocumenteerd.
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:
Er wordt een dialoogvenster geopend. Hier kunt u desgewenst bewerken. Stel bijvoorbeeld de Logboekniveau tot INFO
:
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.
U kunt nu de verwante configuratiebestand(en); bijvoorbeeld om op te nemen in een inhoudspakket voor gebruik op een andere instantie.
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 indeling van de configuratiebestanden is erg specifiek. Zie de Documentatie over Sling Apache voor volledige informatie.
Daarom wordt aangeraden het configuratiebestand te maken en te onderhouden door werkelijke wijzigingen aan te brengen in de webconsole.
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:
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
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.
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:
sling:OsgiConfig
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 gevalOf 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.
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 uitvoeringsmodusMaak 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
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:
Create Version on Activation
gebruiken versionmanager.createVersionOnActivation
U hoeft alleen eigenschappen te maken voor de parameters die u wilt configureren, anderen gebruiken nog steeds de standaardwaarden die door AEM zijn ingesteld.
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.
U mag niets wijzigen in het dialoogvenster /libs
pad.
De volledige weg van een configuratie moet correct zijn om het bij opstarten te lezen.
De volgende rangorde wordt gebruikt:
Opslagknooppunten onder /apps/*/config...
.either met type sling: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
.
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:
/apps
onmiddellijk van kracht worden./libs
wordt onmiddellijk van kracht, tenzij het wordt gemaskeerd door een configuratie in /apps
.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 voor
com.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.
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
Als deze configuraties zich bevinden in /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
Als u een configuratie door de console van het Web verandert, wordt het (gewoonlijk) geschreven in de bewaarplaats bij:
/apps/{somewhere}
Standaard {somewhere}
is system/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:
/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
U moet nooit Bewerk de mappen of bestanden onder:
/crx-quickstart/launchpad/config