List of usage examples for org.apache.zookeeper WatchedEvent getPath
public String getPath()
From source file:com.dangdang.config.service.easyzk.ConfigNodeEventListener.java
License:Apache License
@Override public void eventReceived(CuratorFramework client, CuratorEvent event) throws Exception { if (LOGGER.isDebugEnabled()) { LOGGER.debug(event.toString());/*from ww w. j a v a2 s.c o m*/ } final WatchedEvent watchedEvent = event.getWatchedEvent(); if (watchedEvent != null) { if (LOGGER.isDebugEnabled()) { LOGGER.debug(watchedEvent.toString()); } if (watchedEvent.getState() == KeeperState.SyncConnected) { boolean someChange = false; switch (watchedEvent.getType()) { case NodeChildrenChanged: configNode.loadNode(false); someChange = true; break; case NodeDataChanged: configNode.loadKey(watchedEvent.getPath()); someChange = true; break; default: break; } if (someChange && configNode.getConfigLocalCache() != null) { configNode.getConfigLocalCache().saveLocalCache(configNode, configNode.getNode()); } } } }
From source file:com.dangdang.config.service.zookeeper.ConfigNodeEventListener.java
License:Apache License
@Override public void eventReceived(CuratorFramework client, CuratorEvent event) throws Exception { if (LOGGER.isDebugEnabled()) { LOGGER.debug(event.toString());/*from w ww . ja v a 2 s . c om*/ } final WatchedEvent watchedEvent = event.getWatchedEvent(); if (watchedEvent != null) { LOGGER.debug("Watched event: {}" + watchedEvent); if (watchedEvent.getState() == KeeperState.SyncConnected) { boolean someChange = false; switch (watchedEvent.getType()) { case NodeChildrenChanged: configNode.loadNode(); someChange = true; break; case NodeDataChanged: configNode.reloadKey(watchedEvent.getPath()); someChange = true; break; default: break; } if (someChange && configNode.getConfigLocalCache() != null) { configNode.getConfigLocalCache().saveLocalCache(configNode, configNode.getNode()); } } } }
From source file:com.dangdang.config.service.zookeeper.ZookeeperConfigGroup.java
License:Apache License
/** * ?/*from w ww.j a va2s . c om*/ */ private void initConfigs() { client = CuratorFrameworkFactory.newClient(configProfile.getConnectStr(), configProfile.getRetryPolicy()); client.start(); client.getCuratorListenable().addListener(new CuratorListener() { @Override public void eventReceived(CuratorFramework client, CuratorEvent event) throws Exception { LOGGER.info("Event: {}", event); final WatchedEvent watchedEvent = event.getWatchedEvent(); if (watchedEvent != null) { LOGGER.debug("Watched event: {}", watchedEvent); if (watchedEvent.getState() == Watcher.Event.KeeperState.SyncConnected) { switch (watchedEvent.getType()) { case NodeChildrenChanged: loadNode(); break; case NodeDataChanged: reloadKey(watchedEvent.getPath()); break; default: break; } } } } }); final CountDownLatch countDownLatch = new CountDownLatch(1); client.getConnectionStateListenable().addListener(new ConnectionStateListener() { @Override public void stateChanged(CuratorFramework client, ConnectionState newState) { LOGGER.info("Connection state change: {}", newState); if (newState == ConnectionState.CONNECTED) { LOGGER.debug("Loading properties for node: {}", node); loadNode(); countDownLatch.countDown(); } else if (newState == ConnectionState.RECONNECTED) { loadNode(); } } }); try { countDownLatch.await(); } catch (InterruptedException e) { LOGGER.error(e.getMessage(), e); throw new RuntimeException("Config Load error.", e); } // Update local cache if (configLocalCache != null) { configLocalCache.saveLocalCache(this, node); } }
From source file:com.dinstone.zkclient.core.ZkConnection.java
License:Apache License
public synchronized ZooKeeper getZooKeeper() throws InterruptedException { if (this.zooKeeper == null || !zooKeeper.getState().isAlive()) { final CountDownLatch connectSingal = new CountDownLatch(1); try {/*from w w w . j a va2s. c o m*/ this.zooKeeper = new ZooKeeper(zkServers, timeout, new Watcher() { public void process(WatchedEvent event) { LOG.debug("Received zookeeper event, {}", event.toString()); if (event.getPath() == null) { if (KeeperState.SyncConnected == event.getState()) { connectSingal.countDown(); fireStateChangedEvent(event.getState()); } else if (KeeperState.Disconnected == event.getState()) { fireStateChangedEvent(event.getState()); } else if (KeeperState.Expired == event.getState()) { LOG.debug("Session is expired, need to clear process"); fireStateChangedEvent(event.getState()); } } } }); } catch (IOException e) { throw new ZkException("connect zookeeper error", e); } connectSingal.await(); } return this.zooKeeper; }
From source file:com.dinstone.zkclient.leader.ZookeeperTest.java
License:Apache License
/** * @return/*from w ww . j ava 2 s . c o m*/ */ private static ZooKeeper getZookeeper() { ZooKeeper zooKeeper = null; final CountDownLatch connectSingal = new CountDownLatch(1); try { String quorumServers = "172.21.31.32:2181"; zooKeeper = new ZooKeeper(quorumServers, 1000, new Watcher() { public void process(WatchedEvent event) { System.out.println("Received zookeeper event, type={" + event.getType() + "}, state={" + event.getState() + "}, ={" + event.getPath() + "}"); if (KeeperState.SyncConnected == event.getState()) { connectSingal.countDown(); } else if (KeeperState.Expired == event.getState()) { System.err.println("Session is expired, need to redo the action"); } } }); } catch (IOException e) { e.printStackTrace(); } try { connectSingal.await(); } catch (InterruptedException e) { e.printStackTrace(); } return zooKeeper; }
From source file:com.dinstone.zkclient.lock.ZkDistributedLock.java
License:Apache License
private void watch(Proposal prevOffer) throws KeeperException, InterruptedException { Stat stat = getZooKeeper().exists(prevOffer.getPath(), new Watcher() { public void process(WatchedEvent event) { if (event.getType().equals(Watcher.Event.EventType.NodeDeleted)) { if (!event.getPath().equals(ZkDistributedLock.this.proposal.getPath())) { eventQueue.add(EventType.Retry); }/*from w w w.j a v a2s. c om*/ } } }); if (stat == null) { doLock(); } }
From source file:com.discovery.darchrow.ZookeeperClientTest.java
License:Open Source License
public static void main(String[] args) throws Exception { // ?/*from w w w. ja va 2s .c o m*/ ZooKeeper zk = new ZooKeeper("localhost:2181", 30000, new Watcher() { // ? public void process(WatchedEvent event) { System.out.println("?:" + event.getState() + ":" + event.getType() + ":" + event.getWrapper() + ":" + event.getPath()); } }); // ktv??????? zk.create(ROOT, "root-ktv".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); // ??KTV , PERSISTENT_SEQUENTIAL 0000000000 ? zk.create(ROOT + "/?KTV", "?KTV".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL); // ?, EPHEMERAL session zk.create(ROOT + "/KTV", "KTV".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL); // ???EPHEMERAL_SEQUENTIAL session ? zk.create(ROOT + "/KTV-", "KTV-".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL); // ? ? ktv List<String> ktvs = zk.getChildren(ROOT, true); System.out.println(Arrays.toString(ktvs.toArray())); for (String node : ktvs) { // zk.delete(ROOT + "/" + node, -1); } // ? zk.delete(ROOT, -1); zk.close(); }
From source file:com.ebay.jetstream.messaging.transport.zookeeper.ZooKeeperTransport.java
License:MIT License
/** * Call back receiver method to process notifications on node changes. *//*from w ww . j a v a2s . com*/ public void process(WatchedEvent event) { LOGGER.info("Event State :: " + event.getState().name() + " Event Type:: " + event.getType() + " Event path :: " + event.getPath()); if (m_shutdown.get()) { LOGGER.warn("Transport is in Shutdown State."); return; } switch (event.getType()) { case NodeChildrenChanged: if (m_group != null) { boolean isDiscoveryTopic = false; for (String nettydiscoverable : m_NettyDiscoverableTopics) { if (event.getPath().contains(nettydiscoverable)) { isDiscoveryTopic = true; for (String nettyconextnode : m_nettyContexts) { if (event.getPath().contains(nettyconextnode)) { m_group.registerChildrenCallback(event.getPath()); m_group.getChildrenAndSetWatch(event.getPath()); break; } } } } if (!isDiscoveryTopic) { m_group.registerChildrenCallback(event.getPath()); m_group.getChildrenAndSetWatch(event.getPath()); } } break; case NodeCreated: if (m_group != null) { m_group.registerDataCallBack(event.getPath()); } break; case NodeDataChanged: if (m_group != null) { m_group.registerDataCallBack(event.getPath()); } break; case NodeDeleted: if (m_group != null) { int parentIndex = event.getPath().lastIndexOf('/'); String parentNode = event.getPath().substring(0, parentIndex); m_group.getChildrenAndSetWatch(parentNode); } break; case None: break; default: break; } }
From source file:com.ebay.jetstream.messaging.zookeeper.lp.Consumer.java
License:MIT License
@Override public void process(WatchedEvent event) { switch (event.getType()) { case NodeChildrenChanged: childrenChanged++;//from w ww .j ava 2 s.c o m setChildrenWatch(event.getPath()); break; case NodeCreated: nodecreated++; setChildrenWatch(event.getPath()); break; case NodeDataChanged: //System.out.println(" changed Node" + event.getPath()); datachanged++; getData(event.getPath()); setNodeWatch(event.getPath()); break; case NodeDeleted: break; case None: break; default: break; } }
From source file:com.edmunds.etm.agent.impl.RuleSetMonitor.java
License:Apache License
@Override public void process(WatchedEvent event) { String path = event.getPath(); if (path != null && path.equals(ruleSetNodePath)) { switch (event.getType()) { case NodeCreated: case NodeDataChanged: AsyncCallback.DataCallback cb = new AsyncCallback.DataCallback() { @Override/*from www . j av a 2 s .com*/ public void processResult(int rc, String path, Object ctx, byte[] data, Stat stat) { onGetRuleSetData(Code.get(rc), path, data); } }; connection.getData(ruleSetNodePath, this, cb, null); case None: case NodeDeleted: case NodeChildrenChanged: default: // Ignore other event types } } }