Trova nodi fratelli con lo stesso nome(SNS)
Prima di Jackrabbit Oak, era possibile creare degli nodi fratelli con lo stesso nome (SNS) in CRX 2.
Tuttavia, per passare a CRX 3 Oak, questi nodi devono essere rimossi.
Per trovare questi nodi, usa lo script Groovy qui sotto nella console script di Felix.
Una volta installata, la console di script è disponibile su /system/console/scriptconsole.
Non dimenticare di installare il bundle Groovy dopo aver installato la console di Script.
Lo script registra i percorsi dei nodi SNS in un logger chiamato sns che devi creare nella console OSGI.
proprietà di 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 session = repo.loginAdministrative(null) def root = session.getRootNode() def log = org.slf4j.LoggerFactory.getLogger("sns") traverseAndLogSNS(root, session, log) session.save() session.logout()
Lo script può essere adattato per registrare solo i nodi sns sotto un certo percorso.
Accedi al tuo account