Example usage for org.apache.zookeeper WatchedEvent getState

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

Introduction

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

Prototype

public KeeperState getState() 

Source Link

Usage

From source file:com.github.mosuka.zookeeper.nicli.util.ZooKeeperConnection.java

License:Apache License

public void connect(String server, int timeout) throws IOException, InterruptedException {
    zookeeper = new ZooKeeper(server, timeout, new Watcher() {
        public void process(WatchedEvent event) {
            if (event.getState() == KeeperState.SyncConnected) {
                connSignal.countDown();/*w  ww  .j av  a 2  s.c  o  m*/
            }
        }
    });
    connSignal.await();
}

From source file:com.github.zkclient.ZkClient.java

License:Apache License

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() == EventType.NodeDataChanged || //
            event.getType() == EventType.NodeDeleted || event.getType() == EventType.NodeCreated || //
            event.getType() == EventType.NodeChildrenChanged;

    getEventLock().lock();//from   w  ww  .  ja 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
            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();
        LOG.debug("Leaving process event");
    }
}

From source file:com.glaf.cluster.catalina.session.ConnectionWatcher.java

License:Apache License

public void process(WatchedEvent event) {
    KeeperState state = event.getState();
    if (state == KeeperState.SyncConnected) {
        signal.countDown();//from  w  w  w.  j a  v  a2 s  .c o  m
    }
}

From source file:com.glaf.cluster.catalina.session.ZooKeeperClientImpl.java

License:Apache License

protected void doStart() {
    try {//from   www .  ja va 2s .co  m
        final Watcher watcher = new Watcher() {
            @Override
            public void process(WatchedEvent event) {
                switch (event.getState()) {
                case Expired:
                    resetSession();
                    break;
                case SyncConnected:
                    notifySessionConnected();
                    break;
                case Disconnected:
                    notifySessionDisconnected();
                    break;
                default:
                    break;
                }
            }
        };
        zooKeeper = zooKeeperFactory.newZooKeeper(watcher);
        createPersistentNode(GROUP_NAME);
    } catch (InterruptedException e) {
        throw new RuntimeException("Cannot start ZooKeeper client", e);
    }
}

From source file:com.glaf.core.test.zookeeper.CreateGroup.java

License:Apache License

@Override
public void process(WatchedEvent event) { // Watcher interface
    if (event.getState() == KeeperState.SyncConnected) {
        connectedSignal.countDown();/*from   ww w.j av a  2  s . c  o  m*/
    }
}

From source file:com.griddynamics.jagger.coordinator.zookeeper.ZookeeperCoordinator.java

License:Open Source License

@Override
public void registerNode(NodeContext nodeContext, Set<Worker> workers, final StatusChangeListener listener)
        throws CoordinatorException {
    log.info("Going to register node {} with {} workers", nodeContext.getId(), workers.size());

    ZNode typeNode = rootNode.child(CoordinationUtil.nodeNameOf(nodeContext.getId().getType()));
    ZNode node = typeNode.createChild(znode().withPath(nodeContext.getId().getIdentifier()));

    Set<CommandExecutor<?, ?>> executors = Sets.newHashSet();
    Set<Qualifier<?>> qualifiers = Sets.newHashSet();

    for (Worker worker : workers) {
        for (CommandExecutor<?, ?> executor : worker.getExecutors()) {
            Qualifier<?> qualifier = executor.getQualifier();
            if (qualifiers.contains(qualifier)) {
                throw new CoordinatorException(
                        "Executor for qualifier " + qualifier + " is already registered");
            }/*from  www.j  av a2 s .  c om*/

            executors.add(executor);
        }
    }

    for (CommandExecutor<?, ?> executor : executors) {
        registerExecutor(nodeContext, executor, node);
    }

    rootNode.addNodeWatcher(new Watcher() {
        @Override
        public void process(WatchedEvent event) {
            if (event.getState() == Event.KeeperState.Disconnected) {
                listener.onCoordinatorDisconnected();
            }

            if (event.getState() == Event.KeeperState.SyncConnected) {
                listener.onCoordinatorConnected();
            }
        }
    });

    ZNode statuses = rootNode.child(CoordinationUtil.STATUSES_NODE_NAME);

    statuses.createChild(znode().ephemeralSequential().withDataObject(nodeContext.getId()));

    Lock lock = new ReentrantLock();

    lock.lock();
    try {
        Collection<NodeId> nodeIds = Sets.newHashSet();
        StatusWatcher statusWatcher = new StatusWatcher(statuses, lock, nodeIds, listener);
        List<ZNode> nodes = statuses.children(statusWatcher);
        for (ZNode zNode : nodes) {
            nodeIds.add(zNode.getObject(NodeId.class));
        }
    } finally {
        lock.unlock();
    }

    node.createChild(znode().withPath(CoordinationUtil.AVAILABLE_NODE_NAME));
}

From source file:com.griddynamics.jagger.coordinator.zookeeper.ZooKeeperFactory.java

License:Open Source License

public IZookeeper create() {
    final CountDownLatch connectedSignal = new CountDownLatch(1);
    IZookeeper zooKeeper = null;//from  www. j  a v a 2s  . c o m

    try {
        zooKeeper = new DefaultZookeeper(connectString, sessionTimeout, new Watcher() {
            @Override
            public void process(WatchedEvent event) {
                if (event.getState() == Event.KeeperState.SyncConnected) {
                    connectedSignal.countDown();
                }
            }
        }, reconnectPeriod);

        connectedSignal.await();

    } catch (Exception e) {
        throw new ZooException(e);
    }

    return zooKeeper;
}

From source file:com.guang.eunormia.common.dislock.ZKClient.java

License:Open Source License

@Override
synchronized public void process(WatchedEvent event) {
    Event.KeeperState state = event.getState();
    if (state == Event.KeeperState.SyncConnected) {
        connectedSignal.countDown();/*from   ww w .  jav  a 2 s.  c  o  m*/
    } else if (state == Event.KeeperState.Expired) {
        logger.warn("- the connect to ZooKeeper session expired ...");
        connect();
    } else if (state == Event.KeeperState.Disconnected) {
        logger.warn("- the zookeeper state is disconnected and it will connect later ...");
    } else {
        logger.warn("- the zookeeper state is " + state);
    }
}

From source file:com.gxl.shark.resources.conn.ZookeeperConnectionManager.java

License:Apache License

/**
 * zookeeper/*from w w w .  ja v a2s.co  m*/
 * 
 * @author JohnGao
 */
private void connection() {
    try {
        zk_client = new ZooKeeper(zk_address, zk_session_timeout, new Watcher() {
            @Override
            public void process(WatchedEvent event) {
                final KeeperState STATE = event.getState();
                final String VALUE = "zookeeper?[" + zk_address + "]";
                switch (STATE) {
                case SyncConnected:
                    countDownLatch.countDown();
                    logger.info(VALUE + "?");
                    break;
                case Disconnected:
                    logger.warn(VALUE + "?");
                    break;
                case Expired:
                    logger.error(VALUE + "??");
                    break;
                case AuthFailed:
                    logger.error(VALUE + "?ACL?");
                default:
                    break;
                }
            }
        });
        countDownLatch.await();
        /* ?? */
        registerNode.register(zk_client, nodePath);
    } catch (IOException e) {
        throw new ResourceException("zookeeper?[" + e.toString() + "]");
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

From source file:com.gxl.test.shark.resource.zkSetData.java

License:Apache License

public @Test void testSetData() {
    try (BufferedReader reader = new BufferedReader(new FileReader("c:/shark-datasource.xml"))) {
        StringBuffer str = new StringBuffer();
        String value = "";
        while (null != (value = reader.readLine()))
            str.append(value);/* w w  w .  java2s  .  c om*/
        final CountDownLatch countDownLatch = new CountDownLatch(1);
        ZooKeeper zk_client = new ZooKeeper(
                "120.25.58.116:2181,120.25.58.116:2182,120.25.58.116:2183,120.25.58.116:2184", 30000,
                new Watcher() {
                    @Override
                    public void process(WatchedEvent event) {
                        final KeeperState STATE = event.getState();
                        switch (STATE) {
                        case SyncConnected:
                            countDownLatch.countDown();
                            logger.info("?zookeeper?");
                            break;
                        case Disconnected:
                            logger.warn("zookeeper?");
                            break;
                        case Expired:
                            logger.error("session?...");
                            break;
                        case AuthFailed:
                            logger.error("ACL?...");
                        default:
                            break;
                        }
                    }
                });
        countDownLatch.await();
        zk_client.setData("/info/datasource", str.toString().getBytes(), -1);
        logger.info("insert success");
    } catch (Exception e) {
        logger.error("insert fail", e);
    }
}