Configuración de OSGi configuring-osgi
OSGi es un elemento fundamental de la pila tecnológica 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 construir aplicaciones a partir de componentes pequeños, reutilizables y colaborativos. Estos componentes se pueden componer en una aplicación e implementar".
Esto permite una administración sencilla de los paquetes, ya que se pueden detener, instalar e iniciar individualmente. Las interdependencias se gestionan automáticamente. Cada componente OSGi (consulte la Especificación de OSGi) está contenido en uno de los distintos paquetes.
Puede administrar los ajustes de configuración de estos paquetes mediante:
- usando la variable Consola web de Adobe CQ
- using archivos de configuración
- configurar nodos de contenido (
sling:OsgiConfig
) en el repositorio
Cualquiera de los métodos puede utilizarse 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 valores posibles de listas predefinidas.
Como tal, es el método más fácil de usar.
-
Las configuraciones realizadas con la consola web se aplican inmediatamente y son aplicables a la instancia actual, independientemente del modo de ejecución actual o de los cambios posteriores en el modo de ejecución.
-
-
- Contiene la configuración definida en la consola web.
- Se puede incluir en paquetes de contenido para su uso en otras instancias.
-
content-nodes (sling:osgiConfig) en el repositorio
- Esto requiere una configuración manual mediante CRXDE Lite.
- Debido a las convenciones de nomenclatura de la variable
sling:OsgiConfig
, puede enlazar la configuración a un modo de ejecución. Incluso puede guardar configuraciones para más de un modo de ejecución en el mismo repositorio. - Las configuraciones adecuadas se aplican inmediatamente (depende del modo de ejecución).
Cualquiera que sea el método que utilice, todos estos métodos de configuración:
- Asegúrese de que al copiar o replicar el contenido del repositorio se recrean configuraciones idénticas.
- Permiten comprobar las configuraciones en FileVault o Subversion; para seguridad o para actualizaciones adicionales.
- Se puede guardar en paquetes para utilizarlos al configurar otras instancias.
- Permite realizar implementaciones de configuración mediante secuencias de comandos para asignar los detalles de configuración.
Configuración de OSGi con la consola web osgi-configuration-with-the-web-console
La variable Consola web en AEM proporciona una interfaz estandarizada para configurar los paquetes. La variable Configuración 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 relevante, no es necesario reiniciar.
Para actualizar una configuración con la consola web:
-
Acceda a la Configuración de la Consola Web mediante:
-
Apertura de la consola web desde el vínculo en el Herramienta -> Operaciones para abrir el Navegador. Después de iniciar sesión en la consola, puede utilizar el menú desplegable de:
OSGi >
-
La dirección URL directa; por ejemplo:
http://localhost:4502/system/console/configMgr
Se mostrará una lista.
-
-
Seleccione el paquete que desea configurar mediante:
- al hacer clic en Editar icono para ese paquete
- al hacer clic en Nombre del paquete
-
Se abrirá un cuadro de diálogo: Aquí puede editar según sea necesario; por ejemplo, establezca la variable Nivel de registro a
INFO
:note note NOTE 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.
note note NOTE Ahora puede localizar el archivos de configuración; por ejemplo, para incluir en un paquete de contenido para utilizarlo en otra instancia.
Configuración de OSGi con archivos de configuración osgi-configuration-with-configuration-files
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 reutilizar en otras instancias.
La consola web no muestra ninguna indicación de dónde se han guardado los cambios en el repositorio, pero se pueden localizar fácilmente:
-
Cree el archivo de configuración de realización de un cambio inicial en la consola web.
-
Abra CRXDE Lite.
-
En el Herramientas menú seleccionar Consulta … .
-
Enviar una consulta de Tipo
SQL
para buscar el PID de la configuración que ha actualizado.Por ejemplo, Consola de administración Apache Felix OSGi tiene la identidad persistente (PID) de:
org.apache.felix.webconsole.internal.servlet.OsgiManager
Por lo tanto, la consulta SQL podría ser:
code language-shell 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
note caution CAUTION Puede abrir este archivo para ver 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 como sea necesario en las demás instancias.
Configuración de OSGi en el repositorio osgi-configuration-in-the-repository
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 al que hace referencia el sistema. 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 relevante como si los cambios se hubieran realizado utilizando la consola web, con las comprobaciones de validación y coherencia 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 puede estar ubicado en varios lugares, el sistema:
- busca todos los nodos del tipo
sling:OsgiConfig
- filtros según el nombre del servicio
- filtros según el modo de ejecución
Adición de una nueva configuración al repositorio adding-a-new-configuration-to-the-repository
Qué debe saber what-you-need-to-know
Para agregar una nueva configuración al repositorio, debe saber lo siguiente:
-
La variable Identidad persistente (PID) del servicio.
Consulte la Configuraciones en la consola web. El nombre se muestra entre corchetes después del nombre del paquete (o en el Información de configuración hacia la parte inferior de la página).
Por ejemplo, crear un nodo
com.day.cq.wcm.core.impl.VersionManagerImpl.
para configurar Administrador de versiones de WCM AEM. -
Indica si una modo de ejecución es obligatorio. Cree la carpeta:
config
- para todos los modos de ejecuciónconfig.author
- para el entorno de creaciónconfig.publish
- para el entorno de publicaciónconfig.<run-mode>
- según proceda
-
Si Configuración o Configuración de fábrica es necesario.
-
Los parámetros individuales que se van a configurar; incluyendo cualquier definición de parámetro existente que deba recrearse.
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 al activar. -
¿Ya existe una configuración en
/libs
? Para enumerar todas las configuraciones en la instancia, utilice el Consulta herramienta 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>/
, luego se personaliza en la nueva ubicación.
Creación de la configuración en el repositorio creating-the-configuration-in-the-repository
Para añadir la nueva configuración al repositorio:
-
Utilice el CRXDE Lite para desplazarse a:
/apps/<yourProject>
-
Si aún no existe, cree la variable
config
carpeta (sling:Folder
):config
- aplicable a todos los modos de ejecuciónconfig.<run-mode>
: específico para un modo de ejecución determinado
-
En esta carpeta, cree un nodo:
-
Tipo:
sling:OsgiConfig
-
Nombre: la identidad persistente (PID);
por ejemplo, para AEM uso del administrador de versiones de WCM
com.day.cq.wcm.core.impl.VersionManagerImpl
note note NOTE Al realizar un anexado de configuración de fábrica -<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:
- Nombre: el nombre del parámetro como se muestra en la consola web; el nombre se muestra entre corchetes al final de la descripción del campo. Por ejemplo, para
Create Version on Activation
useversionmanager.createVersionOnActivation
- Tipo: según proceda.
- Valor: según sea necesario.
Solo es necesario crear propiedades para los parámetros que desea configurar, mientras que otros seguirán tomando los valores predeterminados establecidos por AEM.
- Nombre: el nombre del parámetro como se muestra en la consola web; el nombre se muestra entre corchetes al final de la descripción del campo. Por ejemplo, para
-
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).
/libs
ruta.Detalles de configuración configuration-details
Orden de resolución al inicio resolution-order-at-startup
Se utiliza el siguiente orden de prioridad:
-
Nodos del repositorio bajo
/apps/*/config...
.o con tiposling:OsgiConfig
o archivos de propiedad. -
Nodos de repositorio con tipo
sling:OsgiConfig
under/libs/*/config...
. (definiciones predeterminadas). -
Cualquiera
.config
archivos de<*cq-installation-dir*>/crx-quickstart/launchpad/config/...
. en el sistema de archivos local.
Esto significa que una configuración genérica en /libs
se puede ocultar mediante una configuración específica de proyecto en /apps
.
Orden de resolución en tiempo de ejecución resolution-order-at-runtime
Los cambios de configuración realizados mientras el sistema ejecuta el déclencheur de una recarga con la configuración modificada.
A continuación, se aplica el siguiente orden de prioridad:
- La modificación de una configuración en la consola web tendrá efecto inmediato, ya que tiene prioridad en el tiempo de ejecución.
- Modificación de una configuración en
/apps
tendrá efecto inmediato. - Modificación de una configuración en
/libs
tendrá efecto inmediato, a menos que esté enmascarado por una configuración de/apps
.
Resolución de varios modos de ejecución resolution-of-multiple-run-modes
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 en el siguiente estilo:
/apps/*/config.<runmode1>.<runmode2>/
Las configuraciones en dichas 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
, nodos de configuración en /apps/*/config.emea
, /apps/*/config.author.dev/
y /apps/*/config.author.emea.dev/
se aplicará, mientras que los nodos de configuración en /apps/*/config.author.asean/
y /config/author.dev.emea.noldap/
no se aplicará.
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 ambos /apps/*/config.author/
y /apps/*/config.emea.author/
definir una configuración paracom.day.cq.wcm.core.impl.VersionManagerImpl
, la configuración de /apps/*/config.emea.author/
se aplicará.
La granularidad de esta regla se encuentra en el nivel de PID.
No se pueden definir algunas propiedades para el mismo PID en /apps/*/config.author/
y más específicos 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.
Configuraciones estándar standard-configurations
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 página de WCM:
libs/wcm/core/config.publish/com.day.cq.wcm.core.stats.PageViewStatistics
/libs
no deben editarse directamente, sino copiarse en el área de la aplicación ( /apps
) antes de la personalización.Para enumerar todos los nodos de configuración en la instancia, utilice el Consulta en CRXDE Lite para enviar la siguiente consulta SQL:
select * from sling:OsgiConfig
Persistencia de configuración configuration-persistence
-
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}
essystem/config
por lo tanto, la configuración se escribe en/apps/system/config
-
Sin embargo, si está editando una configuración que inicialmente proviene de otras partes 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
-
-
Configuración que cambia
admin
se guardan en*.config
archivos en:code language-none /crx-quickstart/launchpad/config
-
Este es el área de datos privada del administrador de configuración de OSGi y contiene todos los detalles de configuración especificados por
admin
, independientemente de cómo hayan entrado en el 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 instalación múltiple:
-
Consola de administración Apache Felix OSGi
../crx/org/apache/felix/webconsole/internal/servlet/OsgiManager.config
-
Repositorio de cliente CRX Sling
../com/day/crx/sling/client/impl/CRXSlingClientRepository/<pid-nr>.config
-
-
/crx-quickstart/launchpad/config