public void preMove(Session session, String fldPath, String dstNodePath)
      throws AccessDeniedException, RepositoryException, PathNotFoundException, ItemExistsException,
          DatabaseException {
    log.debug("preMove({}, {}, {})", new Object[] {session, fldPath, dstNodePath});

    try {
      ExtensionManager em = ExtensionManager.getInstance();
      List<FolderExtension> col = em.getPlugins(FolderExtension.class);
      Collections.sort(col, new OrderComparator<FolderExtension>());

      for (FolderExtension ext : col) {
        log.debug("Extension class: {}", ext.getClass().getCanonicalName());
        ext.preMove(session, fldPath, dstNodePath);
      }
    } catch (ServiceConfigurationError e) {
      log.error(e.getMessage(), e);
    }
  }