Conflitos de implementação do MSM

Conflitos podem ocorrer se novas páginas com o mesmo nome de página forem criadas na ramificação do blueprint e em uma ramificação de live copy dependente.

Tais conflitos devem ser tratados e resolvidos aquando da sua implantação.

Tratamento de conflitos

Quando páginas conflitantes existem (no blueprint e nas ramificações de live copy), o MSM permite definir como (ou mesmo se) elas devem ser tratadas.

Para garantir que a implantação não seja bloqueada, as possíveis definições podem incluir:

  • qual página (blueprint ou live copy) terá prioridade durante a implantação,

  • quais páginas serão renomeadas (e como),

  • como isso afetará qualquer conteúdo publicado.

    O comportamento padrão do AEM (pronto para uso) é que o conteúdo publicado não será afetado. Portanto, se uma página que foi criada manualmente na ramificação da live copy tiver sido publicada, esse conteúdo ainda será publicado após a manipulação e implantação do conflito.

Além da funcionalidade padrão, os manipuladores de conflito personalizados podem ser adicionados para implementar regras diferentes. Isso também pode permitir a publicação de ações como um processo individual.

Exemplo de cenário

Nas seções a seguir, usamos o exemplo de uma nova página b, criada tanto no blueprint quanto na ramificação da live copy (criada manualmente), para ilustrar os vários métodos de resolução de conflitos:

  • blueprint: /b

    Uma página principal; com 1 página secundária, nível bp-1.

  • live copy: /b

    Uma página criada manualmente na ramificação da live copy; com uma página filho, lc-level-1.

    • Ativado ao publicar como /b, junto com a página secundária.

Antes da implantação

blueprint antes da implantação live copy antes da implantação publicar antes da implantação
b
(criado na ramificação do blueprint, pronto para implantação)
b
(criado manualmente na ramificação da live copy)
b
(contém o conteúdo da página b que foi criada manualmente na ramificação da live copy)
/bp-level-1 /lc-level-1
(criado manualmente na ramificação da live copy)
/lc-level-1
(contém o conteúdo da página
nível-filho-1 que foi criada manualmente na ramificação da live copy)

Gerenciador de implantação e tratamento de conflito

O gerenciador de implementação permite ativar ou desativar o gerenciamento de conflitos.

Isso é feito usando a configuração OSGi de Gerenciador de implementação do WCM CQ do dia:

  • Lidar com conflito com páginas criadas manualmente:

    ( rolloutmgr.conflicthandling.enabled)

    Defina como true se o gerenciador de implementação deve lidar com conflitos de uma página criada na live copy com um nome que existe no blueprint.

AEM tem comportamento predefinido quando o gerenciamento de conflitos foi desativado.

Manipuladores de conflito

O AEM usa manipuladores de conflitos para resolver quaisquer conflitos de página que existam ao implantar conteúdo de um blueprint em uma live copy. A renomeação de páginas é um método (o usual) para resolver esses conflitos. Mais de um manipulador de conflitos pode ser operacional para permitir uma seleção de comportamentos diferentes.

AEM fornece:

  • O manipulador de conflitos padrão:

    • ResourceNameRolloutConflictHandler
  • A possibilidade de implementar um manipulador personalizado.

  • O mecanismo de classificação de serviço que permite definir a prioridade de cada manipulador individual. O serviço com a classificação mais alta é usado.

Manipulador de conflito padrão

O manipulador de conflitos padrão:

  • É chamado de ResourceNameRolloutConflictHandler

  • Com esse manipulador, a página do blueprint recebe prioridade.

  • A classificação de serviço desse manipulador é definida como baixa ( "ou seja, abaixo do valor padrão da propriedade service.ranking), pois a suposição é que os manipuladores personalizados precisarão de uma classificação mais alta. No entanto, a classificação não é o mínimo absoluto para garantir a flexibilidade quando necessário.

Esse manipulador de conflitos dá prioridade ao blueprint. A página de Live Copy /b é movida (dentro da ramificação da Live Copy) para /b_msm_moved.

  • live copy: /b

    É movido (dentro da live copy) para /b_msm_moved. Isso funciona como um backup e garante que nenhum conteúdo seja perdido.

    • lc-level-1 não é movido.
  • blueprint: /b

    É implantado na página de Live Copy /b.

    • bp-level-1 é distribuída para a livecopy.

Após a implantação

blueprint após a implantação live copy após a implantação
live copy após a implantação


publicar após a implantação

b b
(tem o conteúdo da página de blueprint b que foi implementada)
b_msm_moved
(tem o conteúdo da página b que foi criada manualmente na ramificação da live copy)
b
(sem alterações; contém o conteúdo da página original b que foi criada manualmente na ramificação da live copy e agora é chamada de b_msm_moved)
/bp-level-1 /bp-level-1 /lc-level-1
(sem alterações)
/lc-level-1
(sem alterações)

Manipuladores personalizados

Os manipuladores de conflito personalizados permitem que você implemente suas próprias regras. Usando o mecanismo de classificação de serviço, você também pode definir como eles interagem com outros manipuladores.

Os manipuladores de conflitos personalizados podem:

  • Seja nomeado de acordo com suas necessidades.

  • Ser desenvolvido/configurado de acordo com suas necessidades; por exemplo, você pode desenvolver um manipulador para que a página de Live Copy tenha prioridade.

  • Pode ser projetado para ser configurado usando a configuração OSGi; em especial:

    • Classificação do serviço:

      Define a ordem relacionada a outros manipuladores de conflito ( service.ranking).

      O valor padrão é 0.

Comportamento ao lidar com conflitos desativado

Se você desativar manualmente a manipulação de conflitos então AEM não executa nenhuma ação em quaisquer páginas conflitantes (páginas não conflitantes são implantadas conforme esperado).

ATENÇÃO

AEM não fornece qualquer indicação de que os conflitos estão sendo ignorados, pois esse comportamento deve ser configurado explicitamente, portanto, presume-se que é o comportamento necessário.

Nesse caso, a live copy tem prioridade. A página do blueprint /b não é copiada e a página da live copy /b é deixada intocada.

  • blueprint: /b

    Não é copiado, mas é ignorado.

  • live copy: /b

    Fica igual.

Após a implantação
blueprint após a implantação live copy após a implantação


publicar após a implantação

b b
(sem alterações; tem o conteúdo da página b que foi criada manualmente na ramificação da live copy)
b
(sem alterações; contém o conteúdo da página b que foi criada manualmente na ramificação da live copy)
/bp-level-1 /lc-level-1
(sem alterações)
/lc-level-1
(sem alterações)

Classificações de serviço

A classificação de serviço OSGi pode ser usada para definir a prioridade de manipuladores de conflito individuais.

Nesta página