Conflitos de implantação

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 dependente da Live Copy. Esses conflitos precisam ser tratados e resolvidos na implantação.

Tratamento de conflitos

Quando páginas conflitantes existem (nas ramificações do blueprint e da 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 o tratamento do conflito e a implantação.

Além da funcionalidade padrão, os manipuladores de conflito personalizados podem ser adicionados para implementar regras diferentes. Eles também podem 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 na ramificação do blueprint e 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, bp-level-1

  • Live Copy: /b

    Uma página criada manualmente na ramificação da Live Copy com 1 página secundária, 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
Valor b b b
Comentar Criado na ramificação do blueprint, pronto para implantação Criado manualmente na ramificação da Live Copy Contém o conteúdo da página b que foi criada manualmente na ramificação da Live Copy
Valor /bp-level-1 /lc-level-1 /lc-level-1
Comentar Criado manualmente na ramificação da Live Copy Contém o conteúdo da página child-level-1 que foi criada manualmente na ramificação da Live Copy

Gerenciador de implantação e tratamento de conflito

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

Isso é feito usando a configuração do OSGi do Gerenciador de implantaçao Day CQ WCM. Defina o valor Manipular conflito com páginas criadas manualmente ( rolloutmgr.conflicthandling.enabled) como verdadeiro se o gerenciador de implantação deve lidar com conflitos de uma página criada na Live Copy com um nome que existe no blueprint.

O AEM tem comportamentos predefinidos 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 é o método usual (não único) para resolver esses conflitos. Mais de um manipulador de conflitos pode estar operacional para permitir uma seleção de comportamentos diferentes.

O 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 conflito padrão é o ResourceNameRolloutConflictHandler

  • Com esse manipulador, a página do blueprint recebe prioridade.
  • A classificação de serviço para esse manipulador é definida como baixa, ou seja, abaixo do valor padrão para a propriedade service.ranking, como se supõe 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 flexibilidade quando necessária.

Esse manipulador de conflitos dá prioridade ao blueprint. Por exemplo, a página da 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 da Live Copy /b.

    • bp-level-1 é implantado na Live Copy.

Após a implantação

Blueprint após implantação Live Copy após implantação Live Copy após implantação Publicar após a implantação
Valor b b b_msm_moved b
Comentar Tem o conteúdo da página do blueprint b que foi implantado Tem o conteúdo da página b que foi criado manualmente na ramificação da Live Copy Sem alterações, contém o conteúdo da página original b que foi criado manualmente na ramificação da Live Copy e agora é chamado de b_msm_moved
Valor /bp-level-1 /bp-level-1 /lc-level-1 /lc-level-1
Comentar Sem alterações 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 conflito personalizados podem:

  • Ser nomeados de acordo com suas necessidades.
  • Ser desenvolvidos/configurados de acordo com suas necessidades.
    • Por exemplo, é possível desenvolver um manipulador para que a página da Live Copy tenha prioridade.
  • Pode ser projetado para ser configurado usando a configuração do OSGi. Em especial:
    • A Classificação do serviço define a ordem relacionada a outros manipuladores de conflito ( service.ranking).
      • O valor padrão é 0.

Comportamento quando o manuseio de conflitos é desativado

Se você desativar o manuseio de conflitos manualmente, o AEM não executa nenhuma ação em páginas em conflito. As páginas não conflitantes são implantadas conforme esperado.

ATENÇÃO

Quando o manuseio de conflitos é desativado, o AEM não dá qualquer indicação de que os conflitos estão sendo ignorados. Como nesses casos, esse comportamento deve ser configurado explicitamente, assume-se que é o comportamento desejado.

Nesse caso, a Live Copy tem prioridade efetiva. 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 implantação Live Copy após implantação Publicar após a implantação
Valor b b b
Comentar Sem alterações, tem o conteúdo da página b que foi criado manualmente na ramificação da Live Copy Sem alterações, contém o conteúdo da página b que foi criado manualmente na ramificação da Live Copy
Valor /bp-level-1 /lc-level-1 /lc-level-1
Comentar Sem alterações Sem alterações

Classificações de serviço

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

Nesta página