@Test public void testDeleteChildWithCallback() throws Exception { ZooKeeper zk = getClient(0); configure("/cache02", zk); TestCallback cb = new TestCallback(); LeaderCache dut = new LeaderCache(zk, "/cache02", cb); dut.start(true); Map<Integer, Long> cache = cb.m_cache; assertEquals("3 items cached.", 3, cache.size()); zk.delete("/cache02/1", -1); while (true) { cache = cb.m_cache; if (cache.size() == 3) { Thread.sleep(1); } else { break; } } assertEquals("Item removed", 2, cache.size()); assertEquals(null, cache.get(1)); assertEquals(12345678, cache.get(0).longValue()); assertEquals(11223344, cache.get(2).longValue()); dut.shutdown(); zk.close(); }
public static void deleteRecursively(ZooKeeper zk, String dir) throws KeeperException, InterruptedException { List<String> children = zk.getChildren(dir, false); for (String child : children) { deleteRecursively(zk, joinZKPath(dir, child)); } zk.delete(dir, -1); }