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

    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.postPurge(session, fldPath);
      }
    } catch (ServiceConfigurationError e) {
      log.error(e.getMessage(), e);
    }
  }
  public void postCopy(XASession session, Ref<Node> refSrcFolderNode, Ref<Node> refNewFolderNode)
      throws AccessDeniedException, RepositoryException, PathNotFoundException, ItemExistsException,
          IOException, DatabaseException, UserQuotaExceededException {
    log.debug("postCopy({}, {}, {})", new Object[] {session, refSrcFolderNode, refNewFolderNode});

    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.postCopy(session, refSrcFolderNode, refNewFolderNode);
      }
    } catch (ServiceConfigurationError e) {
      log.error(e.getMessage(), e);
    }
  }