List of usage examples for org.apache.zookeeper WatchedEvent getType
public EventType getType()
From source file:org.apache.hama.bsp.sync.ZKSyncBSPMasterClient.java
License:Apache License
@Override public void process(WatchedEvent arg0) { LOG.debug("Processing event " + arg0.getPath()); LOG.debug("Processing event type " + arg0.getType().toString()); }
From source file:org.apache.hama.bsp.sync.ZKSyncEventListener.java
License:Apache License
/** * /*from ww w . j a v a 2 s . com*/ */ @Override public void process(WatchedEvent event) { client.registerListener(event.getPath(), ZKSyncEventFactory.getValueChangeEvent(), this); // if(LOG.isDebugEnabled()){ LOG.debug(event.toString()); // } if (event.getType().equals(EventType.NodeChildrenChanged)) { LOG.debug("Node children changed - " + event.getPath()); onChildKeySetChange(); } else if (event.getType().equals(EventType.NodeDeleted)) { LOG.debug("Node children deleted - " + event.getPath()); onDelete(); } else if (event.getType().equals(EventType.NodeDataChanged)) { LOG.debug("Node children changed - " + event.getPath()); onChange(); } }
From source file:org.apache.helix.manager.zk.zookeeper.ZkClient.java
License:Apache License
@Override public void process(WatchedEvent event) { LOG.debug("Received event: " + event); _zookeeperEventThread = Thread.currentThread(); boolean stateChanged = event.getPath() == null; boolean znodeChanged = event.getPath() != null; boolean dataChanged = event.getType() == Event.EventType.NodeDataChanged || event.getType() == Event.EventType.NodeDeleted || event.getType() == Event.EventType.NodeCreated || event.getType() == Event.EventType.NodeChildrenChanged; getEventLock().lock();//from ww w . j a v a 2 s .c om try { // We might have to install child change event listener if a new node was created if (getShutdownTrigger()) { LOG.debug("ignoring event '{" + event.getType() + " | " + event.getPath() + "}' since shutdown triggered"); return; } if (stateChanged) { processStateChanged(event); } if (dataChanged) { processDataOrChildChange(event); } } finally { if (stateChanged) { getEventLock().getStateChangedCondition().signalAll(); // If the session expired we have to signal all conditions, because watches might have been removed and // there is no guarantee that those // conditions will be signaled at all after an Expired event // TODO PVo write a test for this if (event.getState() == KeeperState.Expired) { getEventLock().getZNodeEventCondition().signalAll(); getEventLock().getDataChangedCondition().signalAll(); // We also have to notify all listeners that something might have changed fireAllEvents(); } } if (znodeChanged) { getEventLock().getZNodeEventCondition().signalAll(); } if (dataChanged) { getEventLock().getDataChangedCondition().signalAll(); } getEventLock().unlock(); // update state change counter. recordStateChange(stateChanged, dataChanged); LOG.debug("Leaving process event"); } }
From source file:org.apache.hms.controller.CommandHandler.java
License:Apache License
@Override public void process(WatchedEvent event) { String path = event.getPath(); LOG.info("Triggered path: " + path); if (event.getType() == Event.EventType.NodeChildrenChanged) { if (path.equals(CommonConfigurationKeys.ZOOKEEPER_LIVE_CONTROLLER_PATH_DEFAULT)) { zk.getChildren(CommonConfigurationKeys.ZOOKEEPER_COMMAND_QUEUE_PATH_DEFAULT, this, this, null); } else {//from ww w. j a v a 2 s . c o m zk.getChildren(path, this, this, null); } } else if (event.getType() == Event.EventType.NodeDataChanged) { tasks.add(path); } }
From source file:org.apache.hms.controller.Controller.java
License:Apache License
public void process(WatchedEvent event) { if (event.getType() == Event.EventType.None) { // We are are being told that the state of the // connection has changed switch (event.getState()) { case SyncConnected: // In this particular example we don't need to do anything // here - watches are automatically re-registered with // server and any watches triggered while the client was // disconnected will be delivered (in order of course) break; case Expired: // It's all over running = false;//ww w . j a v a 2 s . c om commandHandler.stop(); break; } } }
From source file:org.apache.niolex.zookeeper.watcher.CommonRecoverableWatcher.java
License:Apache License
/** * This is the override of super method. * @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent) *///from ww w . java 2s . c om @Override public void process(WatchedEvent event) { if (type == Type.CHILDREN && event.getType() == Watcher.Event.EventType.NodeChildrenChanged) { childrenCHanged(); } else if (type == Type.DATA && event.getType() == Watcher.Event.EventType.NodeDataChanged) { dataChanged(); } }
From source file:org.apache.s4.benchmark.utils.Utils.java
License:Apache License
public static void watchAndSignalChildrenReachedCount(final String path, final CountDownLatch latch, final ZooKeeper zk, final int count) throws KeeperException, InterruptedException { List<String> children = zk.getChildren(path, new Watcher() { @Override/*from w w w . ja va 2s . c o m*/ public void process(WatchedEvent event) { if (EventType.NodeChildrenChanged.equals(event.getType())) { try { if (count == zk.getChildren(path, false).size()) { latch.countDown(); } } catch (KeeperException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } latch.countDown(); } } }); if (children.size() == count) { latch.countDown(); } }
From source file:org.apache.s4.fixtures.CommTestUtils.java
License:Apache License
public static void watchAndSignalCreation(String path, final CountDownLatch latch, final ZooKeeper zk, boolean deleteIfExists) throws KeeperException, InterruptedException { if (zk.exists(path, false) != null) { if (deleteIfExists) { zk.delete(path, -1);//from w ww.jav a2s . c o m } else { latch.countDown(); } } zk.exists(path, new Watcher() { @Override public void process(WatchedEvent event) { if (EventType.NodeCreated.equals(event.getType())) { latch.countDown(); } } }); }
From source file:org.apache.s4.fixtures.CommTestUtils.java
License:Apache License
public static void watchAndSignalChangedChildren(String path, final CountDownLatch latch, final ZooKeeper zk) throws KeeperException, InterruptedException { zk.getChildren(path, new Watcher() { @Override/* ww w . j a va2 s.c om*/ public void process(WatchedEvent event) { if (EventType.NodeChildrenChanged.equals(event.getType())) { latch.countDown(); } } }); }
From source file:org.apache.solr.cloud.LeaderElector.java
License:Apache License
/** * Check if the candidate with the given n_* sequence number is the leader. * If it is, set the leaderId on the leader zk node. If it is not, start * watching the candidate that is in line before this one - if it goes down, check * if this candidate is the leader again. * * @param replacement has someone else been the leader already? *///w ww . j a v a 2 s. c o m private void checkIfIamLeader(final int seq, final ElectionContext context, boolean replacement) throws KeeperException, InterruptedException, IOException { // get all other numbers... final String holdElectionPath = context.electionPath + ELECTION_NODE; List<String> seqs = zkClient.getChildren(holdElectionPath, null, true); sortSeqs(seqs); List<Integer> intSeqs = getSeqs(seqs); if (intSeqs.size() == 0) { log.warn("Our node is no longer in line to be leader"); return; } if (seq <= intSeqs.get(0)) { // first we delete the node advertising the old leader in case the ephem is still there try { zkClient.delete(context.leaderPath, -1, true); } catch (Exception e) { // fine } runIamLeaderProcess(context, replacement); } else { // I am not the leader - watch the node below me int i = 1; for (; i < intSeqs.size(); i++) { int s = intSeqs.get(i); if (seq < s) { // we found who we come before - watch the guy in front break; } } int index = i - 2; if (index < 0) { log.warn("Our node is no longer in line to be leader"); return; } try { zkClient.getData(holdElectionPath + "/" + seqs.get(index), new Watcher() { @Override public void process(WatchedEvent event) { // session events are not change events, // and do not remove the watcher if (EventType.None.equals(event.getType())) { return; } // am I the next leader? try { checkIfIamLeader(seq, context, true); } catch (InterruptedException e) { // Restore the interrupted status Thread.currentThread().interrupt(); log.warn("", e); } catch (IOException e) { log.warn("", e); } catch (Exception e) { log.warn("", e); } } }, null, true); } catch (KeeperException.SessionExpiredException e) { throw e; } catch (KeeperException e) { log.warn("Failed setting watch", e); // we couldn't set our watch - the node before us may already be down? // we need to check if we are the leader again checkIfIamLeader(seq, context, true); } } }