package com.hqyg.job;
import java.util.List;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.framework.CuratorFrameworkFactory.Builder;
import org.apache.curator.framework.recipes.cache.PathChildrenCache;
import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent;
import org.apache.curator.framework.recipes.cache.PathChildrenCacheListener;
import org.apache.curator.framework.recipes.cache.PathChildrenCache.StartMode;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.curator.test.TestingServer;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooDefs;
import org.apache.zookeeper.data.ACL;
import org.apache.zookeeper.data.Id;
import org.apache.zookeeper.server.auth.DigestAuthenticationProvider;
import com.hqyg.disjob.register.repository.ZnodeApi;
import com.hqyg.disjob.register.repository.ZnodeApiCuratorImpl;
import com.google.common.collect.Lists;
public class CuratorClientTest {
static CuratorFramework client;
public void createServer() throws Exception{
TestingServer server = new TestingServer();
server.start();
String serverConnectString = server.getConnectString();
System.err.println(serverConnectString);
Builder builder = CuratorFrameworkFactory.builder().connectString(serverConnectString)
.retryPolicy(new ExponentialBackoffRetry(1500, 3));
builder.sessionTimeoutMs(6000);
builder.connectionTimeoutMs(6000);
client = builder.build();
client.start();
}
public static void main(String[] args){
CuratorClientTest test = new CuratorClientTest();
try {
List<ACL> aclList = Lists.newArrayList(new ACL(ZooDefs.Perms.ALL,new Id("digest",DigestAuthenticationProvider.generateDigest("test:test"))));
test.createServer();
client.create().creatingParentsIfNeeded().withMode(CreateMode.PERSISTENT).withACL(aclList ).forPath("/a/b/c/e", "".getBytes());
client.getData().forPath("/a/b/c/d/111");
PathChildrenCache childrenCache = new PathChildrenCache(client, "/a/a/a" ,false);
childrenCache.getListenable().addListener(new PathChildrenCacheListener() {
@Override
public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception {
System.err.println(" event data " + event.getData());
}
});
childrenCache.start();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("");
}
}