public void testHosts() throws Exception { ZkRing ring = ZkRing.create(getZk(), coordinator, ring_group_root, 1, null, 1); assertEquals(0, ring.getHosts().size()); Host host = ring.addHost(LOCALHOST); assertEquals(LOCALHOST, host.getAddress()); for (int i = 0; i < 20; i++) { if (!ring.getHosts().isEmpty()) { break; } Thread.sleep(100); } assertEquals(Collections.singleton(host), ring.getHosts()); assertEquals(LOCALHOST, ring.getHostByAddress(LOCALHOST).getAddress()); ring.close(); // assure that hosts reload well, too ring = new ZkRing(getZk(), ring_root, null, coordinator); assertEquals(1, ring.getHosts().size()); assertEquals(Collections.singleton(host), ring.getHosts()); assertEquals(LOCALHOST, ring.getHostByAddress(LOCALHOST).getAddress()); assertTrue(ring.removeHost(LOCALHOST)); assertNull(ring.getHostByAddress(LOCALHOST)); assertFalse(ring.removeHost(LOCALHOST)); ring.close(); }