This is an automated email from the ASF dual-hosted git repository. amichair pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/aries-rsa.git
commit 8d6e1b84692d2488e43b24d1788bf4decdb6cf90 Author: Amichai Rothman <[email protected]> AuthorDate: Sat May 9 08:18:13 2026 +0300 Little mdns refactoring --- .../apache/aries/rsa/discovery/mdns/Interest.java | 16 ++++----- .../aries/rsa/discovery/mdns/InterestManager.java | 42 +++++++++------------- .../aries/rsa/discovery/mdns/MdnsDiscovery.java | 10 +++--- .../discovery/mdns/PublishingEndpointListener.java | 12 +++---- 4 files changed, 33 insertions(+), 47 deletions(-) diff --git a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/Interest.java b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/Interest.java index ef0c7953..93793668 100644 --- a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/Interest.java +++ b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/Interest.java @@ -45,13 +45,13 @@ public class Interest { private final Long id; private final ConcurrentMap<String, EndpointDescription> added = new ConcurrentHashMap<>(); private final AtomicReference<List<String>> scopes = new AtomicReference<>(); - private final EndpointEventListener epListener; + private final EndpointEventListener listener; - public Interest(Long id, EndpointEventListener epListener, Map<String, Object> props) { + public Interest(Long id, EndpointEventListener listener, Map<String, Object> props) { this.id = id; this.scopes.set(StringPlus.normalize(props.get(ENDPOINT_LISTENER_SCOPE))); - this.epListener = epListener; + this.listener = listener; } public void update(Map<String, Object> props) { @@ -85,10 +85,6 @@ public class Interest { return remove; }); } - - public Object getEpListener() { - return epListener; - } public void endpointChanged(EndpointDescription ed) { List<String> scopes = this.scopes.get(); @@ -133,8 +129,8 @@ public class Interest { private void notifyListener(EndpointEvent event, String filter) { EndpointDescription endpoint = event.getEndpoint(); LOG.info("Calling endpointChanged on class {} for filter {}, type {}, endpoint {} ", - epListener, filter, event.getType(), endpoint); - epListener.endpointChanged(event, filter); + listener, filter, event.getType(), endpoint); + listener.endpointChanged(event, filter); } private Optional<String> getFirstMatch(EndpointDescription endpoint, List<String> scopes) { @@ -143,7 +139,7 @@ public class Interest { @Override public String toString() { - return "Interest [scopes=" + scopes + ", epListener=" + epListener.getClass() + "]"; + return "Interest [scopes=" + scopes + ", listener=" + listener.getClass() + "]"; } } diff --git a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/InterestManager.java b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/InterestManager.java index 473416d0..9f285923 100644 --- a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/InterestManager.java +++ b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/InterestManager.java @@ -36,6 +36,7 @@ import javax.ws.rs.sse.InboundSseEvent; import javax.ws.rs.sse.SseEventSource; import org.apache.aries.rsa.spi.EndpointDescriptionParser; +import org.osgi.framework.Constants; import org.osgi.service.jaxrs.client.SseEventSourceFactory; import org.osgi.service.remoteserviceadmin.EndpointDescription; import org.osgi.service.remoteserviceadmin.EndpointEventListener; @@ -47,7 +48,6 @@ import org.slf4j.LoggerFactory; * Establishes SSE event sources to be called back on all changes in the remote targets. * Events are then forwarded to all interested {@link EndpointEventListener}s. */ -@SuppressWarnings("deprecation") public class InterestManager { private static final Logger LOG = LoggerFactory.getLogger(InterestManager.class); @@ -150,46 +150,38 @@ public class InterestManager { } } - public void bindEndpointEventListener(EndpointEventListener epListener, Map<String, Object> props) { - addInterest(epListener, props); - } - - public void updatedEndpointEventListener(Map<String, Object> props) { - updatedInterest(props); - } - - public void unbindEndpointEventListener(Map<String, Object> props) { - interests.remove(getServiceId(props)); - } - private Long getServiceId(Map<String, Object> props) { - return (Long) props.get("service.id"); + return (Long) props.get(Constants.SERVICE_ID); } - private void addInterest(EndpointEventListener epListener, Map<String, Object> props) { - + public void addInterest(EndpointEventListener epListener, Map<String, Object> props) { + Long id = getServiceId(props); - + if(LOG.isInfoEnabled()) { LOG.info("Service {} has registered an interest in endpoint events", id); } - - Interest interest = new Interest(getServiceId(props), epListener, props); - - interests.put(getServiceId(props), interest); + + Interest interest = new Interest(id, epListener, props); + + interests.put(id, interest); endpointsBySource.values().stream() .flatMap(Set::stream) .forEach(interest::endpointChanged); } - private void updatedInterest(Map<String, Object> props) { - + public void updateInterest(Map<String, Object> props) { + Long id = getServiceId(props); - + if(LOG.isInfoEnabled()) { LOG.info("Service {} has changed its interest in endpoint events", id); } - + interests.get(id).update(props); } + + public void removeInterest(Map<String, Object> props) { + interests.remove(getServiceId(props)); + } } diff --git a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/MdnsDiscovery.java b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/MdnsDiscovery.java index bacce191..3493da58 100644 --- a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/MdnsDiscovery.java +++ b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/MdnsDiscovery.java @@ -87,15 +87,15 @@ public class MdnsDiscovery { @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) public void bindEndpointEventListener(EndpointEventListener epListener, Map<String, Object> props) { - interestManager.bindEndpointEventListener(epListener, props); + interestManager.addInterest(epListener, props); } public void updatedEndpointEventListener(Map<String, Object> props) { - interestManager.updatedEndpointEventListener(props); + interestManager.updateInterest(props); } public void unbindEndpointEventListener(Map<String, Object> props) { - interestManager.unbindEndpointEventListener(props); + interestManager.removeInterest(props); } @Reference(policy = ReferencePolicy.DYNAMIC) @@ -165,8 +165,8 @@ public class MdnsDiscovery { } } - public static @interface Config { - public String bind_address(); + public @interface Config { + String bind_address(); } @Activate diff --git a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/PublishingEndpointListener.java b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/PublishingEndpointListener.java index d78a5824..9c3ca7f5 100644 --- a/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/PublishingEndpointListener.java +++ b/discovery/mdns/src/main/java/org/apache/aries/rsa/discovery/mdns/PublishingEndpointListener.java @@ -58,7 +58,6 @@ import org.slf4j.LoggerFactory; * Listens for local {@link EndpointEvent}s using {@link EndpointEventListener} * and publishes changes to listeners using Server Sent Events (SSE) */ -@SuppressWarnings("deprecation") @RequireJaxrsWhiteboard public class PublishingEndpointListener { @@ -83,7 +82,7 @@ public class PublishingEndpointListener { Dictionary<String, Object> props = serviceProperties(uuid); listenerReg = bctx.registerService(ifAr, new ListenerFactory(), props); resourceReg = bctx.registerService(PublishingEndpointListener.class, this, - new Hashtable<String, Object>() {{put("osgi.jaxrs.resource", Boolean.TRUE);}}); + new Hashtable<>() {{put("osgi.jaxrs.resource", Boolean.TRUE);}}); } @Deactivate @@ -103,10 +102,10 @@ public class PublishingEndpointListener { switch(type) { case EndpointEvent.ADDED: case EndpointEvent.MODIFIED: - localEndpoints.compute(id, (k,v) -> { - return v == null ? new SponsoredEndpoint(ed, singleton(bundleId)) : - new SponsoredEndpoint(ed, concat(v.sponsors.stream(), Stream.of(bundleId)).collect(toSet())); - }); + localEndpoints.compute(id, (k,v) -> new SponsoredEndpoint(ed, + v == null + ? singleton(bundleId) + : concat(v.sponsors.stream(), Stream.of(bundleId)).collect(toSet()))); String data = toEndpointData(ed); listeners.forEach(s -> s.update(data)); break; @@ -237,7 +236,6 @@ public class PublishingEndpointListener { private final Set<Long> sponsors; public SponsoredEndpoint(EndpointDescription ed, Set<Long> sponsors) { - super(); this.ed = ed; this.sponsors = sponsors; }
