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 e65926dcbade11c839b5897f5921a02fbf10e11f
Author: Amichai Rothman <[email protected]>
AuthorDate: Sun Jun 7 17:07:49 2026 +0300

    ARIES-2235 Fix slashes in mdns listen path
---
 .../apache/aries/rsa/discovery/mdns/MdnsDiscovery.java  | 17 +++++++----------
 .../rsa/discovery/mdns/PublishingEndpointListener.java  |  3 ++-
 2 files changed, 9 insertions(+), 11 deletions(-)

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 5e752066..a02c3acd 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
@@ -115,28 +115,25 @@ public class MdnsDiscovery {
         if (jmdns != null) {
             RuntimeDTO runtimeDTO = runtime.getRuntimeDTO();
             List<String> uris = 
StringPlus.normalize(runtimeDTO.serviceDTO.properties.get(JAX_RS_SERVICE_ENDPOINT));
-
             if (uris == null || uris.isEmpty()) {
                 LOG.warn("Unable to advertise discovery as there are no 
endpoint URIs");
                 return;
             }
-
-            String base = runtimeDTO.defaultApplication.base;
-            if (base == null) {
-                base = "";
-            }
-
-            base += "/aries/rsa/discovery";
-
             URI uri = uris.stream()
                 .filter(s -> s.matches(".*(?:[0-9]{1,3}\\.){3}[0-9]{1,3}.*"))
                 .findFirst()
                 .map(URI::create)
                 .orElseGet(() -> URI.create(uris.get(0)));
+            String path = uri.getPath();
+            String base = runtimeDTO.defaultApplication.base;
+            path = ((path == null ? "" : path) + "/"
+                  + (base == null ? "" : base) + "/"
+                  + PublishingEndpointListener.LISTEN_PATH)
+                .replaceAll("//+", "/");
 
             Map<String, Object> props = new HashMap<>();
             props.put("scheme", uri.getScheme() == null ? "" : 
uri.getScheme());
-            props.put("path", uri.getPath() == null ? base : uri.getPath() + 
base);
+            props.put("path", path);
             props.put("frameworkUuid", fwUuid);
 
             ServiceInfo info = 
ServiceInfo.create(_ARIES_DISCOVERY_HTTP_TCP_LOCAL, fwUuid, uri.getPort(), 0, 
0, props);
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 08fae8c7..46788350 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
@@ -53,6 +53,7 @@ import org.slf4j.LoggerFactory;
 public class PublishingEndpointListener {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(PublishingEndpointListener.class);
+    public static final String LISTEN_PATH = "/aries/rsa/discovery";
 
     private final EndpointDescriptionParser parser;
 
@@ -109,7 +110,7 @@ public class PublishingEndpointListener {
 
     @GET
     @Produces(SERVER_SENT_EVENTS)
-    @Path("aries/rsa/discovery")
+    @Path(LISTEN_PATH)
     public void listen(@Context Sse sse, @Context SseEventSink sink) {
         Subscription subscription = new Subscription(sse, sink);
         listeners.add(subscription);

Reply via email to