Skip to content

Instantly share code, notes, and snippets.

@ryanlfoster
Forked from jkan997/treeactivate.js
Last active July 25, 2017 20:33
Show Gist options
  • Select an option

  • Save ryanlfoster/34544a96b06e571ff1eb to your computer and use it in GitHub Desktop.

Select an option

Save ryanlfoster/34544a96b06e571ff1eb to your computer and use it in GitHub Desktop.
AEM - Replicate Resource and entire child tree
var workflowData = workItem.getWorkflowData();
var jcrSession = workflowSession.getSession();
// Resource resolver
var resourceResolverFactory = sling.getService(Packages.org.apache.sling.api.resource.ResourceResolverFactory);
var authInfo = new Packages.java.util.HashMap();
authInfo.put("user.jcr.session", jcrSession);
var resourceResolver = resourceResolverFactory.getResourceResolver(authInfo);
// Replicator
var replicator = sling.getService(Packages.com.day.cq.replication.Replicator);
var replicationOpts = new Packages.com.day.cq.replication.ReplicationOptions();
var workflowData = workItem.getWorkflowData();
var payloadPath = workflowData.getPayload().toString();
var mainResource = resourceResolver.getResource(payloadPath);
function replicate(res) {
var resPath = res.getPath();
log.debug("Activating " + resPath);
replicator.replicate(jcrSession, Packages.com.day.cq.replication.ReplicationActionType.ACTIVATE, resPath, replicationOpts);
var childIt = resourceResolver.listChildren(res);
while (childIt.hasNext()) {
var childResource = childIt.next();
replicate(childResource);
}
}
replicate(mainResource);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment