同じ名前の兄弟(SNS)ノードの検索

Jackrabbit Oak の前に、CRX 2 で同じ名前の兄弟ノード(SNS)を作成することが可能でした。

ただし、CRX 3 Oak にアップグレードする場合、このようなノードを削除する必要があります。

これらのノードを検索するには、以下の Groovy スクリプトを Felix スクリプトコンソールで使用します。

インストールされたスクリプトコンソールは、/system/console/scriptconsole にあります。

スクリプトコンソールをインストールした後、Groovy バンドルをインストールするのを忘れないようにしてください。

このスクリプトは、OSGi コンソールで作成する必要がある sns という名前のロガー内に SNS ノードパスを記録します。

sns ロガーのプロパティ:

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"

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()

スクリプトは、特定のパスの下にある sns ノードのみを容易に記録するように構成することができます。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー