in discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/Interest.java [93:121]
public void endpointChanged(EndpointDescription ed) {
List<String> scopes = this.scopes.get();
Optional<String> currentScope = getFirstMatch(ed, scopes);
boolean alreadyAdded = added.containsKey(ed.getId());
EndpointEvent event;
String filter;
if (currentScope.isPresent()) {
if(LOG.isDebugEnabled()) {
LOG.debug("Listener {} is interested in endpoint {}. It will be {}", id, ed, alreadyAdded ? "MODIFIED" : "ADDED");
}
added.put(ed.getId(), ed);
event = new EndpointEvent(alreadyAdded ? MODIFIED : ADDED, ed);
filter = currentScope.get();
} else if(alreadyAdded) {
if(LOG.isDebugEnabled()) {
LOG.debug("Listener {} is no longer interested in endpoint {}. It will be {}", id, ed, "MODIFIED");
}
EndpointDescription previous = added.remove(ed.getId());
event = new EndpointEvent(MODIFIED_ENDMATCH, ed);
filter = getFirstMatch(previous, scopes).orElse(null);
} else {
if(LOG.isDebugEnabled()) {
LOG.debug("Listener {} not interested in endpoint {}", id, ed);
}
return;
}
notifyListener(event, filter);
}