Migration de la métadonnée site


Cette page ne doit être appliquée que si le script vous demande de passer la migration manuelle code.20251209.WEB-SiteMetadata

UniParisSorbonne6 v3

Normalement le seul concerné par cette migration de code.

Dans le TokenDetector, plusieurs modifications à apporter :

Dans la méthode saxPathsToModify, remplacer la ligne

if (contentNode.hasProperty(NAMESPACE_PREFIX + "site"))

par

if (contentNode.hasProperty(NAMESPACE_PREFIX_INTERNAL + "site"))

 

Puis remplacer la ligne

attrs.addCDATAAttribute("site", contentNode.getProperty(NAMESPACE_PREFIX + "site").getString());

par

attrs.addCDATAAttribute("site", contentNode.getProperty(NAMESPACE_PREFIX_INTERNAL + "site").getString());

 

Ensuite, dans la méthode _retrievePathsToModifyForToken, remplacer la ligne

String xpathQuery = "//element(*, ametys:content)[@ametys:site = '" + siteName + "' and jcr:contains(.//@*, '*" + oldToken.replace("'", "''") + "*')]";

par

String xpathQuery = "//element(*, ametys:content)[@ametys-internal:site = '" + siteName + "' and jcr:contains(.//@*, '*" + oldToken.replace("'", "''") + "*')]";

 

Dans la méthode _matchingProperty, on peut simplifier le code, car il n'y a plus besoin d'ignorer le site

// ametys:site is always ignored
if (!metadataName.equals("site") && !ignoredFields.contains(metadataName))
{

devient

if (!ignoredFields.contains(metadataName))
{

 

Enfin, dans la méthode _applyChanges, remplacer la ligne

request.setAttribute("siteName", contentNode.getProperty(NAMESPACE_PREFIX + "site").getString());

par 

request.setAttribute("siteName", contentNode.getProperty(NAMESPACE_PREFIX_INTERNAL + "site").getString());

Autres projets

Si un autre projet est appelé à faire cette migration, il faudra contacter un développeur vérifier et potentiellement modifier le code

Retour en haut