Example usage for org.apache.zookeeper WatchedEvent getType

List of usage examples for org.apache.zookeeper WatchedEvent getType

Introduction

In this page you can find the example usage for org.apache.zookeeper WatchedEvent getType.

Prototype

public EventType getType() 

Source Link

Usage

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);
        }
    }
}