diff --git a/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java b/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java index 6378ebee6a..d21cd1701e 100644 --- a/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java +++ b/activemq-core/src/main/java/org/apache/activemq/broker/BrokerService.java @@ -919,7 +919,7 @@ public class BrokerService implements Service { Hashtable map = new Hashtable(); map.put("Type", "Broker"); map.put("BrokerName", JMXSupport.encodeObjectNamePart(getBrokerName())); - return new ObjectName("org.apache.activemq", map); + return new ObjectName(getManagementContext().getJmxDomainName(), map); } catch (Throwable e) { throw IOExceptionSupport.create("Invalid JMX broker name: " + brokerName, e); diff --git a/activemq-core/src/test/java/org/apache/activemq/xbean/ManagementContextXBeanConfigTest.java b/activemq-core/src/test/java/org/apache/activemq/xbean/ManagementContextXBeanConfigTest.java new file mode 100644 index 0000000000..12ac68c29e --- /dev/null +++ b/activemq-core/src/test/java/org/apache/activemq/xbean/ManagementContextXBeanConfigTest.java @@ -0,0 +1,73 @@ +/** + * + * Copyright 2005-2006 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.activemq.xbean; + +import java.net.URI; +import java.util.Hashtable; + +import javax.management.MBeanServer; +import javax.management.ObjectName; + +import junit.framework.TestCase; + +import org.apache.activemq.broker.BrokerFactory; +import org.apache.activemq.broker.BrokerService; +import org.apache.activemq.util.JMXSupport; + +/** + * + * @version $Revision: 1.1 $ + */ +public class ManagementContextXBeanConfigTest extends TestCase { + + protected BrokerService brokerService; + + public void testManagmentContextConfiguredCorrectly() throws Throwable { + + assertEquals(2011, brokerService.getManagementContext().getConnectorPort()); + assertEquals("test.domain", brokerService.getManagementContext().getJmxDomainName()); + + MBeanServer beanServer = brokerService.getManagementContext().getMBeanServer(); + + + // Make sure the broker is registered in the right jmx domain. + Hashtable map = new Hashtable(); + map.put("Type", "Broker"); + map.put("BrokerName", JMXSupport.encodeObjectNamePart("localhost")); + ObjectName on = new ObjectName("test.domain", map); + + Object value = beanServer.getAttribute(on, "TotalEnqueueCount"); + assertNotNull(value); + } + + protected void setUp() throws Exception { + brokerService = createBroker(); + brokerService.start(); + } + + protected void tearDown() throws Exception { + if (brokerService != null) { + brokerService.stop(); + } + } + + protected BrokerService createBroker() throws Exception { + String uri = "org/apache/activemq/xbean/management-context-test.xml"; + return BrokerFactory.createBroker(new URI("xbean:"+uri)); + } + +} diff --git a/activemq-core/src/test/resources/org/apache/activemq/xbean/management-context-test.xml b/activemq-core/src/test/resources/org/apache/activemq/xbean/management-context-test.xml new file mode 100644 index 0000000000..de0e6a59e7 --- /dev/null +++ b/activemq-core/src/test/resources/org/apache/activemq/xbean/management-context-test.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + +