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.bookkeeper.zookeeper.BkZooKeeperClient.java

License:Apache License

@Override
public void process(WatchedEvent event) {
    if (event.getType() == EventType.None && event.getState() == KeeperState.Expired) {
        onExpired();/*w ww. j  ava2  s  .  c om*/
    }
}

From source file:org.apache.bookkeeper.zookeeper.TestZooKeeperClient.java

License:Apache License

@Test(timeout = 12000)
public void testReconnectAfterExipred() throws Exception {
    final CountDownLatch expireLatch = new CountDownLatch(1);
    Watcher testWatcher = new Watcher() {

        @Override//from   ww  w .j  a  va  2 s. c om
        public void process(WatchedEvent event) {
            if (event.getType() == EventType.None && event.getState() == KeeperState.Expired) {
                expireLatch.countDown();
            }
        }

    };
    final int timeout = 2000;
    ZooKeeperWatcherBase watcherManager = new ZooKeeperWatcherBase(timeout).addChildWatcher(testWatcher);
    List<Watcher> watchers = new ArrayList<Watcher>(1);
    watchers.add(testWatcher);
    ZooKeeperClient client = new ShutdownZkServerClient(zkUtil.getZooKeeperConnectString(), timeout,
            watcherManager, new BoundExponentialBackoffRetryPolicy(timeout, timeout, 0));
    client.waitForConnection();
    Assert.assertTrue("Client failed to connect an alive ZooKeeper.", client.getState().isConnected());
    logger.info("Expire zookeeper client");
    expireZooKeeperSession(client, timeout);

    // wait until session expire
    Assert.assertTrue("Client registered watcher should receive expire event.",
            expireLatch.await(2 * timeout, TimeUnit.MILLISECONDS));

    Assert.assertFalse("Client doesn't receive expire event from ZooKeeper.", client.getState().isConnected());

    try {
        client.exists("/tmp", false);
        Assert.fail("Should fail due to connection loss.");
    } catch (KeeperException.ConnectionLossException cle) {
        // expected
    } catch (KeeperException.SessionExpiredException cle) {
        // expected
    }

    zkUtil.restartServer();

    // wait for a reconnect cycle
    Thread.sleep(2 * timeout);
    Assert.assertTrue("Client failed to connect zookeeper even it was back.", client.getState().isConnected());
    try {
        client.exists("/tmp", false);
    } catch (KeeperException.ConnectionLossException cle) {
        Assert.fail("Should not throw ConnectionLossException");
    } catch (KeeperException.SessionExpiredException cle) {
        Assert.fail("Should not throw SessionExpiredException");
    }
}

From source file:org.apache.bookkeeper.zookeeper.ZooKeeperWatcherBase.java

License:Apache License

@Override
public void process(WatchedEvent event) {
    // If event type is NONE, this is a connection status change
    if (event.getType() != EventType.None) {
        LOG.debug("Received event: {}, path: {} from ZooKeeper server", event.getType(), event.getPath());
        getEventCounter(event.getType()).inc();
        // notify the child watchers
        notifyEvent(event);/*w  w w .  ja v  a  2s .com*/
        return;
    }
    getStateCounter(event.getState()).inc();
    LOG.debug("Received {} from ZooKeeper server", event.getState());
    // TODO: Needs to handle AuthFailed, SaslAuthenticated events
    switch (event.getState()) {
    case SyncConnected:
        LOG.info("ZooKeeper client is connected now.");
        clientConnectLatch.countDown();
        break;
    case Disconnected:
        LOG.info(
                "ZooKeeper client is disconnected from zookeeper now, but it is OK unless we received EXPIRED event.");
        break;
    case Expired:
        clientConnectLatch = new CountDownLatch(1);
        LOG.error("ZooKeeper client connection to the ZooKeeper server has expired!");
        break;
    default:
        // do nothing
        break;
    }
    // notify the child watchers
    notifyEvent(event);
}

From source file:org.apache.camel.component.zookeeper.operations.FutureEventDrivenOperation.java

License:Apache License

public void process(WatchedEvent event) {
    this.event = event;
    EventType received = event.getType();
    if (LOG.isDebugEnabled()) {
        LOG.debug(format("Recieved event of type %s for node '%s'", received, event.getPath()));
    }//ww w.  j a  v a2  s  .c om

    for (EventType watched : awaitedTypes) {
        if (watched.equals(received)) {
            result = getResult();
            waitForAnyWatchedType.countDown();
        }
    }

    if (LOG.isTraceEnabled() && waitForAnyWatchedType.getCount() > 0) {

        StringBuilder b = new StringBuilder();
        for (EventType type : awaitedTypes) {
            b.append(type).append(", ");
        }
        if (b.length() > 0) {
            b.setLength(b.length() - 2);
        }
        LOG.trace(String.format("Recieved event of type %s did not match any watched types %s", received,
                awaitedTypes));
    }
}

From source file:org.apache.camel.component.zookeeper.ZooKeeperMessage.java

License:Apache License

public ZooKeeperMessage(String node, Stat statistics, Map<String, Object> headers, WatchedEvent watchedEvent) {
    setHeaders(headers);/*from  w  w w  .  j  a  v  a  2s.  c  om*/
    this.setHeader(ZOOKEEPER_NODE, node);
    this.setHeader(ZOOKEEPER_STATISTICS, statistics);
    if (watchedEvent != null) {
        this.setHeader(ZOOKEEPER_EVENT_TYPE, watchedEvent.getType());
    }
}

From source file:org.apache.cassandra.mutex.ClusterMutex.java

License:Apache License

/**
 * process any events from ZooKeeper. We simply wake up any clients that are waiting for
 * file deletion. Number of clients is usually very small (most likely just one), so no need
 * for any complex logic.//from  w ww. j a  va 2s.  c o  m
 */
public void process(WatchedEvent event) {
    if (logger.isTraceEnabled())
        logger.trace("Got event " + event.getType() + ", keeper state " + event.getState() + ", path "
                + event.getPath());

    synchronized (mutex) {
        mutex.notifyAll();
    }
}

From source file:org.apache.curator.ConnectionState.java

License:Apache License

@Override
public void process(WatchedEvent event) {
    if (LOG_EVENTS) {
        log.debug("ConnectState watcher: " + event);
    }/*  w  ww .  jav a 2  s .  c  o  m*/

    final boolean eventTypeNone = event.getType() == Watcher.Event.EventType.None;

    if (eventTypeNone) {
        boolean wasConnected = isConnected.get();
        boolean newIsConnected = checkState(event.getState(), wasConnected);
        if (newIsConnected != wasConnected) {
            isConnected.set(newIsConnected);
            connectionStartMs = System.currentTimeMillis();
        }
    }

    // only wait during tests
    if (debugWaitOnExpiredEvent && event.getState() == Event.KeeperState.Expired) {
        waitOnExpiredEvent();
    }

    for (Watcher parentWatcher : parentWatchers) {
        OperationTrace trace = new OperationTrace("connection-state-parent-process", tracer.get(),
                getSessionId());
        parentWatcher.process(event);
        trace.commit();
    }

    if (eventTypeNone)
        handleState(event.getState());
}

From source file:org.apache.curator.framework.imps.EnsembleTracker.java

License:Apache License

@Override
public void process(WatchedEvent event) throws Exception {
    if (event.getType() == Watcher.Event.EventType.NodeDataChanged) {
        reset();//from ww w  .ja  v  a2 s.  c o  m
    }
}

From source file:org.apache.curator.framework.imps.TestEnabledSessionExpiredState.java

License:Apache License

@Test
public void testInjectedWatchedEvent() throws Exception {
    Assert.assertEquals(states.poll(timing.milliseconds(), TimeUnit.MILLISECONDS), ConnectionState.CONNECTED);

    final CountDownLatch latch = new CountDownLatch(1);
    Watcher watcher = new Watcher() {
        @Override/*from  ww w.ja  va 2 s . co m*/
        public void process(WatchedEvent event) {
            if (event.getType() == Event.EventType.None) {
                if (event.getState() == Event.KeeperState.Expired) {
                    latch.countDown();
                }
            }
        }
    };
    client.checkExists().usingWatcher(watcher).forPath("/");
    server.stop();
    Assert.assertTrue(timing.forSessionSleep().awaitLatch(latch));
}

From source file:org.apache.curator.framework.imps.TestReconfiguration.java

License:Apache License

private CountDownLatch setChangeWaiter(CuratorFramework client) throws Exception {
    final CountDownLatch latch = new CountDownLatch(1);
    Watcher watcher = new Watcher() {
        @Override//from   w w w.j a v a 2  s  .  c  o  m
        public void process(WatchedEvent event) {
            if (event.getType() == Event.EventType.NodeDataChanged) {
                latch.countDown();
            }
        }
    };
    client.getConfig().usingWatcher(watcher).forEnsemble();
    return latch;
}