package com.baidu.disconf.core.test.zookeeper;
import java.util.List;
import org.apache.zookeeper.KeeperException;
import com.baidu.disconf.core.common.zookeeper.inner.ConnectionWatcher;
/**
* 递归进行删除
*
* @author liaoqiqi
* @version 2014-6-16
*/
public class DeleteGroup extends ConnectionWatcher {
public static String hosts = "127.0.0.1:8581,127.0.0.1:8582,127.0.0.1:8583";
/**
* @param
*/
public DeleteGroup() {
super(true);
}
public void delete(String groupName) throws KeeperException, InterruptedException {
String path = groupName;
try {
List<String> children = zk.getChildren(path, false);
if (children.size() == 0) {
System.out.println("delete: " + path);
zk.delete(path, -1);
return;
}
for (String child : children) {
System.out.println("delete: " + path + "/" + child);
delete(path + "/" + child);
}
} catch (KeeperException.NoNodeException e) {
System.out.printf("Group %s does not exist\n", groupName);
System.exit(1);
}
}
public static void main(String[] args) throws Exception {
DeleteGroup deleteGroup = new DeleteGroup();
deleteGroup.connect(hosts);
deleteGroup.delete("/disconf");
deleteGroup.close();
}
}
// ^^ DeleteGroup