private void copyChildren(Resource source, Resource target) throws PersistenceException {
   for (Resource sourceChild : source.getChildren()) {
     Resource targetChild =
         resourceResolver.create(
             target, sourceChild.getName(), sourceChild.adaptTo(ValueMap.class));
     copyChildren(sourceChild, targetChild);
   }
 }