diff options
Diffstat (limited to 'java/broker-plugins/management-jmx/src')
5 files changed, 71 insertions, 17 deletions
diff --git a/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java b/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java index 407da0fd3f..ed5e195043 100644 --- a/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java +++ b/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java @@ -166,7 +166,7 @@ public class ExchangeMBean extends AMQManagedObject implements ManagedExchange public boolean isAutoDelete() { - return _exchange.getLifetimePolicy() == LifetimePolicy.AUTO_DELETE; + return _exchange.getLifetimePolicy() != LifetimePolicy.PERMANENT; } public TabularData bindings() throws IOException, JMException diff --git a/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java b/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java index 1365ceb06a..b44a752312 100644 --- a/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java +++ b/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java @@ -50,6 +50,7 @@ import org.apache.qpid.server.jmx.ManagedObject; import org.apache.qpid.server.message.AMQMessageHeader; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.model.Exchange; +import org.apache.qpid.server.model.ExclusivityPolicy; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.model.QueueNotificationListener; @@ -194,7 +195,7 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN public boolean isAutoDelete() { - return _queue.getLifetimePolicy() == LifetimePolicy.AUTO_DELETE; + return _queue.getLifetimePolicy() != LifetimePolicy.PERMANENT; } public Long getMaximumMessageAge() @@ -264,12 +265,29 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN public boolean isExclusive() { - return (Boolean) _queue.getAttribute(Queue.EXCLUSIVE); + final Object attribute = _queue.getAttribute(Queue.EXCLUSIVE); + return attribute != null && attribute != ExclusivityPolicy.NONE; } public void setExclusive(boolean exclusive) { - _queue.setAttribute(Queue.EXCLUSIVE, isExclusive(), exclusive); + if(exclusive) + { + Object currentValue = _queue.getAttribute(Queue.EXCLUSIVE); + if(currentValue == null || currentValue == ExclusivityPolicy.NONE) + { + _queue.setAttribute(Queue.EXCLUSIVE, currentValue, ExclusivityPolicy.CONTAINER); + } + } + else + { + Object currentValue = _queue.getAttribute(Queue.EXCLUSIVE); + if(currentValue != null && currentValue != ExclusivityPolicy.NONE) + { + _queue.setAttribute(Queue.EXCLUSIVE, currentValue, ExclusivityPolicy.NONE); + } + } + } public void setAlternateExchange(String exchangeName) throws OperationsException diff --git a/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java b/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java index 2c88f83405..c39c3f74e9 100644 --- a/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java +++ b/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java @@ -181,8 +181,13 @@ public class VirtualHostManagerMBean extends AbstractStatisticsGatheringMBean<Vi throws IOException, JMException { final Map<String, Object> createArgs = processNewQueueArguments(queueName, owner, originalArguments); - getConfiguredObject().createQueue(queueName, State.ACTIVE, durable, false, LifetimePolicy.PERMANENT, 0l, - QueueArgumentsConverter.convertWireArgsToModel(createArgs)); + + final Map<String, Object> attributes = QueueArgumentsConverter.convertWireArgsToModel(createArgs); + attributes.put(Queue.NAME, queueName); + attributes.put(Queue.DURABLE, durable); + attributes.put(Queue.LIFETIME_POLICY, LifetimePolicy.PERMANENT); + + getConfiguredObject().createQueue(attributes); } diff --git a/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/QueueMBeanTest.java b/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/QueueMBeanTest.java index f94c206512..2874168ddf 100644 --- a/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/QueueMBeanTest.java +++ b/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/QueueMBeanTest.java @@ -40,6 +40,7 @@ import org.apache.qpid.server.jmx.ManagedObjectRegistry; import org.apache.qpid.server.jmx.mbeans.QueueMBean.GetMessageVisitor; import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.model.Exchange; +import org.apache.qpid.server.model.ExclusivityPolicy; import org.apache.qpid.server.model.LifetimePolicy; import org.apache.qpid.server.model.Queue; import org.apache.qpid.server.model.Statistics; @@ -154,7 +155,7 @@ public class QueueMBeanTest extends QpidTestCase public void testIsAutoDelete() throws Exception { - when(_mockQueue.getLifetimePolicy()).thenReturn(LifetimePolicy.AUTO_DELETE); + when(_mockQueue.getLifetimePolicy()).thenReturn(LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS); assertTrue(_queueMBean.isAutoDelete()); } @@ -224,22 +225,31 @@ public class QueueMBeanTest extends QpidTestCase testSetAttribute("flowResumeCapacity", Queue.QUEUE_FLOW_RESUME_SIZE_BYTES,1048576l , 2097152l); } + + /********** Other attributes **********/ + + public void testIsExclusive() throws Exception { - assertAttribute("exclusive", Boolean.TRUE, Queue.EXCLUSIVE); + when(_mockQueue.getAttribute(Queue.EXCLUSIVE)).thenReturn(ExclusivityPolicy.CONTAINER); + MBeanTestUtils.assertMBeanAttribute(_queueMBean, "exclusive", true); } public void testIsNotExclusive() throws Exception { - assertAttribute("exclusive", Boolean.FALSE, Queue.EXCLUSIVE); + when(_mockQueue.getAttribute(Queue.EXCLUSIVE)).thenReturn(ExclusivityPolicy.NONE); + MBeanTestUtils.assertMBeanAttribute(_queueMBean, "exclusive", false); } public void testSetExclusive() throws Exception { - testSetAttribute("exclusive", Queue.EXCLUSIVE, Boolean.FALSE , Boolean.TRUE); - } + when(_mockQueue.getAttribute(Queue.EXCLUSIVE)).thenReturn(ExclusivityPolicy.NONE); - /********** Other attributes **********/ + MBeanTestUtils.setMBeanAttribute(_queueMBean, "exclusive", Boolean.TRUE); + + verify(_mockQueue).setAttribute(Queue.EXCLUSIVE, ExclusivityPolicy.NONE, ExclusivityPolicy.CONTAINER); + + } public void testGetAlternateExchange() { diff --git a/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java b/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java index 4240dd5280..2dc2cb8d3b 100644 --- a/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java +++ b/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java @@ -39,6 +39,7 @@ import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.queue.AMQQueueFactory; import org.apache.qpid.server.queue.QueueArgumentsConverter; +import org.mockito.ArgumentCaptor; public class VirtualHostManagerMBeanTest extends TestCase { @@ -68,8 +69,15 @@ public class VirtualHostManagerMBeanTest extends TestCase public void testCreateQueueWithNoOwner() throws Exception { _virtualHostManagerMBean.createNewQueue(TEST_QUEUE_NAME, null, true); + ArgumentCaptor<Map> argsCaptor = ArgumentCaptor.forClass(Map.class); + + verify(_mockVirtualHost).createQueue(argsCaptor.capture()); + + Map actualAttributes = argsCaptor.getValue(); + assertEquals(TEST_QUEUE_NAME, actualAttributes.get(Queue.NAME)); + assertEquals(Boolean.TRUE,actualAttributes.get(Queue.DURABLE)); + assertEquals(null,actualAttributes.get(Queue.OWNER)); - verify(_mockVirtualHost).createQueue(TEST_QUEUE_NAME, State.ACTIVE, true, false, LifetimePolicy.PERMANENT, 0, EMPTY_ARGUMENT_MAP); } /** @@ -79,9 +87,15 @@ public class VirtualHostManagerMBeanTest extends TestCase public void testCreateQueueWithOwnerMappedThroughToDescription() throws Exception { _virtualHostManagerMBean.createNewQueue(TEST_QUEUE_NAME, TEST_OWNER, true); + ArgumentCaptor<Map> argsCaptor = ArgumentCaptor.forClass(Map.class); + + verify(_mockVirtualHost).createQueue(argsCaptor.capture()); - Map<String, Object> expectedArguments = Collections.singletonMap(Queue.DESCRIPTION, (Object)TEST_OWNER); - verify(_mockVirtualHost).createQueue(TEST_QUEUE_NAME, State.ACTIVE, true, false, LifetimePolicy.PERMANENT, 0, expectedArguments); + Map actualAttributes = argsCaptor.getValue(); + assertEquals(TEST_QUEUE_NAME,actualAttributes.get(Queue.NAME)); + assertEquals(Boolean.TRUE,actualAttributes.get(Queue.DURABLE)); + assertEquals(null,actualAttributes.get(Queue.OWNER)); + assertEquals(TEST_OWNER, actualAttributes.get(Queue.DESCRIPTION)); } public void testCreateQueueWithOwnerAndDescriptionDiscardsOwner() throws Exception @@ -89,8 +103,15 @@ public class VirtualHostManagerMBeanTest extends TestCase Map<String, Object> arguments = Collections.singletonMap(QueueArgumentsConverter.X_QPID_DESCRIPTION, (Object)TEST_DESCRIPTION); _virtualHostManagerMBean.createNewQueue(TEST_QUEUE_NAME, TEST_OWNER, true, arguments); - Map<String, Object> expectedArguments = Collections.singletonMap(Queue.DESCRIPTION, (Object)TEST_DESCRIPTION); - verify(_mockVirtualHost).createQueue(TEST_QUEUE_NAME, State.ACTIVE, true, false, LifetimePolicy.PERMANENT, 0, expectedArguments); + ArgumentCaptor<Map> argsCaptor = ArgumentCaptor.forClass(Map.class); + + verify(_mockVirtualHost).createQueue(argsCaptor.capture()); + + Map actualAttributes = argsCaptor.getValue(); + assertEquals(TEST_QUEUE_NAME,actualAttributes.get(Queue.NAME)); + assertEquals(Boolean.TRUE,actualAttributes.get(Queue.DURABLE)); + assertEquals(null,actualAttributes.get(Queue.OWNER)); + assertEquals(TEST_DESCRIPTION, actualAttributes.get(Queue.DESCRIPTION)); } public void testDeleteQueue() throws Exception |