private static String extractNodeName(ChildData childData) { String nodeName = childData.getPath(); int ix = nodeName.lastIndexOf("/"); if (ix >= 0) { nodeName = nodeName.substring(ix + 1); } return nodeName; }
private static String extractNodeName(ChildData childData) { String nodeName = childData.getPath(); int ix = nodeName.lastIndexOf("/"); if (ix >= 0) { nodeName = nodeName.substring(ix + 1); } return nodeName; }
@Override public boolean apply(ChildData data) { return ZKPaths.getNodeFromPath(data.getPath()).equals(CONFIG_NODE_NAME); } },
static ProviderInfo convertUrlToProvider(String providerPath, ChildData childData) throws UnsupportedEncodingException { String url = childData.getPath().substring(providerPath.length() + 1); // 去掉头部 url = URLDecoder.decode(url, "UTF-8"); ProviderInfo providerInfo = ProviderHelper.toProviderInfo(url); processWarmUpWeight(providerInfo); return providerInfo; }
static ProviderInfo convertUrlToProvider(String providerPath, ChildData childData) throws UnsupportedEncodingException { String url = childData.getPath().substring(providerPath.length() + 1); // 去掉头部 url = URLDecoder.decode(url, "UTF-8"); ProviderInfo providerInfo = ProviderHelper.toProviderInfo(url); processWarmUpWeight(providerInfo); return providerInfo; }
@Override public void childEvent(final CuratorFramework client, final TreeCacheEvent event) throws UnsupportedEncodingException { ChildData data = event.getData(); if (null == data || null == data.getPath()) { return; } ChangedType changedType = getChangedType(event); if (ChangedType.IGNORED != changedType) { dataChangedEventListener.onChange(new DataChangedEvent(data.getPath(), null == data.getData() ? null : new String(data.getData(), "UTF-8"), changedType)); } } });
@Override public void childEvent(CuratorFramework curatorFramework, PathChildrenCacheEvent pathChildrenCacheEvent) throws Exception { if (pathChildrenCacheEvent.getType().equals(PathChildrenCacheEvent.Type.CHILD_ADDED)) { final Task task = jsonMapper.readValue( cf.getData().forPath(pathChildrenCacheEvent.getData().getPath()), Task.class ); assignTask(task); } } }
@Override public void childEvent(CuratorFramework c, PathChildrenCacheEvent event) throws Exception { switch (event.getType()) { case CHILD_ADDED: case CHILD_REMOVED: case CHILD_UPDATED: String childPath = event.getData().getPath(); String parentPath = childPath.substring(0, childPath.lastIndexOf("/")); List<String> children = client.getChildren().forPath(parentPath); listener.childChanged(parentPath, children); default: break; } } };
@Override public void childEvent(CuratorFramework c, PathChildrenCacheEvent event) throws Exception { switch (event.getType()) { case CHILD_ADDED: case CHILD_REMOVED: case CHILD_UPDATED: String childPath = event.getData().getPath(); String parentPath = childPath.substring(0, childPath.lastIndexOf("/")); List<String> children = client.getChildren().forPath(parentPath); listener.childChanged(parentPath, children); default: break; } } };
/** * Convert child data to attribute. * * @param configPath the config path * @param childData the child data * @param removeType is remove type * @return the attribute */ static Map<String, String> convertConfigToAttribute(String configPath, ChildData childData, boolean removeType) { String attribute = childData.getPath().substring(configPath.length() + 1); //If event type is CHILD_REMOVED, attribute should return to default value return Collections.singletonMap(attribute, removeType ? RpcConfigs.getStringValue(attribute) : StringSerializer.decode(childData.getData())); }
/** * Convert child data to attribute. * * @param configPath the config path * @param childData the child data * @param removeType is remove type * @return the attribute */ static Map<String, String> convertConfigToAttribute(String configPath, ChildData childData, boolean removeType) { String attribute = childData.getPath().substring(configPath.length() + 1); //If event type is CHILD_REMOVED, attribute should return to default value return Collections.singletonMap(attribute, removeType ? RpcConfigs.getStringValue(attribute) : StringSerializer.decode(childData.getData())); }
private void dumpDirectly(final String path, final List<String> result) { for (String each : regCenter.getChildrenKeys(path)) { String zkPath = path + "/" + each; String zkValue = regCenter.get(zkPath); if (null == zkValue) { zkValue = ""; } TreeCache treeCache = (TreeCache) regCenter.getRawCache("/" + jobName); ChildData treeCacheData = treeCache.getCurrentData(zkPath); String treeCachePath = null == treeCacheData ? "" : treeCacheData.getPath(); String treeCacheValue = null == treeCacheData ? "" : new String(treeCacheData.getData()); if (zkValue.equals(treeCacheValue) && zkPath.equals(treeCachePath)) { result.add(Joiner.on(" | ").join(zkPath, zkValue)); } else { result.add(Joiner.on(" | ").join(zkPath, zkValue, treeCachePath, treeCacheValue)); } dumpDirectly(zkPath, result); } }
private InstanceType extractServiceInstance( PathChildrenCacheEvent event, ChildData childData) { byte[] data = childData.getData(); if (data == null) return null; try { ServiceRecord srv = encoder.fromBytes(event.getData().getPath(), data); return createServiceInstance(srv); } catch (IOException e) { LOG.error("Unable to decode data for zknode: {}." + " Dropping notification of type: {}", childData.getPath(), event.getType()); return null; } }
@Override public final void childEvent(final CuratorFramework client, final TreeCacheEvent event) throws Exception { ChildData childData = event.getData(); if (null == childData) { return; } String path = childData.getPath(); if (path.isEmpty()) { return; } dataChanged(path, event.getType(), null == childData.getData() ? "" : new String(childData.getData(), Charsets.UTF_8)); }
@Override public void childEvent(CuratorFramework client, PathChildrenCacheEvent event) throws Exception { switch (event.getType()) { case CHILD_ADDED: watcher.onLock(event.getData().getPath(), new String(event.getData().getData(), StandardCharsets.UTF_8)); break; case CHILD_REMOVED: watcher.onUnlock(event.getData().getPath(), new String(event.getData().getData(), StandardCharsets.UTF_8)); break; default: break; } } }, executor);
@Override public void nodeChanged() throws Exception { String path = nodeCache.getCurrentData().getPath(); Object data = nodeCache.getCurrentData().getData(); if (data == null) { listener.dataDeleted(path); } else { listener.dataChange(path, data); } } };
@Override public void nodeChanged() throws Exception { String path = nodeCache.getCurrentData().getPath(); Object data = nodeCache.getCurrentData().getData(); if (data == null) { listener.dataDeleted(path); } else { listener.dataChange(path, data); } } };
/** * Add provider * * @param config ConsumerConfig * @param providerPath Provider path of zookeeper * @param data Event data * @param currentData provider data list * @throws UnsupportedEncodingException decode error */ public void addProvider(ConsumerConfig config, String providerPath, ChildData data, List<ChildData> currentData) throws UnsupportedEncodingException { if (LOGGER.isInfoEnabled(config.getAppName())) { LOGGER.infoWithApp(config.getAppName(), "Receive add provider: path=[" + data.getPath() + "]" + ", data=[" + StringSerializer.decode(data.getData()) + "]" + ", stat=[" + data.getStat() + "]" + ", list=[" + currentData.size() + "]"); } notifyListeners(config, providerPath, currentData, true); }