code: public static CompletionStage<Void> recursiveCopy(final ServiceBundler services, final Session session,
              final Resource resource, final IRI destination, final String baseUrl) {
          final List<IRI> resources = resource.stream(LDP.PreferContainment).map(Quad::getObject)
              .filter(IRI.class::isInstance).map(IRI.class::cast).collect(toList());
          resources.stream().parallel().map(id -> recursiveCopy(services, session, id,
                      mapDestination(id, resource.getIdentifier(), destination), baseUrl))
              .map(CompletionStage::toCompletableFuture).forEach(CompletableFuture::join);
          return copy(services, session, resource, destination, baseUrl);
      }
docs: Recursively copy the resources under the provided identifier.
  @param services the trellis service
  @param session the session
  @param resource the resource
  @param destination the destination identifier
  @param baseUrl the baseURL
  @return the next stage of completion