void resetHandlers(boolean isShutdown) { synchronized (this) { if (_handlers != null) { // get a copy of the list and iterate over the copy list // in case handler.reset() modify the original handler list List<CallbackHandler> tmpHandlers = new ArrayList<>(); tmpHandlers.addAll(_handlers); for (CallbackHandler handler : tmpHandlers) { handler.reset(isShutdown); LOG.info("reset handler: " + handler.getPath() + ", " + handler.getListener()); } } } }
void resetHandlers() { synchronized (this) { if (_handlers != null) { // get a copy of the list and iterate over the copy list // in case handler.reset() modify the original handler list List<CallbackHandler> tmpHandlers = new ArrayList<>(); tmpHandlers.addAll(_handlers); for (CallbackHandler handler : tmpHandlers) { handler.reset(); LOG.info("reset handler: " + handler.getPath() + ", " + handler.getListener()); } } } }
void initHandlers(List<CallbackHandler> handlers) { synchronized (this) { if (handlers != null) { for (CallbackHandler handler : handlers) { handler.init(); LOG.info("init handler: " + handler.getPath() + ", " + handler.getListener()); } } } }
void initHandlers(List<CallbackHandler> handlers) { synchronized (this) { if (handlers != null) { for (CallbackHandler handler : handlers) { handler.init(); LOG.info("init handler: " + handler.getPath() + ", " + handler.getListener()); } } } }
@Override public boolean removeListener(PropertyKey key, Object listener) { LOG.info("Removing listener: " + listener + " on path: " + key.getPath() + " from cluster: " + _clusterName + " by instance: " + _instanceName); synchronized (this) { List<CallbackHandler> toRemove = new ArrayList<>(); for (CallbackHandler handler : _handlers) { // compare property-key path and listener reference if (handler.getPath().equals(key.getPath()) && handler.getListener().equals(listener)) { toRemove.add(handler); } } _handlers.removeAll(toRemove); // handler.reset() may modify the handlers list, so do it outside the iteration for (CallbackHandler handler : toRemove) { handler.reset(true); } } return true; }
@Override public boolean removeListener(PropertyKey key, Object listener) { LOG.info("Removing listener: " + listener + " on path: " + key.getPath() + " from cluster: " + _clusterName + " by instance: " + _instanceName); synchronized (this) { List<CallbackHandler> toRemove = new ArrayList<>(); for (CallbackHandler handler : _handlers) { // compare property-key path and listener reference if (handler.getPath().equals(key.getPath()) && handler.getListener().equals(listener)) { toRemove.add(handler); } } _handlers.removeAll(toRemove); // handler.reset() may modify the handlers list, so do it outside the iteration for (CallbackHandler handler : toRemove) { handler.reset(); } } return true; }
void addListener(Object listener, PropertyKey propertyKey, ChangeType changeType, EventType[] eventType) { checkConnected(_waitForConnectedTimeout); PropertyType type = propertyKey.getType(); synchronized (this) { for (CallbackHandler handler : _handlers) { // compare property-key path and listener reference if (handler.getPath().equals(propertyKey.getPath()) && handler.getListener().equals(listener)) { LOG.info("Listener: " + listener + " on path: " + propertyKey.getPath() + " already exists. skip add"); return; } } CallbackHandler newHandler = new CallbackHandler(this, _zkclient, propertyKey, listener, eventType, changeType, _callbackMonitors.get(changeType)); _handlers.add(newHandler); LOG.info("Added listener: " + listener + " for type: " + type + " to path: " + newHandler.getPath()); } }
void addListener(Object listener, PropertyKey propertyKey, ChangeType changeType, EventType[] eventType) { checkConnected(_waitForConnectedTimeout); PropertyType type = propertyKey.getType(); synchronized (this) { for (CallbackHandler handler : _handlers) { // compare property-key path and listener reference if (handler.getPath().equals(propertyKey.getPath()) && handler.getListener().equals(listener)) { LOG.info("Listener: " + listener + " on path: " + propertyKey.getPath() + " already exists. skip add"); return; } } CallbackHandler newHandler = new CallbackHandler(this, _zkclient, propertyKey, listener, eventType, changeType, _callbackMonitors.get(changeType)); _handlers.add(newHandler); LOG.info("Added listener: " + listener + " for type: " + type + " to path: " + newHandler.getPath()); } }
public static void printZkListeners(HelixZkClient client) throws Exception { Map<String, Set<IZkDataListener>> datalisteners = ZkTestHelper.getZkDataListener(client); Map<String, Set<IZkChildListener>> childListeners = ZkTestHelper.getZkChildListener(client); System.out.println("dataListeners {"); for (String path : datalisteners.keySet()) { System.out.println("\t" + path + ": "); Set<IZkDataListener> set = datalisteners.get(path); for (IZkDataListener listener : set) { CallbackHandler handler = (CallbackHandler) listener; System.out.println("\t\t" + handler.getListener()); } } System.out.println("}"); System.out.println("childListeners {"); for (String path : childListeners.keySet()) { System.out.println("\t" + path + ": "); Set<IZkChildListener> set = childListeners.get(path); for (IZkChildListener listener : set) { CallbackHandler handler = (CallbackHandler) listener; System.out.println("\t\t" + handler.getListener()); } } System.out.println("}"); } }
public static String printHandlers(ZkTestManager manager) { StringBuilder sb = new StringBuilder(); List<CallbackHandler> handlers = manager.getHandlers(); sb.append(manager.getInstanceName() + " has " + handlers.size() + " cb-handlers. ["); for (int i = 0; i < handlers.size(); i++) { CallbackHandler handler = handlers.get(i); String path = handler.getPath(); sb.append(path.substring(manager.getClusterName().length() + 1) + ": " + handler.getListener()); if (i < (handlers.size() - 1)) { sb.append(", "); } } sb.append("]"); return sb.toString(); }
void printZkListeners(HelixZkClient client) throws Exception { Map<String, Set<IZkDataListener>> datalisteners = ZkTestHelper.getZkDataListener(client); Map<String, Set<IZkChildListener>> childListeners = ZkTestHelper.getZkChildListener(client); System.out.println("dataListeners {"); for (String path : datalisteners.keySet()) { System.out.println("\t" + path + ": "); Set<IZkDataListener> set = datalisteners.get(path); for (IZkDataListener listener : set) { CallbackHandler handler = (CallbackHandler) listener; System.out.println("\t\t" + handler.getListener()); } } System.out.println("}"); System.out.println("childListeners {"); for (String path : childListeners.keySet()) { System.out.println("\t" + path + ": "); Set<IZkChildListener> set = childListeners.get(path); for (IZkChildListener listener : set) { CallbackHandler handler = (CallbackHandler) listener; System.out.println("\t\t" + handler.getListener()); } } System.out.println("}"); } }
static String printHandlers(ZkTestManager manager) { StringBuilder sb = new StringBuilder(); List<CallbackHandler> handlers = manager.getHandlers(); sb.append(manager.getInstanceName() + " has " + handlers.size() + " cb-handlers. ["); for (int i = 0; i < handlers.size(); i++) { CallbackHandler handler = handlers.get(i); String path = handler.getPath(); sb.append(path.substring(manager.getClusterName().length() + 1) + ": " + handler.getListener()); if (i < (handlers.size() - 1)) { sb.append(", "); } } sb.append("]"); return sb.toString(); }