package com.senseidb.test;
import java.io.File;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import org.apache.zookeeper.server.NIOServerCnxn;
import org.apache.zookeeper.server.ZooKeeperServer;
import org.apache.zookeeper.server.persistence.FileTxnSnapLog;
import org.junit.Test;
/**
* @author Dmytro Ivchenko
*/
public class TestZkServer
{
private static ZooKeeperServer zkServer;
private static NIOServerCnxn.Factory cnxnFactory;
private static File zkDir;
public void start() throws Exception
{
zkServer = new ZooKeeperServer();
zkDir = File.createTempFile("zkData", Long.toString(System.nanoTime()));
zkDir.delete();
zkDir.mkdir();
FileTxnSnapLog ftxn = new FileTxnSnapLog(zkDir, zkDir);
zkServer.setTxnLogFactory(ftxn);
zkServer.setTickTime(2000);
zkServer.setMinSessionTimeout(-1);
zkServer.setMaxSessionTimeout(-1);
cnxnFactory = new NIOServerCnxn.Factory(new InetSocketAddress(InetAddress.getByName(
"localhost"), 2181), 50);
cnxnFactory.setDaemon(true);
cnxnFactory.startup(zkServer);
}
public void stop() {
try {cnxnFactory.shutdown();} catch (Exception t){}
try {zkServer.shutdown();} catch (Exception t){}
rmrf(zkDir);
}
@Test
public void test()
{
}
public static boolean rmrf(File f) {
if (f == null || !f.exists()) {
return true;
}
if (f.isDirectory()) {
for (File sub : f.listFiles()) {
if (!rmrf(sub))
return false;
}
}
return f.delete();
}
}