Map<String, HostAndPort> cores() { return cores .getCurrentData() .stream() .collect( toMap(d -> ZKPaths.getNodeFromPath(d.getPath()), d -> toHostAndPort(d.getData()))); }
private void rebuildHandler() { List<CellAddressCore> backends = cache .getCurrentData() .stream() .map(ChildData::getPath) .map(ZKPaths::getNodeFromPath) .map(CellAddressCore::new) .collect(toList()); SerializablePoolManagerHandler handler; if (backends.isEmpty()) { handler = new RemotePoolManagerHandler(new CellAddressCore(serviceName)); } else if (backends.size() == 1) { handler = new RemotePoolManagerHandler(backends.get(0)); } else { handler = new RendezvousPoolManagerHandler(new CellAddressCore(serviceName), backends); } this.handler = handler; requests.stream().filter(requests::remove).forEach(r -> r.send(handler)); }
HostAndPort readAddressOf(String domainName) { ChildData data = cores.getCurrentData(pathOf(domainName)); return (data == null) ? null : toHostAndPort(data.getData()); }