Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.

How to create LiveCopy of a page with rollout configuration using Java?

Avatar

Level 5

Hi Guys,

I have a requirement to create LiveCopy of a page programmatically using Java. Do we have any API which provides this feature which will create exact liveCopy of a page with its complete structure same as liveCopy option of siteadmin and site.html/content?

thanks!

Rashid

7 Replies

Avatar

Level 1

Dear Rashid,

First copy/paste page using PageManager API, then use LiveRelationshipManager API[2] to establish relationship between pages.

[1] PageManager ("The Adobe AEM Quickstart and Web Application.")

[2] LiveRelationshipManager ("The Adobe AEM Quickstart and Web Application.")


Regards,Peter

Avatar

Level 5

I am unable to generate  RolloutConfig... rolloutConfig parameters, Since when I try to uisng RolloutConfigManager then my component is not getting resolve.

Please suggest how to pass RolloutConfig parameter.

Avatar

Level 10

WHile not the exact use case - we have an AEM article that shows use of the MSM API here: Adobe Experience Manager Help | Retrieving Adobe Experience Manager LiveCopy information using the M...

This is the API you want to use for your use case.

Avatar

Level 5

Right Scoot, I am trying to achieve this using LiveRelationshipManager API. But when I try to inject RolloutConfigManager interface to create the RolloutConfig then I am getting the unsatisfied message "No service bound error" and unable to execute this service.

Please help me to resolve this issue.

Below is the code which I am trying:

@Reference
LiveRelationshipManager liveRelationshipManager;
@Reference
RolloutConfigManager rolloutConfigManager;
String rolloutConfigPath="/etc/msm/rolloutconfigs/default";

RolloutConfig rolloutConfig=rolloutConfigManager.getRolloutConfig(rolloutConfigPath);
liveRelationshipManager.establishRelationship(fromLive, toLive, deep, autoSave, rolloutConfig);

Error:

1516369_pastedImage_3.png

Avatar

Level 2
Level 2

Hi we had tried resolving the rolloutconfigmanager by adapting it using resolver:

RolloutConfigManager rolloutConfigManager = resolver.adapto(RolloutConfigManager.class);

and then we used it in code.

Avatar

Level 1

@Reference

private RolloutManager rolloutManager;

Resource resource = resourceResolver.getResource(sourcePath);

LiveRelationshipManager liveRelationshipManager = resourceResolver.adaptTo(LiveRelationshipManager.class);

Collection<LiveRelationship> liveRelationShips;

liveRelationShips = liveRelationshipManager.getLiveRelationships(resource, Trigger.ROLLOUT, null, true);

if (null != liveRelationShips) {

// get each relationship

for (LiveRelationship liveRelationship : liveRelationShips) {

rolloutManager.rollout(resourceResolver, liveRelationship, true);

}

}