예제 #1
0
  @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();
  }
예제 #2
0
 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);
 }