
pl.allegro.tech.hermes.test.helper.zookeeper.ZookeeperBaseTest Maven / Gradle / Ivy
package pl.allegro.tech.hermes.test.helper.zookeeper;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.ExponentialBackoffRetry;
import org.apache.curator.test.TestingServer;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@SuppressFBWarnings("MS_PKGPROTECT")
public abstract class ZookeeperBaseTest {
protected static TestingServer zookeeperServer;
protected static CuratorFramework zookeeperClient;
protected static ZookeeperWaiter wait;
protected ZookeeperBaseTest() {}
@BeforeClass
public static void beforeZookeeperClass() throws Exception {
zookeeperServer = new TestingServer(45678);
zookeeperClient =
CuratorFrameworkFactory.builder()
.connectString(zookeeperServer.getConnectString())
.retryPolicy(new ExponentialBackoffRetry(1000, 3))
.build();
zookeeperClient.start();
wait = new ZookeeperWaiter(zookeeperClient);
wait.untilZookeeperClientStarted();
}
protected static CuratorFramework newClient() {
CuratorFramework newClient =
CuratorFrameworkFactory.builder()
.connectString(zookeeperServer.getConnectString())
.retryPolicy(new ExponentialBackoffRetry(1000, 3))
.build();
newClient.start();
wait.untilZookeeperClientStarted(newClient);
return newClient;
}
@AfterClass
public static void tearDown() throws Exception {
zookeeperServer.stop();
}
protected void createPath(String path) throws Exception {
if (zookeeperClient.checkExists().forPath(path) == null) {
zookeeperClient.create().creatingParentsIfNeeded().forPath(path);
}
}
protected void deleteData(String path) throws Exception {
if (zookeeperClient.checkExists().forPath(path) != null) {
zookeeperClient.delete().deletingChildrenIfNeeded().forPath(path);
}
}
protected void deleteAllNodes() throws Exception {
if (zookeeperClient.checkExists().forPath("/hermes") != null) {
zookeeperClient.delete().guaranteed().deletingChildrenIfNeeded().forPath("/hermes");
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy