List of usage examples for org.apache.zookeeper WatchedEvent getType
public EventType getType()
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; }