[ https://issues.apache.org/jira/browse/CURATOR-587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Enrico Olivelli resolved CURATOR-587. ------------------------------------- Resolution: Fixed committed to master branch thank you! > Use ZooKeeper 3.7+ ZooKeeperServerEmbedded in order to start TestingServer > -------------------------------------------------------------------------- > > Key: CURATOR-587 > URL: https://issues.apache.org/jira/browse/CURATOR-587 > Project: Apache Curator > Issue Type: Improvement > Components: Tests > Reporter: Enrico Olivelli > Assignee: Zili Chen > Priority: Major > Fix For: 5.4.0 > > Time Spent: 1.5h > Remaining Estimate: 0h > > with 3.7.0 ZooKeeper provides an official API to run a ZooKeeper node. > We should use that API in order to launch ZooKeeper, this way we won't have > any compatibility issues. > In fact now (5.1) we are starting the ZooKeeper node using internal ZK > classes, that are subject to change in the future. > The ZooKeeperServerEmbedded API is designed to be forward compatible. > It is a very skinny API, and it basically reproduces the usage for the users, > that is to provide a configuration file and a base directory. > It also provides a way to prevent ZooKeeper to exit the JVM and to shutdown > gracefully the server. > {code:java} > > @TempDir > Path tmpDir; > > @Test > public void hello() throws Exception { > Properties configuration = new Properties(); > configuration.setProperty("clientPort", "2181"); > try (ZooKeeperServerEmbedded embedded = ZooKeeperServerEmbedded > .builder() > .exitHandler(ExitHandler.LOG_ONLY) > .baseDir(tmpDir) > .configuration(configuration) > .build();) { > embedded.start(); > CountDownLatch l = new CountDownLatch(1); > try (ZooKeeper zk = new ZooKeeper("localhost:2181", 40000, new > Watcher() { > @Override > public void process(WatchedEvent event) { > System.out.println("event "+event) > ; > l.countDown(); > } > } > )) { > l.await(); > System.out.println("WHOAMI"+ zk.whoAmI()); > zk.create("/foo", "foo".getBytes(), > ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL); > } > } > > } {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)