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:com.alibaba.otter.shared.common.utils.zookeeper.ZkClientx.java

License:Apache License

private void processDataOrChildChange(WatchedEvent event) {
    final String path = event.getPath();

    if (event.getType() == EventType.NodeChildrenChanged || event.getType() == EventType.NodeCreated
            || event.getType() == EventType.NodeDeleted) {
        Set<IZkChildListener> childListeners = _childListener.get(path);
        if (childListeners != null && !childListeners.isEmpty()) {
            fireChildChangedEvents(path, childListeners);
        }//from w  ww .  j  a v  a 2  s  .co m
    }

    if (event.getType() == EventType.NodeDataChanged || event.getType() == EventType.NodeDeleted
            || event.getType() == EventType.NodeCreated) {
        Set<IZkDataListener> listeners = _dataListener.get(path);
        if (listeners != null && !listeners.isEmpty()) {
            fireDataChangedEvents(event.getPath(), listeners);
        }
    }
}

From source file:com.alibaba.wasp.zookeeper.ZooKeeperWatcher.java

License:Apache License

/**
 * Method called from ZooKeeper for events and connection status.
 * <p>//w w w.j  a v a  2 s  .co m
 * Valid events are passed along to listeners. Connection status changes are
 * dealt with locally.
 */
@Override
public void process(WatchedEvent event) {
    LOG.debug(prefix("Received ZooKeeper Event, " + "type=" + event.getType() + ", " + "state="
            + event.getState() + ", " + "path=" + event.getPath()));

    switch (event.getType()) {

    // If event type is NONE, this is a connection status change
    case None: {
        connectionEvent(event);
        break;
    }

    // Otherwise pass along to the listeners

    case NodeCreated: {
        for (ZooKeeperListener listener : listeners) {
            listener.nodeCreated(event.getPath());
        }
        break;
    }

    case NodeDeleted: {
        for (ZooKeeperListener listener : listeners) {
            listener.nodeDeleted(event.getPath());
        }
        break;
    }

    case NodeDataChanged: {
        for (ZooKeeperListener listener : listeners) {
            listener.nodeDataChanged(event.getPath());
        }
        break;
    }

    case NodeChildrenChanged: {
        for (ZooKeeperListener listener : listeners) {
            listener.nodeChildrenChanged(event.getPath());
        }
        break;
    }
    }
}

From source file:com.amazonaws.services.kinesis.stormspout.state.zookeeper.ZookeeperStateManager.java

License:Open Source License

@Override
public synchronized void process(WatchedEvent event) {
    checkState(active, "Cannot process events if state is not active (a ZK" + " connection is necessary).");

    // Re-hook the watcher.
    // Ordering the statements this way will ensure that no ZK shardList update is missed.
    // Since bootstrapStateFromZookeeper does its own getShardList(null) call, and the
    // call is after the re-hook, then any modification made in between the time the process()
    // function is called and the re-hook is made is captured by bootstrapStateFromZookeeper.
    // Note that this could end up in multiple calls being made for the same shardList update.
    try {/* w w  w.ja v a  2 s . c  om*/
        zk.watchShardList(this);
    } catch (Exception e) {
        // Failure is fatal for the task (and it's been retried, so it's indicative of a
        // bigger Zookeeper/global state issue).
        LOG.error(this + " failure to re-attach event handler for ZK node " + event.getPath(), e);
        throw new KinesisSpoutException(e);
    }

    // If we are handling a shardList modification, then most probably another task handled
    // a reshard, and we need to sync with the state in ZK.
    if (event.getType() == EventType.NodeDataChanged && zk.isShardList(event.getPath())) {
        LOG.info(this + " detected change in shardList. Committing current shard state and "
                + "reinitializing spout task from ZK.");

        commitShardStates();
        bootstrapStateFromZookeeper();
    }
}

From source file:com.andyadc.menagerie.ZkSessionPoller.java

License:Apache License

public static void main(String... args) throws Exception {
    Logger rootLogger = Logger.getRootLogger();
    rootLogger.setLevel(Level.INFO);
    rootLogger.addAppender(new ConsoleAppender(new SimpleLayout()));

    final ZooKeeper zk = new ZooKeeper("172.16.84.129:2181", 2000, new Watcher() {
        @Override//from  w w w .j a v a2 s. c o m
        public void process(WatchedEvent event) {
            System.out.printf("state=%s\ttype=%s%n", event.getState(), event.getType());
        }
    });

    final CountDownLatch latch = new CountDownLatch(1);

    ZkSessionPoller poller = new ZkSessionPoller(zk, 200, new ConnectionListenerSkeleton() {

        @Override
        public void expired() {
            System.err.println("Session Expired, shutting down.");
            try {
                zk.close();
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            latch.countDown();
        }
    });

    poller.startPolling();
    latch.await();
    poller.stopPolling();
}

From source file:com.anteam.demo.zookeeper.DataMonitor.java

License:Apache License

@SuppressWarnings("deprecation")
public void process(WatchedEvent event) {
    System.out.println("----------------------------------------");
    System.out.println("event:" + event);
    String path = event.getPath();
    System.out.println("DataMonitor.process.path:" + path);
    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
            dead = true;//from   w ww.j ava 2s  .  com
            listener.closing(KeeperException.Code.SessionExpired);
            break;
        default:
            break;
        }
    } else {
        if (path != null && path.equals(znode)) {
            // Something has changed on the node, let's find out
            zk.exists(znode, true, this, null);
        }
    }
    if (chainedWatcher != null) {
        chainedWatcher.process(event);
    }
}

From source file:com.api6.zkclient.watcher.ZKWatcher.java

License:Apache License

/**
 * ?/*from ww w  .  ja  v a 2s  .co  m*/
 * @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent)
 */
@Override
public void process(WatchedEvent event) {
    LOG.debug("ZooKeeper event is arrived [" + event + " ]...");
    EventType eventType = event.getType();
    //?
    boolean stateChanged = event.getPath() == null;
    //
    boolean znodeChanged = event.getPath() != null;

    //???
    boolean nodeChanged = eventType == EventType.NodeDataChanged || eventType == EventType.NodeDeleted
            || eventType == EventType.NodeCreated;

    //???????????
    boolean childChanged = eventType == EventType.NodeDeleted || eventType == EventType.NodeCreated
            || eventType == EventType.NodeChildrenChanged;

    client.acquireEventLock();
    try {
        if (client.getShutdownTrigger()) {
            LOG.debug("client will shutdown,ignore the event [" + eventType + " | " + event.getPath() + "]");
            return;
        }
        if (stateChanged) {//ZooKeeper???
            process.processStateChanged(event);
        }
        if (nodeChanged) {//??????
            process.processNodeChanged(event);
        }
        if (childChanged) {//??????????
            process.processChildChanged(event);
        }
    } finally {
        if (stateChanged) {
            client.getEventLock().getStateChangedCondition().signalAll();
            // ????watch.
            // ????????
            // ????
            if (event.getState() == KeeperState.Expired) {
                client.getEventLock().getNodeEventCondition().signalAll();
                client.getEventLock().getNodeOrChildChangedCondition().signalAll();

                // ????
                process.processAllNodeAndChildListeners(event);
            }
        }
        if (znodeChanged) {
            client.getEventLock().getNodeEventCondition().signalAll();
        }
        if (nodeChanged || childChanged) {
            client.getEventLock().getNodeOrChildChangedCondition().signalAll();
        }
        client.releaseEventLock();
    }
}

From source file:com.api6.zkclient.watcher.ZKWatcherProcess.java

License:Apache License

/**
 * ???/*w w w . ja  va  2 s .  co  m*/
 * @param event 
 * @return void
 */
public void processChildChanged(final WatchedEvent event) {
    final String path = event.getPath();
    final Set<ZKListener> listeners = client.getChildListenerMap().get(path);
    //????
    submitChildEvent(listeners, path, event.getType());
}

From source file:com.api6.zkclient.watcher.ZKWatcherProcess.java

License:Apache License

/**
 * ???/*ww  w  . j  a v a  2  s.co  m*/
 * @param event 
 * @return void
 */
public void processNodeChanged(final WatchedEvent event) {
    final String path = event.getPath();
    final EventType eventType = event.getType();
    final Set<ZKListener> listeners = client.getNodeListenerMap().get(path);
    if (listeners == null || listeners.isEmpty()) {
        return;
    }

    //listenersZKChildDataListener?
    //??????
    //????ZKChildDataListener
    final Set<ZKListener> childDataChangeListners = new CopyOnWriteArraySet<>();
    final Set<ZKListener> nodeListners = new CopyOnWriteArraySet<>();

    classifyListeners(listeners, nodeListners, childDataChangeListners);

    //????
    submitNodeEvent(nodeListners, childDataChangeListners, path, eventType);

    //????
    if (eventType == EventType.NodeDataChanged) {
        //????
        submitChildDataEvent(childDataChangeListners, path, eventType);
    }
}

From source file:com.api6.zkclient.watcher.ZKWatcherProcess.java

License:Apache License

/**
 * ????/*w w w. j a v  a 2 s  .c o m*/
 * ????watch
 * ????????
 * ??????????
 * @param eventType 
 * @return void
 * @author: zhaojie/zh_jie@163.com 
 */
public void processAllNodeAndChildListeners(final WatchedEvent event) {
    LOG.debug("processAllNodeAndChildListeners....");
    //???
    for (Entry<String, CopyOnWriteArraySet<ZKListener>> entry : client.getNodeListenerMap().entrySet()) {
        Set<ZKListener> nodeListners = new CopyOnWriteArraySet<ZKListener>();
        Set<ZKListener> childDataChangeListners = new CopyOnWriteArraySet<ZKListener>();
        Set<ZKListener> listeners = entry.getValue();

        classifyListeners(listeners, nodeListners, childDataChangeListners);
        //????
        submitNodeEvent(nodeListners, childDataChangeListners, entry.getKey(), event.getType());
    }
    //???
    for (Entry<String, CopyOnWriteArraySet<ZKListener>> entry : client.getChildListenerMap().entrySet()) {
        //????
        submitChildEvent(entry.getValue(), entry.getKey(), event.getType());
    }
}

From source file:com.att.nsa.zkUtils.ZkWatcher.java

License:Open Source License

public static Watcher getLoggingWatcher(final String title, final Logger log) {
    return new Watcher() {
        @Override//from w  ww  .  j a va 2 s.c om
        public void process(WatchedEvent event) {
            log.info("ZK watch for " + title + ": " + event.getType() + " @ " + event.getPath());
        }
    };
}