OSGi es un elemento fundamental en la pila de tecnología de Adobe Experience Manager (AEM). Se utiliza para controlar los paquetes compuestos de AEM y su configuración.
OSGi "proporciona los primitivos estandarizados que permiten que las aplicaciones se construyan a partir de componentes pequeños, reutilizables y de colaboración. Estos componentes se pueden componer en una aplicación e implementar".
Esto permite administrar fácilmente los paquetes, ya que se pueden detener, instalar e iniciar individualmente. Las interdependencias se gestionan automáticamente. Cada componente OSGi (consulte la Especificación OSGi) está contenido en uno de los distintos paquetes.
Puede administrar las opciones de configuración de estos paquetes mediante:
sling:OsgiConfig
) en el repositorioSe puede utilizar cualquiera de los métodos aunque haya diferencias sutiles, principalmente en relación con Modos de ejecución:
La consola web es la interfaz estándar para la configuración OSGi. Proporciona una interfaz de usuario para editar las distintas propiedades, donde se pueden seleccionar los valores posibles de las listas predefinidas.
Como tal, es el método más fácil de usar.
Cualquier configuración realizada con la consola web se aplica inmediatamente y se aplica a la instancia actual, independientemente del modo de ejecución actual, o cualquier cambio posterior al modo de ejecución.
content-nodes (sling:osgiConfig) en el repositorio
sling:OsgiConfig
, puede enlazar la configuración a un modo de ejecución específico. Incluso puede guardar configuraciones para más de un modo de ejecución en el mismo repositorio.Cualquiera que sea el método que utilice, todos estos métodos de configuración:
La consola web de AEM proporciona una interfaz estandarizada para configurar los paquetes. La ficha Configuration se utiliza para configurar los paquetes OSGi y, por lo tanto, es el mecanismo subyacente para configurar AEM parámetros del sistema.
Los cambios realizados se aplican inmediatamente a la configuración OSGi pertinente, por lo que no es necesario reiniciar.
Los cambios realizados en la consola web se guardan en el repositorio como archivos de configuración. Pueden incluirse en paquetes de contenido para su reutilización en instalaciones posteriores.
En la consola web, cualquier descripción que mencione la configuración predeterminada se relaciona con los valores predeterminados de Sling.
Adobe Experience Manager tiene sus propios valores predeterminados, por lo que los valores predeterminados establecidos pueden diferir de los documentados en la consola.
Para actualizar una configuración con la consola web:
Acceda a la ficha Configuración de la Consola Web mediante:
Abrir la consola web desde el vínculo del menú Herramienta -> Operaciones. Después de iniciar sesión en la consola, puede utilizar el menú desplegable de:
los paquetes >
La dirección URL directa; por ejemplo:
http://localhost:4502/system/console/configMgr
Se mostrará una lista.
Seleccione el paquete que desea configurar mediante:
Se abrirá un cuadro de diálogo: Aquí puede editar según sea necesario; por ejemplo, establezca el Nivel de registro en INFO
:
Las actualizaciones se guardan en el repositorio como archivos de configuración. Para ubicarlas posteriormente, (por ejemplo, para incluir en un paquete de contenido para utilizarlo en otra instancia) debe tomar nota de la identidad persistente ( PID
).
Haga clic en Guardar.
Los cambios se aplican inmediatamente a la configuración OSGi relevante del sistema en ejecución, no es necesario reiniciar.
Ahora puede ubicar los archivos de configuración relacionados; por ejemplo, para incluir en un paquete de contenido para utilizarlo en otra instancia.
Los cambios de configuración realizados con la consola web se mantienen en el repositorio como archivos de configuración ( .config
) en:
/apps
Se pueden incluir en paquetes de contenido y reutilizarse en otras instancias.
El formato de los archivos de configuración es muy específico; consulte la documentación de Sling Apache para obtener más información.
Por este motivo, se recomienda crear y mantener el archivo de configuración realizando cambios reales en la consola web.
La consola web no muestra ninguna indicación de dónde se guardaron los cambios en el repositorio, pero se pueden localizar fácilmente:
Cree el archivo de configuración realizando un cambio inicial en la consola web.
Abra CRXDE Lite.
En el menú Herramientas seleccione Consulta… .
Envíe una consulta de Tipo SQL
para buscar el PID de la configuración que ha actualizado.
Por ejemplo, Apache Felix OSGi Management Console tiene la identidad persistente (PID) de:
org.apache.felix.webconsole.internal.servlet.OsgiManager
Así que la consulta SQL podría ser:
select * from nt:base where jcr:path like '/apps/%' and contains(*, 'org.apache.felix.webconsole.internal.servlet.OsgiManager')
Se mostrará el nodo del archivo de configuración.
Para el ejemplo anterior:
/apps/system/config/org.apache.felix.webconsole.internal.servlet.OsgiManager.config
Puede abrir este archivo para vista de los cambios, pero para evitar errores de escritura, se recomienda realizar cambios reales con la consola.
Ahora puede crear un paquete de contenido que contenga este nodo y utilizarlo según sea necesario en las demás instancias.
Además de utilizar la consola web, también puede definir los detalles de configuración en el repositorio. Esto le permite configurar fácilmente los distintos modos de ejecución.
Estas configuraciones se realizan creando sling:OsgiConfig
nodos en el repositorio para que el sistema haga referencia a ellos. Estos nodos reflejan las configuraciones de OSGi y forman una interfaz de usuario para ellas. Para actualizar los datos de configuración, actualice las propiedades del nodo.
Si modifica los datos de configuración en el repositorio, los cambios se aplican inmediatamente a la configuración OSGi pertinente como si los cambios se hubieran realizado mediante la consola web, con las comprobaciones de coherencia y validación adecuadas. Esto también se aplica a la acción de copiar una configuración de /libs/
a /apps/
.
Como el mismo parámetro de configuración se puede ubicar en varios lugares, el sistema:
sling:OsgiConfig
Para agregar una nueva configuración al repositorio, debe saber lo siguiente:
La Identidad persistente (PID) del servicio.
Consulte el campo Configuraciones en la consola Web. El nombre se muestra entre corchetes después del nombre del paquete (o en Información de configuración hacia la parte inferior de la página).
Por ejemplo, cree un nodo com.day.cq.wcm.core.impl.VersionManagerImpl.
para configurar AEM Administrador de versiones de WCM.
Indica si se requiere un modo de ejecución específico. Cree la carpeta:
config
- para todos los modos de ejecuciónconfig.author
- para el entorno del autorconfig.publish
- para el entorno de publicaciónconfig.<run-mode>
- según procedaSi es necesaria una configuración o configuración de fábrica.
Parámetros individuales que se van a configurar; incluyendo cualquier definición de parámetro existente que deba volver a crearse.
Haga referencia al campo de parámetro individual en la consola web. El nombre se muestra entre corchetes para cada parámetro.
Por ejemplo, crear una propiedad
versionmanager.createVersionOnActivation
para configurar Crear versión en la Activación.
¿Ya existe una configuración en /libs
? Para lista de todas las configuraciones de su instancia, utilice la herramienta Consulta en CRXDE Lite para enviar la siguiente consulta SQL:
select * from sling:OsgiConfig
Si es así, esta configuración se puede copiar en /apps/<yourProject>/
y luego personalizar en la nueva ubicación.
Para agregar la nueva configuración al repositorio:
Utilice CRXDE Lite para desplazarse a:
/apps/<yourProject>
Si aún no existe, cree la carpeta config
( sling:Folder
):
config
- aplicable a todos los modos de ejecuciónconfig.<run-mode>
- específica para un modo de ejecución particularEn esta carpeta, cree un nodo:
Tipo: sling:OsgiConfig
Nombre: la identidad persistente (PID);
por ejemplo, para AEM Administrador de versiones de WCM, utilice com.day.cq.wcm.core.impl.VersionManagerImpl
Al realizar una configuración de fábrica, anexe -<identifier>
al nombre.
Como en: org.apache.sling.commons.log.LogManager.factory.config-<identifier>
Donde <identifier>
se reemplaza por texto libre que debe introducir para identificar la instancia (no puede omitir esta información); por ejemplo:
org.apache.sling.commons.log.LogManager.factory.config-MINE
Para cada parámetro que desee configurar, cree una propiedad en este nodo:
Create Version on Activation
use versionmanager.createVersionOnActivation
Solo necesita crear propiedades para los parámetros que desea configurar; otros tomarán los valores predeterminados tal y como los define AEM.
Guarde todos los cambios.
Los cambios se aplican en cuanto se actualiza el nodo reiniciando el servicio (como sucede con los cambios realizados en la consola web).
No debe cambiar nada en la ruta /libs
.
La ruta completa de una configuración debe ser correcta para que se lea al inicio.
Se utiliza el orden de prioridad siguiente:
Los nodos del repositorio se encuentran en /apps/*/config...
.con el tipo sling:OsgiConfig
o los archivos de propiedad.
Nodos de repositorio con tipo sling:OsgiConfig
en /libs/*/config...
. (definiciones predeterminadas).
Cualquier archivo .config
de <*cq-installation-dir*>/crx-quickstart/launchpad/config/...
. en el sistema de archivos local.
Esto significa que una configuración genérica en /libs
puede enmascararse con una configuración específica del proyecto en /apps
.
Los cambios de configuración realizados mientras el sistema está ejecutando activan una recarga con la configuración modificada.
A continuación, se aplica el siguiente orden de prioridad:
/apps
tendrá efecto inmediato./libs
tendrá efecto inmediato, a menos que esté enmascarada por una configuración en /apps
.Para configuraciones específicas del modo de ejecución, se pueden combinar varios modos de ejecución. Por ejemplo, puede crear carpetas de configuración con el siguiente estilo:
/apps/*/config.<runmode1>.<runmode2>/
Las configuraciones de estas carpetas se aplicarán si todos los modos de ejecución coinciden con un modo de ejecución definido al inicio.
Por ejemplo, si se inició una instancia con los modos de ejecución author,dev,emea
, se aplicarán los nodos de configuración en /apps/*/config.emea
, /apps/*/config.author.dev/
y /apps/*/config.author.emea.dev/
, mientras que los nodos de configuración en /apps/*/config.author.asean/
y /config/author.dev.emea.noldap/
no se aplicarán.
Si se aplican varias configuraciones para el mismo PID, se aplica la configuración con el mayor número de modos de ejecución coincidentes.
Por ejemplo, si se inició una instancia con los modos de ejecución author,dev,emea
y tanto /apps/*/config.author/
como /apps/*/config.emea.author/
definen una configuración para
com.day.cq.wcm.core.impl.VersionManagerImpl
, se /apps/*/config.emea.author/
aplicará la configuración de.
La granularidad de esta regla se encuentra en un nivel PID.
No puede definir algunas propiedades para el mismo PID en /apps/*/config.author/
y otras más específicas en /apps/*/config.emea.author/
para el mismo PID.
La configuración con el mayor número de modos de ejecución coincidentes será efectiva para todo el PID.
La siguiente lista muestra una pequeña selección de las configuraciones disponibles (en una instalación estándar) en el repositorio:
Autor: AEM filtro WCM:
libs/wcm/core/config.author/com.day.cq.wcm.core.WCMRequestFilter
Publicar: AEM filtro WCM:
libs/wcm/core/config.publish/com.day.cq.wcm.core.WCMRequestFilter
Publicar: AEM estadísticas de la página de WCM:
libs/wcm/core/config.publish/com.day.cq.wcm.core.stats.PageViewStatistics
Dado que estas configuraciones residen en /libs
no deben editarse directamente, sino copiarse en el área de la aplicación ( /apps
) antes de la personalización.
Para lista de todos los nodos de configuración de la instancia, utilice la funcionalidad Consulta en CRXDE Lite para enviar la siguiente consulta SQL:
select * from sling:OsgiConfig
Si cambia una configuración a través de la consola web, (normalmente) se escribe en el repositorio en:
/apps/{somewhere}
De forma predeterminada {somewhere}
es system/config
, por lo que la configuración se escribe en
/apps/system/config
Sin embargo, si está editando una configuración que inicialmente venía de otra parte del repositorio: por ejemplo:
/libs/foo/config/someconfig
A continuación, la configuración actualizada se escribe en la ubicación original; por ejemplo:
/apps/foo/config/someconfig
La configuración que cambia admin
se guarda en *.config
archivos en:
/crx-quickstart/launchpad/config
Es el área de datos privada del administrador de configuración OSGi y contiene todos los detalles de configuración especificados por admin
, independientemente de cómo ingresaron al sistema.
Se trata de un detalle de implementación y nunca debe editar este directorio directamente.
Sin embargo, es útil conocer la ubicación de estos archivos de configuración para que se puedan realizar copias de seguridad o de instalación múltiple:
Consola de administración de Apache Felix OSGi
../crx/org/apache/felix/webconsole/internal/servlet/OsgiManager.config
Repositorio de cliente Sling de CRX
../com/day/crx/sling/client/impl/CRXSlingClientRepository/<pid-nr>.config
Debe nunca editar las carpetas o archivos en:
/crx-quickstart/launchpad/config