From 957eabf0ae28a9eb437bd8ae5123293e76ada5ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JB=20Onofr=C3=A9?= Date: Wed, 25 Mar 2026 10:43:44 +0100 Subject: [PATCH] feat(#1828): Expose NetworkConnector URI and local URI in JMX MBean Add getUri() and getLocalUri() attributes to NetworkConnectorViewMBean so that the network connector URI is visible via JMX. Add abstract getUri() to NetworkConnector base class and implement it in MulticastNetworkConnector. --- .../broker/jmx/NetworkConnectorView.java | 16 ++++++++++++++++ .../broker/jmx/NetworkConnectorViewMBean.java | 4 ++++ .../network/MulticastNetworkConnector.java | 5 +++++ .../activemq/network/NetworkConnector.java | 2 ++ .../org/apache/activemq/jmx/JmxCreateNCTest.java | 2 ++ 5 files changed, 29 insertions(+) diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorView.java b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorView.java index 05e6747dd7e..a1ad16f8dc0 100644 --- a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorView.java +++ b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorView.java @@ -16,6 +16,8 @@ */ package org.apache.activemq.broker.jmx; +import java.net.URISyntaxException; + import org.apache.activemq.network.NetworkConnector; public class NetworkConnectorView implements NetworkConnectorViewMBean { @@ -37,6 +39,20 @@ public void stop() throws Exception { connector.stop(); } + @Override + public String getUri() { + return connector.getUri() != null ? connector.getUri().toString() : ""; + } + + @Override + public String getLocalUri() { + try { + return connector.getLocalUri() != null ? connector.getLocalUri().toString() : ""; + } catch (URISyntaxException e) { + return ""; + } + } + @Override public String getName() { return connector.getName(); diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorViewMBean.java b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorViewMBean.java index e51b9a16caf..12fc22a2d95 100644 --- a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorViewMBean.java +++ b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/NetworkConnectorViewMBean.java @@ -20,6 +20,10 @@ public interface NetworkConnectorViewMBean extends Service { + String getUri(); + + String getLocalUri(); + String getName(); int getMessageTTL(); diff --git a/activemq-broker/src/main/java/org/apache/activemq/network/MulticastNetworkConnector.java b/activemq-broker/src/main/java/org/apache/activemq/network/MulticastNetworkConnector.java index ad7ac5babe4..d128f277c73 100644 --- a/activemq-broker/src/main/java/org/apache/activemq/network/MulticastNetworkConnector.java +++ b/activemq-broker/src/main/java/org/apache/activemq/network/MulticastNetworkConnector.java @@ -77,6 +77,11 @@ public void setRemoteTransport(Transport remoteTransport) { this.remoteTransport = remoteTransport; } + @Override + public URI getUri() { + return remoteURI; + } + public URI getRemoteURI() { return remoteURI; } diff --git a/activemq-broker/src/main/java/org/apache/activemq/network/NetworkConnector.java b/activemq-broker/src/main/java/org/apache/activemq/network/NetworkConnector.java index 1bbc483d5c5..a51345f3d6c 100644 --- a/activemq-broker/src/main/java/org/apache/activemq/network/NetworkConnector.java +++ b/activemq-broker/src/main/java/org/apache/activemq/network/NetworkConnector.java @@ -77,6 +77,8 @@ public NetworkConnector(URI localURI) { this.localURI = localURI; } + public abstract URI getUri(); + public URI getLocalUri() throws URISyntaxException { return localURI; } diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/jmx/JmxCreateNCTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/jmx/JmxCreateNCTest.java index 1d878b4f14f..447e9aae0a3 100644 --- a/activemq-unit-tests/src/test/java/org/apache/activemq/jmx/JmxCreateNCTest.java +++ b/activemq-unit-tests/src/test/java/org/apache/activemq/jmx/JmxCreateNCTest.java @@ -66,5 +66,7 @@ public void testBridgeRegistration() throws Exception { assertNotNull(nc); assertEquals("NC", nc.getName()); + assertEquals("static:(tcp://localhost:61617)", nc.getUri()); + assertNotNull(nc.getLocalUri()); } }