Conflictos de despliegue de MSM

Pueden producirse conflictos si se crean páginas nuevas con el mismo nombre de página en la rama de modelo y en una rama de Live Copy dependiente.

Estos conflictos deben ser tratados y resueltos en el momento de su implementación.

Gestión de conflictos

Cuando existen páginas en conflicto (en el modelo y en las ramas de Live Copy), MSM permite definir cómo se deben gestionar (o incluso si).

Para asegurarse de que la implementación no está bloqueada, las definiciones posibles pueden incluir:

  • ¿Qué página (modelo o Live Copy) tendrá prioridad durante la implementación?

  • qué páginas se cambiarán de nombre (y cómo),

  • cómo afectará esto a cualquier contenido publicado.

    El comportamiento predeterminado de AEM (predeterminado) es que el contenido publicado no se verá afectado. Por lo tanto, si se ha publicado una página que se creó manualmente en la rama de Live Copy, dicho contenido se seguirá publicando después de la gestión y la implementación del conflicto.

Además de la funcionalidad estándar, se pueden agregar controladores de conflictos personalizados para implementar distintas reglas. También pueden permitir acciones de publicación como un proceso individual.

Ejemplo de escenario

En las siguientes secciones se utiliza el ejemplo de una nueva página b, creada tanto en el modelo como en la rama de Live Copy (creada manualmente), para ilustrar los distintos métodos de resolución de conflictos:

  • blueprint: /b

    Una página de formato; con 1 página secundaria, bp-level-1.

  • live copy: /b

    Una página creada manualmente en la rama Live Copy; con una página secundaria, lc-level-1.

    • Se activa al publicar como /b, junto con la página secundaria.

Antes de la implementación

modelo antes de la implementación Live Copy antes del lanzamiento publicar antes de la implementación
b
(creado en rama de modelo, listo para la implementación)
b
(creado manualmente en una rama de Live Copy)
b
(contiene el contenido de la página b que se creó manualmente en la rama Live Copy)
/bp-level-1 /lc-level-1
(creado manualmente en una rama de Live Copy)
/lc-level-1
(contiene el contenido de la página
child-level-1 que se creó manualmente en la rama Live Copy)

Administrador de implementación y administración de conflictos

El administrador de implementación le permite activar o desactivar la administración de conflictos.

Esto se lleva a cabo mediante la configuración OSGi del Administrador de implementación de CQ ​Day WCM:

  • Controlar conflictos con páginas creadas manualmente:

    ( rolloutmgr.conflicthandling.enabled)

    Se establece en true si el administrador de implementación debe gestionar conflictos de una página creada en la Live Copy con un nombre que exista en el modelo.

AEM comportamiento predefinido cuando la administración de conflictos se ha desactivado.

Controladores de conflictos

AEM utiliza controladores de conflictos para resolver cualquier conflicto de páginas que exista al implementar contenido de un modelo en una Live Copy. Cambiar el nombre de las páginas es uno de los métodos habituales para resolver estos conflictos. Puede haber más de un controlador de conflictos en funcionamiento para permitir una selección de comportamientos diferentes.

AEM proporciona:

  • El controlador de conflictos predeterminado:

    • ResourceNameRolloutConflictHandler
  • Posibilidad de implementar un controlador personalizado.

  • Mecanismo de clasificación de servicios que permite establecer la prioridad de cada controlador individual. Se utiliza el servicio con la clasificación más alta.

Controlador de conflictos predeterminado

El controlador de conflictos predeterminado:

  • Se llama ResourceNameRolloutConflictHandler

  • Con este controlador se da prioridad a la página de modelo.

  • La clasificación del servicio para este controlador se establece en un valor bajo ( "i.e. por debajo del valor predeterminado de la service.ranking propiedad), ya que se supone que los controladores personalizados necesitarán una clasificación más alta. Sin embargo, la clasificación no es el mínimo absoluto para garantizar la flexibilidad cuando sea necesario.

Este controlador de conflictos da prioridad al modelo. La página de Live Copy /b se mueve (dentro de la rama de Live Copy) a /b_msm_moved.

  • live copy: /b

    Se mueve (dentro de la Live Copy) a /b_msm_moved. Actúa como una copia de seguridad y garantiza que no se pierda contenido.

    • lc-level-1 no se mueve.
  • blueprint: /b

    Se despliega en la página de Live Copy /b.

    • bp-level-1 se despliega en la Live Copy.

Después del despliegue

modelo después de la implementación Live Copy después del lanzamiento
Live Copy después del lanzamiento


publicar después de la implementación

b b
(tiene el contenido de la página de modelo b que se presentó)
b_msm_moved
(tiene el contenido de la página b que se creó manualmente en la rama Live Copy)
b
(sin cambios; contiene el contenido de la página original b que se creó manualmente en la rama Live Copy y ahora se denomina b_msm_move)
/bp-level-1 /bp-level-1 /lc-level-1
(sin cambios)
/lc-level-1
(sin cambios)

Controladores personalizados

Los controladores de conflictos personalizados le permiten implementar sus propias reglas. Con el mecanismo de clasificación de servicios también puede definir cómo interactúan con otros controladores.

Los controladores de conflictos personalizados pueden:

  • Reciba un nombre según sus necesidades. ``

  • Ser desarrollado/configurado según sus necesidades; por ejemplo, puede desarrollar un controlador para que la página de Live Copy tenga prioridad.

  • Se puede diseñar para configurarse mediante la configuración OSGi; en particular:

    • Clasificación de servicios:

      Define el orden relacionado con otros controladores de conflictos ( service.ranking).

      El valor predeterminado es 0.

Comportamiento al desactivar la gestión de conflictos

Si desactiva manualmente la gestión de conflictos, no AEM ninguna acción en las páginas en conflicto (las páginas en conflicto se despliegan según lo esperado).

PRECAUCIÓN

AEM no da ninguna indicación de que se estén ignorando los conflictos, ya que este comportamiento debe configurarse explícitamente, por lo que se supone que es el comportamiento requerido.

En este caso, la Live Copy tiene prioridad. La página de modelo no /b se copia y la página de Live Copy /b se deja intacta.

  • blueprint: /b

    No se copia en absoluto, pero se ignora.

  • live copy: /b

    Sigue igual.

Después del despliegue
modelo después de la implementación Live Copy después del lanzamiento


publicar después de la implementación

b b
(sin cambios; tiene el contenido de la página b que se creó manualmente en la rama Live Copy)
b
(sin cambios; contiene el contenido de la página b que se creó manualmente en la rama Live Copy)
/bp-level-1 /lc-level-1
(sin cambios)
/lc-level-1
(sin cambios)

Clasificación de servicios

La clasificación del servicio OSGi se puede utilizar para definir la prioridad de los controladores de conflictos individuales.

En esta página