You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ga...@apache.org on 2020/10/22 07:12:58 UTC
[activemq-artemis] branch master updated: ARTEMIS-2935 Fix JMX
ObjectNames
This is an automated email from the ASF dual-hosted git repository.
gaohoward pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/master by this push:
new 90434a4 ARTEMIS-2935 Fix JMX ObjectNames
new 9445167 This closes #3293
90434a4 is described below
commit 90434a4cf4f27cd0330555f3fb66083b6d953e87
Author: Domenico Francesco Bruscino <br...@apache.org>
AuthorDate: Wed Oct 7 21:23:30 2020 +0200
ARTEMIS-2935 Fix JMX ObjectNames
Fix invalid object names setting a default broker name if it cannot be used.
---
.../api/core/management/ObjectNameBuilder.java | 18 +++++++---------
.../integration/management/JMXDomainTest.java | 24 ++++++++++++++++++----
2 files changed, 27 insertions(+), 15 deletions(-)
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ObjectNameBuilder.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ObjectNameBuilder.java
index 5fe0d73..dacc91f 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ObjectNameBuilder.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ObjectNameBuilder.java
@@ -82,7 +82,7 @@ public final class ObjectNameBuilder {
* Returns the ObjectName used by the single {@link ActiveMQServerControl}.
*/
public ObjectName getActiveMQServerObjectName() throws Exception {
- return ObjectName.getInstance(domain + ":" + getBrokerProperties());
+ return ObjectName.getInstance(getActiveMQServerName());
}
/**
@@ -91,7 +91,7 @@ public final class ObjectNameBuilder {
* @see AddressControl
*/
public ObjectName getAddressObjectName(final SimpleString address) throws Exception {
- return ObjectName.getInstance(String.format("%s:broker=%s,component=addresses,address=%s", domain, ObjectName.quote(brokerName), ObjectName.quote(address.toString())));
+ return ObjectName.getInstance(String.format("%s,component=addresses,address=%s", getActiveMQServerName(), ObjectName.quote(address.toString())));
}
/**
@@ -100,7 +100,7 @@ public final class ObjectNameBuilder {
* @see QueueControl
*/
public ObjectName getQueueObjectName(final SimpleString address, final SimpleString name, RoutingType routingType) throws Exception {
- return ObjectName.getInstance(String.format("%s:broker=%s,component=addresses,address=%s,subcomponent=queues,routing-type=%s,queue=%s", domain, ObjectName.quote(brokerName), ObjectName.quote(address.toString()), ObjectName.quote(routingType.toString().toLowerCase()), ObjectName.quote(name.toString())));
+ return ObjectName.getInstance(String.format("%s,component=addresses,address=%s,subcomponent=queues,routing-type=%s,queue=%s", getActiveMQServerName(), ObjectName.quote(address.toString()), ObjectName.quote(routingType.toString().toLowerCase()), ObjectName.quote(name.toString())));
}
@@ -110,7 +110,7 @@ public final class ObjectNameBuilder {
* @see DivertControl
*/
public ObjectName getDivertObjectName(final String name, String address) throws Exception {
- return ObjectName.getInstance(String.format("%s:broker=%s,component=addresses,address=%s,subcomponent=diverts,divert=%s", domain, ObjectName.quote(brokerName), ObjectName.quote(address.toString()), ObjectName.quote(name.toString())));
+ return ObjectName.getInstance(String.format("%s,component=addresses,address=%s,subcomponent=diverts,divert=%s", getActiveMQServerName(), ObjectName.quote(address.toString()), ObjectName.quote(name.toString())));
}
/**
@@ -150,15 +150,11 @@ public final class ObjectNameBuilder {
}
private ObjectName createObjectName(final String type, final String name) throws Exception {
- return ObjectName.getInstance(String.format("%s:broker=%s,component=%ss,name=%s", domain, ObjectName.quote(brokerName), type, ObjectName.quote(name)));
+ return ObjectName.getInstance(String.format("%s,component=%ss,name=%s", getActiveMQServerName(), type, ObjectName.quote(name)));
}
- private String getBrokerProperties() {
- if (jmxUseBrokerName && brokerName != null) {
- return String.format("broker=%s", ObjectName.quote(brokerName));
- } else {
- return "";
- }
+ private String getActiveMQServerName() {
+ return String.format("%s:broker=%s", domain, (jmxUseBrokerName && brokerName != null) ? ObjectName.quote(brokerName) : "artemis");
}
public ObjectName getManagementContextObjectName() throws Exception {
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/JMXDomainTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/JMXDomainTest.java
index fefdb7d..32e1175 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/JMXDomainTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/JMXDomainTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.activemq.artemis.tests.integration.management;
+import java.util.Arrays;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -28,11 +30,25 @@ import org.apache.activemq.artemis.core.remoting.impl.invm.TransportConstants;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.ActiveMQServers;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+@RunWith(value = Parameterized.class)
public class JMXDomainTest extends ManagementTestBase {
- ActiveMQServer server_0 = null;
- ActiveMQServer server_1 = null;
+ private ActiveMQServer server_0 = null;
+ private ActiveMQServer server_1 = null;
+ private boolean jmxUseBrokerName;
+
+ @Parameterized.Parameters(name = "jmxUseBrokerName={0}")
+ public static Collection<Object[]> getParams() {
+ return Arrays.asList(new Object[][] {{true}, {false}});
+ }
+
+ public JMXDomainTest(boolean jmxUseBrokerName) {
+ super();
+ this.jmxUseBrokerName = jmxUseBrokerName;
+ }
@Test
public void test2ActiveMQServersManagedFrom1MBeanServer() throws Exception {
@@ -42,13 +58,13 @@ public class JMXDomainTest extends ManagementTestBase {
Map<String, Object> params = new HashMap<>();
params.put(TransportConstants.SERVER_ID_PROP_NAME, 1);
- Configuration config_1 = createBasicConfig().addAcceptorConfiguration(new TransportConfiguration(InVMAcceptorFactory.class.getName(), params)).setJMXDomain(jmxDomain_1);
+ Configuration config_1 = createBasicConfig().addAcceptorConfiguration(new TransportConfiguration(InVMAcceptorFactory.class.getName(), params)).setJMXDomain(jmxDomain_1).setJMXUseBrokerName(jmxUseBrokerName);
server_0 = addServer(ActiveMQServers.newActiveMQServer(config_0, mbeanServer, false));
server_1 = addServer(ActiveMQServers.newActiveMQServer(config_1, mbeanServer, false));
ObjectNameBuilder builder_0 = ObjectNameBuilder.DEFAULT;
- ObjectNameBuilder builder_1 = ObjectNameBuilder.create(jmxDomain_1, "localhost");
+ ObjectNameBuilder builder_1 = ObjectNameBuilder.create(jmxDomain_1, "localhost", jmxUseBrokerName);
checkNoResource(builder_0.getActiveMQServerObjectName());
checkNoResource(builder_1.getActiveMQServerObjectName());