Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

Adobe Summit 2023 [19th to 23rd March, Las Vegas and Virtual] | Complete AEM Session & Lab list

Programatically replicate the asset including all the sub asets

Avatar

Level 3

Hi,

I am using the Replicator API to replicate the asset like below.

replicator.replicate(session, ReplicationActionType.ACTIVATE, asset.getPath());

but somehow subassets are not replicated. Please confirm is there we can replicate all the subassets when the asset has been activated.

I am using the below code and achieving it now. Is there any better way the API or AEM provides. please help.

        Resource resource = resolver.resolve(assetPath);

                   if(resource != null){
                       Asset parentAsset = resource.adaptTo(Asset.class);
                       if(parentAsset != null){
                           Collection<Asset> subAssetCollection = parentAsset.getSubAssets();
                           for(Asset subAsset : subAssetCollection){
                               replicator.replicate(session, ReplicationActionType.ACTIVATE, subAsset.getPath());
                           }
                       }
                   }

3 Replies

Avatar

Level 10

It looks fine to me, 

You are using right asset API and replicator as well.

Other community member will share if there is better way

Avatar

Administrator

[No solution, but good to refer this]

Hi

Please read this post :

Link:- http://stackoverflow.com/questions/18955982/how-to-activate-programmatically-a-page-in-cq5-workflow

//Use Replicator OSGi service:

@Component public class MyComponent { @Reference private Replicator replicator; private void activatePage(Session session) { //... replicator.replicate(session, ReplicationActionType.ACTIVATE, pathToPage); //... } }

Avatar

Level 10

This is a good use case to add to our community articles.