/**
  * recursive activation Override this method to provide tree specific node recursion
  *
  * @param syndicator
  * @param parentPath
  * @param path
  */
 public void activateNodeRecursive(Syndicator syndicator, String parentPath, String path)
     throws ExchangeException, RepositoryException {
   syndicator.activate(parentPath, path);
   Iterator children =
       this.getTree().getHierarchyManager().getContent(path).getChildren().iterator();
   while (children.hasNext()) {
     this.activateNodeRecursive(syndicator, path, ((Content) children.next()).getHandle());
   }
 }
  /**
   * @param path
   * @param recursive
   */
  public void activateNode(String path, boolean recursive)
      throws ExchangeException, RepositoryException {

    String parentPath = StringUtils.substringBeforeLast(path, "/");
    if (StringUtils.isEmpty(parentPath)) {
      parentPath = "/";
    }

    Syndicator syndicator = getActivationSyndicator(path);
    if (recursive) {
      activateNodeRecursive(syndicator, parentPath, path);
    } else {
      syndicator.activate(parentPath, path);
    }
  }