Possono verificarsi conflitti se nuove pagine con lo stesso nome di pagina vengono create sia nel ramo blueprint che in un ramo Live Copy dipendente. Tali conflitti devono essere gestiti e risolti al momento del rollout.
Quando esistono delle pagine in conflitto (nei rami blueprint e Live Copy), MSM ti consente di definire come (o anche se) devono essere gestite.
Per garantire che il rollout non sia bloccato, le definizioni possibili possono includere:
Il comportamento predefinito di AEM è che il contenuto pubblicato non sarà interessato. Quindi, se una pagina creata manualmente nel ramo Live Copy è stata pubblicata, il contenuto verrà comunque pubblicato dopo la gestione e il rollout dei conflitti.
Oltre alla funzionalità standard, è possibile aggiungere gestori di conflitti personalizzati per implementare regole diverse. Questi possono anche consentire la pubblicazione di azioni come un singolo processo.
Nelle sezioni seguenti utilizziamo l’esempio di una nuova pagina b
, creata sia nella blueprint che nel ramo Live Copy (creata manualmente), per illustrare i vari metodi di risoluzione dei conflitti:
blueprint: /b
Una pagina master con 1 pagina figlio, bp-level-1
Live Copy: /b
Una pagina creata manualmente nel ramo Live Copy con 1 pagina figlia, lc-level-1
/b
, insieme alla pagina figlioBlueprint prima del rollout | Live Copy prima del rollout | Pubblica prima del rollout | |
---|---|---|---|
Valore | b |
b |
b |
Commento | Creato nel ramo blueprint, pronto per il rollout | Creazione manuale nel ramo Live Copy | Contiene il contenuto della pagina b creata manualmente nel ramo Live Copy |
Valore | /bp-level-1 |
/lc-level-1 |
/lc-level-1 |
Commento | Creazione manuale nel ramo Live Copy | contiene il contenuto della pagina child-level-1 creata manualmente nel ramo Live Copy |
Il rollout manager consente di attivare o disattivare la gestione dei conflitti.
Questo viene fatto utilizzando Configurazione OSGi di Day CQ WCM Rollout Manager. Imposta il valore Gestisci conflitto con pagine create manualmente ( rolloutmgr.conflicthandling.enabled
) su true se il gestore di rollout deve gestire i conflitti di una pagina creata in Live Copy con un nome presente nella blueprint.
AEM ha un comportamento predefinito quando la gestione dei conflitti è stata disattivata.
AEM utilizza gestori di conflitti per risolvere eventuali conflitti di pagina esistenti durante il rollout del contenuto da una blueprint a una Live Copy. La ridenominazione delle pagine è il metodo consueto (non solo) per risolvere tali conflitti. Per consentire la selezione di diversi comportamenti, è possibile utilizzare più gestori di conflitti.
AEM fornisce:
ResourceNameRolloutConflictHandler
Il gestore dei conflitti predefinito è ResourceNameRolloutConflictHandler
service.ranking
, in quanto si presume che i gestori personalizzati avranno bisogno di una classificazione più alta. Tuttavia, la classificazione non è il minimo assoluto per garantire flessibilità quando necessario.Questo gestore di conflitti ha la precedenza sulla blueprint. Ad esempio, la pagina Live Copy /b
viene spostata all’interno del ramo Live Copy in /b_msm_moved
.
Live Copy: /b
Viene spostato all’interno della Live Copy in /b_msm_moved
. Questo funge da backup e assicura che non venga perso alcun contenuto.
lc-level-1
non viene spostato.Blueprint: /b
Viene introdotto nella pagina Live Copy /b
.
bp-level-1
viene inviato alla Live Copy.Blueprint dopo il rollout | Live Copy dopo il rollout | Live Copy dopo il rollout | Pubblica dopo il rollout | |
---|---|---|---|---|
Valore | b |
b |
b_msm_moved |
b |
Commento | Contiene il contenuto della pagina blueprint b che è stata implementata |
Contiene il contenuto della pagina b creata manualmente nel ramo Live Copy |
Nessuna modifica, contiene il contenuto della pagina originale b creata manualmente nel ramo Live Copy e ora denominata b_msm_moved |
|
Valore | /bp-level-1 |
/bp-level-1 |
/lc-level-1 |
/lc-level-1 |
Commento | Nessuna modifica | Nessuna modifica |
I gestori di conflitti personalizzati ti consentono di implementare regole personalizzate. Utilizzando il meccanismo di classificazione del servizio è inoltre possibile definire il modo in cui interagiscono con altri gestori.
I gestori di conflitti personalizzati possono:
service.ranking
).
0
.Se si disattiva manualmente la gestione dei conflitti, ](#rollout-manager-and-conflict-handling) AEM non esegue alcuna azione su pagine in conflitto. [ Le pagine non in conflitto vengono distribuite come previsto.
Quando la gestione dei conflitti è disattivata, AEM non fornisce alcuna indicazione che i conflitti vengano ignorati. Poiché in tali casi questo comportamento deve essere configurato esplicitamente, si presume che sia il comportamento desiderato.
In questo caso la Live Copy ha effettivamente la precedenza. La pagina blueprint /b
non viene copiata e la pagina Live Copy /b
non viene toccata.
Blueprint: /b
Non viene copiato, ma viene ignorato.
Live Copy: /b
Rimane lo stesso.
Blueprint dopo il rollout | Live Copy dopo il rollout | Pubblica dopo il rollout | |
---|---|---|---|
Valore | b |
b |
b |
Commento | Nessuna modifica, presenta il contenuto della pagina b creata manualmente nel ramo Live Copy |
Nessuna modifica, contiene il contenuto della pagina b creata manualmente nel ramo Live Copy |
|
Valore | /bp-level-1 |
/lc-level-1 |
/lc-level-1 |
Commento | Nessuna modifica | Nessuna modifica |
La classificazione del servizio OSGi può essere utilizzata per definire la priorità dei singoli gestori di conflitti.