Example usage for org.apache.zookeeper WatchedEvent getPath

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

Introduction

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

Prototype

public String getPath() 

Source Link

Usage

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