void register(Registration registration) { this.topologyManagerInjector.getValue().register(registration); }
void unregister(Registration registration) { this.topologyManagerInjector.getValue().unregister(registration); }
public synchronized void register(Registration registration) { if (!this.registrations.contains(registration)) { this.registrations.add(registration); fireListeners(); } }
@Override public void notify(Map<HostAndPort, ServiceHealth> newValues) { Set<Registration> previousEntries = topologyManager.registrationsForService(this.name); Set<Registration> newEntries = newValues.values().stream() .map(e -> new Registration("consul", this.name, e.getService().getAddress(), e.getService().getPort()) .addTags(e.getService().getTags()) ) .collect(Collectors.toSet()); previousEntries.stream() .filter(e -> !newEntries.contains(e)) .forEach(e -> { this.topologyManager.unregister(e); }); newEntries.stream() .filter(e -> !previousEntries.contains(e)) .forEach(e -> { this.topologyManager.register(e); }); } }
@Override public List<Server> getInitialListOfServers() { String tag = ( this.isSecure ? "https" : "http" ); return TopologyManager.INSTANCE.registrationsForService(this.appName, tag) .stream() .map( reg-> new Server( reg.getAddress(), reg.getPort() )) .collect(Collectors.toList()); }
@Override public void membershipChanged(List<Node> previousMembers, List<Node> members, boolean merged) { advertiseAll(); List<Node> removed = new ArrayList<>(); removed.addAll(previousMembers); removed.removeAll(members); removed.forEach((e) -> { this.topologyManagerInjector.getValue().unregisterAll(sourceKey(e)); }); }
private void fireListeners() { List<TopologyListener> currentListeners = new ArrayList<>(); currentListeners.addAll(this.listeners); currentListeners.forEach((e) -> { executor.execute(() -> { try { e.onChange(this); } catch (Throwable t) { removeListener(e); } }); }); }
protected synchronized void advertiseAll() { for (Registration each : this.topologyManagerInjector.getValue().registrationsForSourceKey(sourceKey(this.node))) { doAdvertise(each); } }
@Override public List<Server> getUpdatedListOfServers() { String tag = ( this.isSecure ? "https" : "http" ); return TopologyManager.INSTANCE.registrationsForService(this.appName, tag) .stream() .map( reg-> new Server( reg.getAddress(), reg.getPort() )) .collect(Collectors.toList()); } }
@Override public void disconnected() { if (listenerState.get().equals(ListenerState.RESTARTING)) { // Restarting so ignore disconnect return; } // De-register all endpoints topologyManagerInjector.getValue().unregisterAll(TOPOLOGY_SOURCE_KEY); listenerState.set(ListenerState.DISCONNECTED); }
private void fireListeners() { List<TopologyListener> currentListeners = new ArrayList<>(); currentListeners.addAll(this.listeners); currentListeners.forEach((e) -> { executor.execute(() -> { try { e.onChange(this); } catch (Throwable t) { t.printStackTrace(); removeListener(e); } }); }); }
protected synchronized void advertiseAll() throws Exception { for (Registration each : this.topologyManagerInjector.getValue().registrationsForSourceKey(sourceKey(this.node))) { doAdvertise(each); } }
@Override public List<Server> getInitialListOfServers() { String tag = (this.isSecure ? "https" : "http"); return TopologyManager.INSTANCE.registrationsForService(this.appName, tag) .stream() .map(reg -> new Server(reg.getAddress(), reg.getPort())) .collect(Collectors.toList()); }
public synchronized void register(Registration registration) { if (!this.registrations.contains(registration)) { this.registrations.add(registration); fireListeners(); } }
@Override public void membershipChanged(List<Node> previousMembers, List<Node> members, boolean merged) { try { advertiseAll(); } catch (Exception e) { TopologyMessages.MESSAGES.errorStartingAdvertisement(e); } List<Node> removed = new ArrayList<>(); removed.addAll(previousMembers); removed.removeAll(members); removed.forEach((e) -> { this.topologyManagerInjector.getValue().unregisterAll(sourceKey(e)); }); }
void register(Registration registration) { this.topologyManagerInjector.getValue().register(registration); }
void unregister(Registration registration) { this.topologyManagerInjector.getValue().unregister(registration); }
private void fireListeners() { List<TopologyListener> currentListeners = new ArrayList<>(); currentListeners.addAll(this.listeners); currentListeners.forEach((e) -> { executor.execute(() -> { try { e.onChange(this); } catch (Throwable t) { TopologyMessages.MESSAGES.errorFiringEvent(e.getClass().getName(), t); removeListener(e); } }); }); }
@Override public List<Server> getUpdatedListOfServers() { String tag = (this.isSecure ? "https" : "http"); return TopologyManager.INSTANCE.registrationsForService(this.appName, tag) .stream() .map(reg -> new Server(reg.getAddress(), reg.getPort())) .collect(Collectors.toList()); }
public synchronized void register(Registration registration) { if (!this.registrations.contains(registration)) { this.registrations.add(registration); fireListeners(); } }