Repository: activemq Updated Branches: refs/heads/trunk ec2a3c750 -> 7c2735d0f
https://issues.apache.org/jira/browse/AMQ-5317 fix and test Project: http://git-wip-us.apache.org/repos/asf/activemq/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/7c2735d0 Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/7c2735d0 Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/7c2735d0 Branch: refs/heads/trunk Commit: 7c2735d0f4af9cfcb5c94690d03e2a8a7cdf59bb Parents: ec2a3c7 Author: gtully <gary.tu...@gmail.com> Authored: Fri Aug 8 14:09:17 2014 +0100 Committer: gtully <gary.tu...@gmail.com> Committed: Fri Aug 8 14:09:46 2014 +0100 ---------------------------------------------------------------------- .../apache/activemq/broker/BrokerService.java | 4 +-- .../apache/activemq/broker/jmx/BrokerView.java | 2 +- .../apache/activemq/broker/jmx/MBeanTest.java | 30 ++++++++++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq/blob/7c2735d0/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java ---------------------------------------------------------------------- diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java index 50589b8..5c36034 100644 --- a/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java +++ b/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java @@ -2493,7 +2493,6 @@ public class BrokerService implements Service { List<TransportConnector> al = new ArrayList<TransportConnector>(); for (Iterator<TransportConnector> iter = getTransportConnectors().iterator(); iter.hasNext();) { TransportConnector connector = iter.next(); - connector.setBrokerService(this); al.add(startTransportConnector(connector)); } if (al.size() > 0) { @@ -2570,7 +2569,8 @@ public class BrokerService implements Service { } } - protected TransportConnector startTransportConnector(TransportConnector connector) throws Exception { + public TransportConnector startTransportConnector(TransportConnector connector) throws Exception { + connector.setBrokerService(this); connector.setTaskRunnerFactory(getTaskRunnerFactory()); MessageAuthorizationPolicy policy = getMessageAuthorizationPolicy(); if (policy != null) { http://git-wip-us.apache.org/repos/asf/activemq/blob/7c2735d0/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java ---------------------------------------------------------------------- diff --git a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java index 3f34768..3a9d10b 100755 --- a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java +++ b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/BrokerView.java @@ -355,7 +355,7 @@ public class BrokerView implements BrokerViewMBean { if (connector == null) { throw new NoSuchElementException("Not connector matched the given name: " + discoveryAddress); } - connector.start(); + brokerService.startTransportConnector(connector); return connector.getName(); } http://git-wip-us.apache.org/repos/asf/activemq/blob/7c2735d0/activemq-unit-tests/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java ---------------------------------------------------------------------- diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java index a47b7a9..55b283f 100644 --- a/activemq-unit-tests/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java +++ b/activemq-unit-tests/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java @@ -1362,6 +1362,36 @@ public class MBeanTest extends EmbeddedBrokerTestSupport { session.close(); } + public void testAddRemoveConnectorBrokerView() throws Exception { + + ObjectName brokerName = assertRegisteredObjectName(domain + ":type=Broker,brokerName=localhost"); + BrokerViewMBean brokerView = MBeanServerInvocationHandler.newProxyInstance(mbeanServer, brokerName, BrokerViewMBean.class, true); + + Map connectors = brokerView.getTransportConnectors(); + LOG.info("Connectors: " + connectors); + assertEquals("one connector", 1, connectors.size()); + + ConnectorViewMBean connector = getProxyToConnectionView("tcp"); + assertNotNull(connector); + + String name = connectors.keySet().iterator().next().toString(); + + brokerView.removeConnector(name); + + connectors = brokerView.getTransportConnectors(); + assertEquals("empty", 0, connectors.size()); + + name = brokerView.addConnector("tcp://0.0.0.0:0"); + + connector = getProxyToConnectionView("tcp"); + assertNotNull(connector); + + connectors = brokerView.getTransportConnectors(); + LOG.info("Connectors: " + connectors); + assertEquals("one connector", 1, connectors.size()); + assertTrue("name is in map: " + connectors.keySet(), connectors.keySet().contains(name)); + } + public void testConnectorView() throws Exception { ConnectorViewMBean connector = getProxyToConnectionView("tcp"); assertNotNull(connector);