Les éléments ne peuvent pas être déplacés correctement à l'aide de l'API JCR Session.move. Au lieu de cela, vous devez utiliser l'API PageManager.move.
PageManager pageManager = ((PageManager)resourceResolver.adaptTo(PageManager.class)); Resource sourceResource = resourceResolver.getResource("/content/dam/example.jpg"); String destinationPath = "/content/dam/test/example.jpg"; pageManager.move(sourceResource, destinationPath, null, false, true, null, null);
Malheureusement, cette méthode d'appel n'inclut pas complètement tout ce qui est fait par com.day.cq.wcm.core.impl.commands. Classe AbstractCopyMoveCommand qui gère la requête de l'interface utilisateur. Pour simuler entièrement l'interface utilisateur, vous devez déclencher cette requête en interne à l'aide de SlingRequestProcessor.
Voir cet article pour plus de détails sur la façon de déclencher une telle demande:
http://www.nateyolles.com/blog/2015/10/get-rendered-html-for-an-aem-resource-or-component.
La demande serait :
POST /bin/wcmcommand
cmd=movePage integrity=true _charset=utf-8 destParentPath=/content/dam destName=test1.png srcPath=/content/dam/test.png