summaryrefslogtreecommitdiff
path: root/java/broker-plugins/management-jmx/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/broker-plugins/management-jmx/src')
-rw-r--r--java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ExchangeMBean.java2
-rw-r--r--java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java24
-rw-r--r--java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBean.java9
-rw-r--r--java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/QueueMBeanTest.java22
-rw-r--r--java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/VirtualHostManagerMBeanTest.java31
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