Skip to content

Instantly share code, notes, and snippets.

@jkan997
Last active February 9, 2018 02:05
Show Gist options
  • Save jkan997/8f16b678ee37f23eb6e8 to your computer and use it in GitHub Desktop.
Save jkan997/8f16b678ee37f23eb6e8 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);
@jkan997
Copy link
Author

jkan997 commented Apr 1, 2015

Just remember to change extension to .ecma in AEM

@ZhenxiongZhang
Copy link

thank you very much. I just need it .

@lonecrystal
Copy link

Wonderful. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment