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.continuuity.weave.internal.state.ZKServiceDecorator.java

License:Open Source License

private void watchMessages() {
    final String messagesPath = getZKPath("messages");
    Futures.addCallback(zkClient.getChildren(messagesPath, new Watcher() {
        @Override/*  w w w.  j  a  v  a 2 s .  co m*/
        public void process(WatchedEvent event) {
            // TODO: Do we need to deal with other type of events?
            if (event.getType() == Event.EventType.NodeChildrenChanged && decoratedService.isRunning()) {
                watchMessages();
            }
        }
    }), new FutureCallback<NodeChildren>() {
        @Override
        public void onSuccess(NodeChildren result) {
            // Sort by the name, which is the messageId. Assumption is that message ids is ordered by time.
            List<String> messages = Lists.newArrayList(result.getChildren());
            Collections.sort(messages);
            for (String messageId : messages) {
                processMessage(messagesPath + "/" + messageId, messageId);
            }
        }

        @Override
        public void onFailure(Throwable t) {
            // TODO: what could be done besides just logging?
            LOG.error("Failed to watch messages.", t);
        }
    });
}

From source file:com.continuuity.weave.internal.zookeeper.RewatchOnExpireWatcher.java

License:Open Source License

@Override
public void process(WatchedEvent event) {
    if (delegate != null && event.getType() != Event.EventType.None) {
        try {/*from  w  w  w.j  a v  a 2 s  .c  o m*/
            delegate.process(event);
        } catch (Throwable t) {
            LOG.error("Watcher throws exception.", t);
        }
    }

    if (event.getState() != Event.KeeperState.Expired) {
        return;
    }
    switch (actionType) {
    case EXISTS:
        exists();
        break;
    case CHILDREN:
        children();
        break;
    case DATA:
        data();
        break;
    }
}

From source file:com.continuuity.weave.zookeeper.ZKOperations.java

License:Open Source License

public static void watchDeleted(final ZKClient zkClient, final String path,
        final SettableFuture<String> completion) {

    Futures.addCallback(zkClient.exists(path, new Watcher() {
        @Override//from   w  w  w . jav  a 2s .  com
        public void process(WatchedEvent event) {
            if (!completion.isDone()) {
                if (event.getType() == Event.EventType.NodeDeleted) {
                    completion.set(path);
                } else {
                    watchDeleted(zkClient, path, completion);
                }
            }
        }
    }), new FutureCallback<Stat>() {
        @Override
        public void onSuccess(Stat result) {
            if (result == null) {
                completion.set(path);
            }
        }

        @Override
        public void onFailure(Throwable t) {
            completion.setException(t);
        }
    });
}

From source file:com.dang.crawler.conlony.zookeeper.election.LeaderElectionSupport.java

License:Apache License

@Override
public void process(WatchedEvent event) {
    if (event.getType().equals(Event.EventType.NodeDeleted)) {
        if (!event.getPath().equals(leaderOffer.getNodePath()) && state != State.STOP) {
            logger.debug("Node {} deleted. Need to run through the election process.", event.getPath());
            try {
                determineElectionStatus();
            } catch (KeeperException e) {
                becomeFailed(e);//from  w w  w .ja  va  2  s  . c  o  m
            } catch (InterruptedException e) {
                becomeFailed(e);
            }
        }
    }
}

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   w w w .  j  a v  a 2  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());/*  w  w w  . j a  va 2s . co m*/
    }

    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 av a2  s . 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.datis.zookafka.client.Creator.java

@Override
public void process(WatchedEvent e) {
    LOG.info("Processing event: " + e.toString());
    if (e.getType() == Event.EventType.None) {
        switch (e.getState()) {
        case SyncConnected:
            System.out.println("Event SynConnected");
            connected = true;/*from  w w  w  .ja  v  a2  s . c  o m*/
            break;
        case Disconnected:
            System.out.println("Event Disconnected");
            connected = false;
            break;
        case Expired:
            System.out.println("Event Expired");
            expired = true;
            connected = false;
            LOG.error("Session expiration");
        default:
            break;
        }
    }
}

From source file:com.demo.master_work.Client.java

License:Apache License

public void process(WatchedEvent e) {
    System.out.println(e);//  w  ww.  ja v  a2  s.  c o  m
    if (e.getType() == Event.EventType.None) {
        switch (e.getState()) {
        case SyncConnected:
            connected = true;
            break;
        case Disconnected:
            connected = false;
            break;
        case Expired:
            expired = true;
            connected = false;
            System.out.println("Exiting due to session expiration");
        default:
            break;
        }
    }
}

From source file:com.dianping.lion.client.zookeeper.SessionRecoverableZookeeper.java

License:Open Source License

@Override
public void process(WatchedEvent event) {
    if (event.getType() == Event.EventType.None && event.getState() == KeeperState.Expired) {
        try {/*from   w  w  w .j  a va  2  s .co m*/
            reconnectToZookeeper(this.zookeeper);
        } catch (Exception e) {
            logger.warn("Reconnect to zookeeper cluster failed while session expired.", e);
        }
    }
    if (this.watcher != null) {
        this.watcher.process(event);
    }
}