/** * Bootstrap updated. * * @param data the data */ protected void bootstrapUpdated(ChildData data) { BootstrapNodeInfo nodeInfo = extractBootstrapServerInfo(data); String bootstrapAddress = constructBootstrapAddress(nodeInfo); bootstrapNodesStartTimes.put(bootstrapAddress, nodeInfo.getTimeStarted()); for (BootstrapNodeListener listener : bootstrapListeners) { listener.onNodeUpdated(nodeInfo); } }
/** * Operations Node added. * * @param data the data */ protected void endpointAdded(ChildData data) { OperationsNodeInfo nodeInfo = extractOperationServerInfo(data); String endpointAddress = constructEndpointAddress(nodeInfo); operationNodesStartTimes.put(endpointAddress, nodeInfo.getTimeStarted()); for (OperationsNodeListener listener : endpointListeners) { listener.onNodeAdded(nodeInfo); } }
@Override public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception { switch (event.getType()) { case CHILD_ADDED: endpointAdded(event.getData()); break; case CHILD_UPDATED: endpointUpdated(event.getData()); break; case CHILD_REMOVED: endpointRemoved(event.getData()); break; default: break; } } });
@Override public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception { LOG.info("Bootstrap node event: " + event.getType()); switch (event.getType()) { case CHILD_ADDED: bootstrapAdded(event.getData()); break; case CHILD_UPDATED: bootstrapUpdated(event.getData()); break; case CHILD_REMOVED: bootstrapRemoved(event.getData()); break; default: break; } } });
zkNode.addListener(new OperationsNodeListener() { List<OperationsNodeInfo> nodes = zkNode.getCurrentOperationServerNodes(); for (OperationsNodeInfo opServer : nodes) { addOpsServer(opServer);
/** * Gets the current bootstrap nodes. * * @return the current bootstrap nodes */ public List<BootstrapNodeInfo> getCurrentBootstrapNodes() { List<ChildData> nodesData = bootstrapCache != null ? bootstrapCache .getCurrentData() : new ArrayList<ChildData>(); List<BootstrapNodeInfo> result = new ArrayList<>(nodesData.size()); for (ChildData data : nodesData) { result.add(extractBootstrapServerInfo(data)); } return result; }
/** * Bootstrap added. * * @param data the data */ protected void bootstrapAdded(ChildData data) { BootstrapNodeInfo nodeInfo = extractBootstrapServerInfo(data); String bootstrapAddress = constructBootstrapAddress(nodeInfo); bootstrapNodesStartTimes.put(bootstrapAddress, nodeInfo.getTimeStarted()); for (BootstrapNodeListener listener : bootstrapListeners) { listener.onNodeAdded(nodeInfo); } }
/** * Operations Node updated. * * @param data the data */ protected void endpointUpdated(ChildData data) { OperationsNodeInfo nodeInfo = extractOperationServerInfo(data); String endpointAddress = constructEndpointAddress(nodeInfo); operationNodesStartTimes.put(endpointAddress, nodeInfo.getTimeStarted()); for (OperationsNodeListener listener : endpointListeners) { listener.onNodeUpdated(nodeInfo); } }
/** * Bootstrap removed. * * @param data the data */ protected void bootstrapRemoved(ChildData data) { BootstrapNodeInfo nodeInfo = extractBootstrapServerInfo(data); String bootstrapAddress = constructBootstrapAddress(nodeInfo); Long removeTime = nodeInfo.getTimeStarted(); Long updateTime = bootstrapNodesStartTimes.get(bootstrapAddress); if (updateTime == null || removeTime >= updateTime) { for (BootstrapNodeListener listener : bootstrapListeners) { listener.onNodeRemoved(nodeInfo); } } else { LOG.debug("Ignoring [{}] bootstrap removal, as it was before add/update", bootstrapAddress); } }
/** * Operations Node removed. * * @param data the data */ protected void endpointRemoved(ChildData data) { OperationsNodeInfo nodeInfo = extractOperationServerInfo(data); String endpointAddress = constructEndpointAddress(nodeInfo); Long removeTime = nodeInfo.getTimeStarted(); Long updateTime = operationNodesStartTimes.get(endpointAddress); if (updateTime == null || removeTime >= updateTime) { operationNodesStartTimes.remove(endpointAddress); for (OperationsNodeListener listener : endpointListeners) { listener.onNodeRemoved(nodeInfo); } } else { LOG.debug("Ignoring [{}] endpoint removal, as it was before add/update", endpointAddress); } }