summaryrefslogtreecommitdiff
path: root/qpid/java/broker-plugins
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-06-06 23:12:19 +0000
committerAlex Rudyy <orudyy@apache.org>2013-06-06 23:12:19 +0000
commitcb03df252c59e38f20d4609094774115d50b83f1 (patch)
tree3e631b3879d329c2811e7b08ea2b6aa2e6892666 /qpid/java/broker-plugins
parentaf92a2fd6cecf4eb08cc6762af83c8d267a8539f (diff)
downloadqpid-python-cb03df252c59e38f20d4609094774115d50b83f1.tar.gz
QPID-4912: Allow setting queue binding arguments in exchange MBean
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1490468 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java7
-rw-r--r--qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java32
2 files changed, 21 insertions, 18 deletions
diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
index 56802d0403..3e1a47c431 100644
--- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
+++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java
@@ -261,8 +261,15 @@ public class ExchangeMBean extends AMQManagedObject implements ManagedExchange
{
final Map<String,Object> arguments = new HashMap<String, Object>();
+ createNewBinding(queueName, binding, arguments);
+ }
+
+ @Override
+ public void createNewBinding(String queueName, String binding, Map<String, Object> arguments) throws JMException
+ {
if(HEADERS_EXCHANGE_TYPE.equals(_exchange.getExchangeType()))
{
+ arguments = new HashMap<String, Object>(arguments);
final String[] bindings = binding.split(",");
for (int i = 0; i < bindings.length; i++)
{
diff --git a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java
index e350f80a25..e2b4567867 100644
--- a/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java
+++ b/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBeanTest.java
@@ -18,40 +18,29 @@
*/
package org.apache.qpid.server.jmx.mbeans;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.never;
-import static org.mockito.Matchers.isNull;
-import static org.mockito.Matchers.argThat;
import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.anyMap;
-
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import java.util.TreeMap;
import javax.management.JMException;
-import javax.management.ListenerNotFoundException;
-import javax.management.Notification;
-import javax.management.NotificationListener;
import javax.management.OperationsException;
+import junit.framework.TestCase;
+
import org.apache.qpid.server.jmx.ManagedObjectRegistry;
import org.apache.qpid.server.model.Binding;
import org.apache.qpid.server.model.Exchange;
-import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.Statistics;
import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.queue.NotificationCheck;
-import org.mockito.ArgumentMatcher;
-
-import junit.framework.TestCase;
public class ExchangeMBeanTest extends TestCase
{
@@ -126,6 +115,13 @@ public class ExchangeMBeanTest extends TestCase
verify(_mockExchange, never()).createBinding(anyString(), any(Queue.class), anyMap(), anyMap());
}
+ public void testCreateNewBindingWithArguments() throws Exception
+ {
+ Map<String, Object> arguments = Collections.<String, Object>singletonMap("x-filter-jms-selector", "ID='test'");
+ _exchangeMBean.createNewBinding(QUEUE1_NAME, BINDING1, arguments);
+ verify(_mockExchange).createBinding(BINDING1, _mockQueue1, arguments, Collections.<String, Object>emptyMap());
+ }
+
public void testRemoveBinding() throws Exception
{
Binding mockBinding1 = createBindingOnQueue(BINDING1, _mockQueue1);