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.
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.
Nas seções a seguir, usamos o exemplo de uma nova página b
, criado na ramificação do blueprint e da live copy (criado 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 1 página secundária, lc-level-1
.
/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 criado 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 secundário-1 que foi criado manualmente na ramificação da live copy) |
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:
Lidar com conflitos com páginas criadas manualmente:
( rolloutmgr.conflicthandling.enabled
)
Definido 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.
O AEM usa manipuladores de conflito 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 dos métodos (comuns) 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.
O manipulador de conflitos padrão:
É chamado 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 o service.ranking
propriedade ), 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 flexibilidade quando necessária.
Esse manipulador de conflitos dá prioridade ao blueprint. A página da live copy /b
é movido (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 a implantação |
live copy após a implantação |
publicar após implantação |
|
b |
b (tem o conteúdo da página b do blueprint que foi implantado) |
b_msm_moved (tem o conteúdo da página b que foi criado manualmente na ramificação da live copy) |
b (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) |
|
/bp-level-1 |
/bp-level-1 |
/lc-level-1 (sem alteração) |
|
/lc-level-1 (sem alteração) |
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 seus requisitos; por exemplo, você pode desenvolver um manipulador para que a página da Live Copy tenha prioridade.
Pode ser projetado para ser configurado usando o Configuração OSGiem especial:
Classificação do serviço:
Define a ordem relacionada a outros manipuladores de conflito ( service.ranking
).
O valor padrão é 0.
Se você desativar tratamento de conflitos em seguida, o AEM não executa nenhuma ação em páginas conflitantes (as páginas não conflitantes são implantadas conforme esperado).
O AEM não dá nenhuma indicação de que os conflitos estão sendo ignorados, pois esse comportamento deve ser configurado explicitamente, portanto, presume-se que seja o comportamento necessário.
Nesse caso, a live copy tem prioridade efetiva. A página do blueprint /b
não é copiado e a página da live copy /b
é deixada intocada.
blueprint: /b
Não é copiado, mas é ignorado.
live copy: /b
Fica igual.
blueprint após implantação | live copy após a implantação |
publicar após implantação |
b |
b (sem alterações; tem o conteúdo da página b que foi criado manualmente na ramificação da live copy) |
b (sem alterações; contém o conteúdo da página b que foi criado manualmente na ramificação da live copy) |
/bp-level-1 |
/lc-level-1 (sem alteração) |
/lc-level-1 (sem alteração) |
A classificação de serviço do OSGi pode ser usada para definir a prioridade de manipuladores de conflito individuais.