This is an automated email from the ASF dual-hosted git repository. amichai pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/aries-rsa.git
commit 6a2f3f65cd205c983ab5a3c76edb8c6ce28dcf75 Author: Amichai Rothman <[email protected]> AuthorDate: Mon Mar 16 03:20:19 2026 +0200 Cleanup EndpointListenerNotifier --- .../exporter/EndpointEventListenerTracker.java | 4 +- .../exporter/EndpointListenerNotifier.java | 44 ++++++++++------------ .../exporter/EndpointListenerNotifierTest.java | 6 +-- 3 files changed, 25 insertions(+), 29 deletions(-) diff --git a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointEventListenerTracker.java b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointEventListenerTracker.java index 40f744db..471eb22a 100644 --- a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointEventListenerTracker.java +++ b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointEventListenerTracker.java @@ -46,13 +46,13 @@ public final class EndpointEventListenerTracker extends ServiceTracker<EndpointE @Override public EndpointEventListener addingService(ServiceReference sref) { EndpointEventListener listener = super.addingService(sref); - tme.addEndpointEventListener(listener, EndpointListenerNotifier.filtersFromEEL(sref)); + tme.addEndpointEventListener(listener, EndpointListenerNotifier.createScopeFilters(sref)); return listener; } @Override public void modifiedService(ServiceReference sref, EndpointEventListener listener) { - tme.addEndpointEventListener(listener, EndpointListenerNotifier.filtersFromEEL(sref)); + tme.addEndpointEventListener(listener, EndpointListenerNotifier.createScopeFilters(sref)); super.modifiedService(sref, listener); } diff --git a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifier.java b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifier.java index c9e53f9e..ce2813dc 100644 --- a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifier.java +++ b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifier.java @@ -39,23 +39,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Tracks EndpointListeners and allows to notify them of endpoints. + * Tracks EndpointEventListeners and allows to notify them of endpoints. */ -@SuppressWarnings("deprecation") public class EndpointListenerNotifier { private static final Logger LOG = LoggerFactory.getLogger(EndpointListenerNotifier.class); - private Map<EndpointEventListener, Set<Filter>> listeners; + private final Map<EndpointEventListener, Set<Filter>> listeners; public EndpointListenerNotifier() { this.listeners = new ConcurrentHashMap<>(); } - public static Set<Filter> filtersFromEEL(ServiceReference<EndpointEventListener> sref) { + public static Set<Filter> createScopeFilters(ServiceReference<EndpointEventListener> sref) { List<String> scopes = StringPlus.normalize(sref.getProperty(EndpointEventListener.ENDPOINT_LISTENER_SCOPE)); - return getFilterSet(scopes); + return createScopeFilters(scopes); } - private static Set<Filter> getFilterSet(List<String> scopes) { + private static Set<Filter> createScopeFilters(List<String> scopes) { Set<Filter> filters = new HashSet<>(); for (String scope : scopes) { try { @@ -67,33 +66,30 @@ public class EndpointListenerNotifier { return filters; } - public void add(EndpointEventListener ep, Set<Filter> filters, Collection<EndpointDescription> endpoints) { - LOG.debug("EndpointListener added"); - listeners.put(ep, filters); + public void add(EndpointEventListener listener, Set<Filter> filters, Collection<EndpointDescription> endpoints) { + LOG.debug("EndpointEventListener added"); + listeners.put(listener, filters); for (EndpointDescription endpoint : endpoints) { EndpointEvent event = new EndpointEvent(EndpointEvent.ADDED, endpoint); - notifyListener(event, ep, filters); + notifyListener(event, listener, filters); } } - public void remove(EndpointEventListener ep) { - LOG.debug("EndpointListener removed"); - listeners.remove(ep); + public void remove(EndpointEventListener listener) { + LOG.debug("EndpointEventListener removed"); + listeners.remove(listener); } public void sendEvent(EndpointEvent event) { - for (EndpointEventListener listener : listeners.keySet()) { - Set<Filter> filters = listeners.get(listener); - notifyListener(event, listener, filters); - } + listeners.forEach((listener, filters) -> notifyListener(event, listener, filters)); } /** * Notifies an endpoint listener about endpoints being added or removed. * - * @param type specifies whether endpoints were added (true) or removed (false) - * @param endpointListenerRef the ServiceReference of an EndpointListener to notify - * @param endpoints the endpoints the listener should be notified about + * @param event the event to send + * @param listener the listener to send the event to + * @param filters the listener filters */ private void notifyListener(EndpointEvent event, EndpointEventListener listener, Set<Filter> filters) { Set<Filter> matchingFilters = getMatchingFilters(filters, event.getEndpoint()); @@ -103,19 +99,19 @@ public class EndpointListenerNotifier { } private static Set<Filter> getMatchingFilters(Set<Filter> filters, EndpointDescription endpoint) { - Set<Filter> matchingFilters = new HashSet<>(); + Set<Filter> matches = new HashSet<>(); if (endpoint == null) { - return matchingFilters; + return matches; } Dictionary<String, Object> dict = new Hashtable<>(endpoint.getProperties()); for (Filter filter : filters) { if (filter.match(dict)) { LOG.debug("Filter {} matches endpoint {}", filter, dict); - matchingFilters.add(filter); + matches.add(filter); } else { LOG.trace("Filter {} does not match endpoint {}", filter, dict); } } - return matchingFilters; + return matches; } } diff --git a/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifierTest.java b/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifierTest.java index b045b077..c97d6890 100644 --- a/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifierTest.java +++ b/topology-manager/src/test/java/org/apache/aries/rsa/topologymanager/exporter/EndpointListenerNotifierTest.java @@ -106,7 +106,7 @@ public class EndpointListenerNotifierTest { @Test public void testNormalizeScopeForSingleString() { ServiceReference sr = createListenerServiceWithFilter("(myProp=A)"); - Set<Filter> res = EndpointListenerNotifier.filtersFromEEL(sr); + Set<Filter> res = EndpointListenerNotifier.createScopeFilters(sr); assertEquals(1, res.size()); Filter filter = res.iterator().next(); filterMatches(filter); @@ -116,7 +116,7 @@ public class EndpointListenerNotifierTest { public void testNormalizeScopeForStringArray() { String[] filters = {"(myProp=A)", "(otherProp=B)"}; ServiceReference sr = createListenerServiceWithFilter(filters); - Set<Filter> res = EndpointListenerNotifier.filtersFromEEL(sr); + Set<Filter> res = EndpointListenerNotifier.createScopeFilters(sr); assertEquals(filters.length, res.size()); Iterator<Filter> it = res.iterator(); Filter filter1 = it.next(); @@ -130,7 +130,7 @@ public class EndpointListenerNotifierTest { public void testNormalizeScopeForCollection() { Collection<String> collection = Arrays.asList("(myProp=A)", "(otherProp=B)"); ServiceReference sr = createListenerServiceWithFilter(collection); - Set<Filter> res = EndpointListenerNotifier.filtersFromEEL(sr); + Set<Filter> res = EndpointListenerNotifier.createScopeFilters(sr); Iterator<Filter> it = res.iterator(); Filter filter1 = it.next(); Filter filter2 = it.next();
