Búsqueda de nodos hermanos del mismo nombre (SNS)

Antes de Jackrabbit Oak, era posible crear nodos hermanos del mismo nombre (SNS) en CRX 2.

Sin embargo, para actualizar a CRX 3 Oak, esos nodos necesitan ser eliminados.

Para encontrar esos nodos, use el script Groovy de abajo en la consola de scripts de Felix.

Una vez instalada, la consola de scripts está disponible en /system/console/scriptconsole.

No olvide instalar el paquete Groovy después de instalar la consola Script.

El script registra las rutas de los nodos SNS en un logger llamado sns que necesita crear en la consola OSGI.

propiedades del sns logger

org.apache.sling.commons.log.pattern="{5}" org.apache.sling.commons.log.names="sns"] org.apache.sling.commons.log.file="logs/sns.log" org.apache.sling.commons.log.level="debug"

Script Groovy

def traverseAndLogSNS(node, session, log){ if(node.index != 1) { log.info(node.path) //session.removeItem(node.path) return } if(node.hasNodes()) { def ni = node.nodes while(ni.hasNext()){ traverseAndLogSNS(ni.nextNode(), session, log) } } } def repo = osgi.getService(org.apache.sling.jcr.api.SlingRepository) def sesión = repo.loginAdministrative(null) def root = session.getRootNode() def log = org.slf4j.LoggerFactory.getLogger("sns") traverseAndLogSNS(root, session, log) session.save() session.logout()

 

El script puede ser adaptado para registrar solo nodos sns bajo una determinada ruta.