package com.vip.saturn.job.utils;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.RetryNTimes;
import org.apache.curator.test.TestingServer;
import java.io.IOException;
import java.net.ServerSocket;
/**
* Created by xiaopeng.he on 2016/7/8.
*/
public class NestedZkUtils {
private TestingServer testingServer;
private int port;
public void startServer() throws Exception {
try (ServerSocket socket = new ServerSocket(0);) {
port = socket.getLocalPort();
} catch (IOException e) {
}
testingServer = new TestingServer(port);
}
public void stopServer() throws IOException {
if(testingServer != null) {
testingServer.close();
}
}
public CuratorFramework createClient(String namespace) throws InterruptedException {
CuratorFrameworkFactory.Builder builder = CuratorFrameworkFactory.builder();
CuratorFramework curatorFramework = builder.connectString("127.0.0.1:" + port)
.sessionTimeoutMs(600 * 1000) // long long, could to debug
.retryPolicy(new RetryNTimes(3, 1000))
.namespace(namespace)
.build();
curatorFramework.start();
curatorFramework.blockUntilConnected();
return curatorFramework;
}
}