You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2013/06/05 15:48:45 UTC
svn commit: r1489872 - in /qpid/trunk/qpid/java:
broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/
broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/
management/common/src/main/java/org/apache/qp...
Author: orudyy
Date: Wed Jun 5 13:48:44 2013
New Revision: 1489872
URL: http://svn.apache.org/r1489872
Log:
QPID-4908: Expose queue attributes MessageGroupKey and MessageGroupSharedGroups via queue MBean
Modified:
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java
qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/QueueMBeanTest.java
qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java
qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ServerInformation.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java
Modified: qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java?rev=1489872&r1=1489871&r2=1489872&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java Wed Jun 5 13:48:44 2013
@@ -662,4 +662,17 @@ public class QueueMBean extends AMQManag
final Number statistic = (Number) _queue.getStatistics().getStatistic(name);
return statistic == null ? Integer.valueOf(0) : statistic;
}
+
+ @Override
+ public String getMessageGroupKey()
+ {
+ return (String) _queue.getAttribute(Queue.MESSAGE_GROUP_KEY);
+ }
+
+ @Override
+ public boolean isMessageGroupSharedGroups()
+ {
+ Boolean value = (Boolean) _queue.getAttribute(Queue.MESSAGE_GROUP_SHARED_GROUPS);
+ return value == null ? false : value.booleanValue();
+ }
}
Modified: qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/QueueMBeanTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/QueueMBeanTest.java?rev=1489872&r1=1489871&r2=1489872&view=diff
==============================================================================
--- qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/QueueMBeanTest.java (original)
+++ qpid/trunk/qpid/java/broker-plugins/management-jmx/src/test/java/org/apache/qpid/server/jmx/mbeans/QueueMBeanTest.java Wed Jun 5 13:48:44 2013
@@ -436,4 +436,16 @@ public class QueueMBeanTest extends Qpid
byte[] data = (byte[]) comp.get(ManagedQueue.CONTENT);
assertEquals(messageSize, data.length);
}
+
+ public void testGetMessageGroupKey()
+ {
+ when(_mockQueue.getAttribute(Queue.MESSAGE_GROUP_KEY)).thenReturn(getTestName());
+ assertEquals("Unexpected message group key", getTestName(), _queueMBean.getMessageGroupKey());
+ }
+
+ public void testIsSharedMessageGroup()
+ {
+ when(_mockQueue.getAttribute(Queue.MESSAGE_GROUP_SHARED_GROUPS)).thenReturn(true);
+ assertEquals("Unexpected message group sharing", true, _queueMBean.isMessageGroupSharedGroups());
+ }
}
Modified: qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java?rev=1489872&r1=1489871&r2=1489872&view=diff
==============================================================================
--- qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java (original)
+++ qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java Wed Jun 5 13:48:44 2013
@@ -89,6 +89,8 @@ public interface ManagedQueue
static final String ATTR_FLOW_RESUME_CAPACITY = "FlowResumeCapacity";
static final String ATTR_EXCLUSIVE = "Exclusive";
static final String ATTR_ALT_EXCHANGE = "AlternateExchange";
+ static final String ATTR_SHARED_MESSAGE_GROUP = "MessageGroupSharedGroups";
+ static final String ATTR_MESSAGE_GROUP_KEY = "MessageGroupKey";
//All attribute names constant
static final List<String> QUEUE_ATTRIBUTES
@@ -116,7 +118,9 @@ public interface ManagedQueue
ATTR_FLOW_OVERFULL,
ATTR_FLOW_RESUME_CAPACITY,
ATTR_EXCLUSIVE,
- ATTR_ALT_EXCHANGE
+ ATTR_ALT_EXCHANGE,
+ ATTR_SHARED_MESSAGE_GROUP,
+ ATTR_MESSAGE_GROUP_KEY
))));
/**
@@ -309,13 +313,6 @@ public interface ManagedQueue
void setDescription(String string);
/**
- * Gets the queue type
- * @since Qpid JMX API 2.5
- */
- @MBeanAttribute(name="QueueType", description="Type of the queue e.g. standard, priority, etc")
- String getQueueType();
-
- /**
* Returns the current flow control FlowResumeCapacity of the queue in bytes.
*
* @since Qpid JMX API 1.6
@@ -385,6 +382,28 @@ public interface ManagedQueue
*/
String getAlternateExchange() throws IOException;
+
+ /**
+ * Gets the queue type
+ * @since Qpid JMX API 2.5
+ */
+ @MBeanAttribute(name="QueueType", description="Type of the queue e.g. standard, priority, etc")
+ String getQueueType();
+
+ /**
+ * Gets the message group key
+ * @since Qpid JMX API 2.7
+ */
+ @MBeanAttribute(name="MessageGroupKey", description="Message header name to hold message group value")
+ String getMessageGroupKey();
+
+ /**
+ * Gets the message group key
+ * @since Qpid JMX API 2.7
+ */
+ @MBeanAttribute(name="MessageGroupSharedGroups", description="Indicates C++ compatibility mode, the Broker enforces a looser guarantee, nameley that all the currently unacknowledged messages in a group will be sent to the same consumer. This means that only one consumer can be processing messages from a particular group at a given time. When the consumer acknowledges all of its acquired messages, then the broker may pass the next pending message from that group to a different consumer")
+ boolean isMessageGroupSharedGroups();
+
//********** Operations *****************//
Modified: qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ServerInformation.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ServerInformation.java?rev=1489872&r1=1489871&r2=1489872&view=diff
==============================================================================
--- qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ServerInformation.java (original)
+++ qpid/trunk/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ServerInformation.java Wed Jun 5 13:48:44 2013
@@ -46,7 +46,7 @@ public interface ServerInformation
* Qpid JMX API 1.1 can be assumed.
*/
int QPID_JMX_API_MAJOR_VERSION = 2;
- int QPID_JMX_API_MINOR_VERSION = 6;
+ int QPID_JMX_API_MINOR_VERSION = 7;
/**
Modified: qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java?rev=1489872&r1=1489871&r2=1489872&view=diff
==============================================================================
--- qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java (original)
+++ qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/systest/management/jmx/QueueManagementTest.java Wed Jun 5 13:48:44 2013
@@ -28,6 +28,7 @@ import org.apache.qpid.management.common
import org.apache.qpid.management.common.mbeans.ManagedQueue;
import org.apache.qpid.server.queue.AMQQueueFactory;
import org.apache.qpid.server.queue.NotificationCheckTest;
+import org.apache.qpid.server.queue.SimpleAMQQueue;
import org.apache.qpid.server.queue.SimpleAMQQueueTest;
import org.apache.qpid.test.client.destination.AddressBasedDestinationTest;
import org.apache.qpid.test.utils.JMXTestUtils;
@@ -635,6 +636,40 @@ public class QueueManagementTest extends
assertMessageIndicesOn(_sourceQueue, 1,2,3,4,5,6,13);
}
+ public void testGetMessageGroupKey() throws Exception
+ {
+ final String queueName = getName();
+ final ManagedBroker managedBroker = _jmxUtils.getManagedBroker(VIRTUAL_HOST);
+
+ final Object messageGroupKey = "test";
+ final Map<String, Object> arguments = Collections.singletonMap(SimpleAMQQueue.QPID_GROUP_HEADER_KEY, messageGroupKey);
+ managedBroker.createNewQueue(queueName, null, true, arguments);
+
+ final ManagedQueue managedQueue = _jmxUtils.getManagedQueue(queueName);
+
+ assertNotNull("Manager queue expected to be available", managedQueue);
+ assertEquals("Unexpected message group key", messageGroupKey, managedQueue.getMessageGroupKey());
+ assertEquals("Unexpected message group sharing", false, managedQueue.isMessageGroupSharedGroups());
+ }
+
+ public void testIsMessageGroupSharedGroups() throws Exception
+ {
+ final String queueName = getName();
+ final ManagedBroker managedBroker = _jmxUtils.getManagedBroker(VIRTUAL_HOST);
+
+ final Object messageGroupKey = "test";
+ final Map<String, Object> arguments = new HashMap<String, Object>(2);
+ arguments.put(SimpleAMQQueue.QPID_GROUP_HEADER_KEY, messageGroupKey);
+ arguments.put(SimpleAMQQueue.QPID_SHARED_MSG_GROUP, SimpleAMQQueue.SHARED_MSG_GROUP_ARG_VALUE);
+ managedBroker.createNewQueue(queueName, null, true, arguments);
+
+ final ManagedQueue managedQueue = _jmxUtils.getManagedQueue(queueName);
+
+ assertNotNull("Manager queue expected to be available", managedQueue);
+ assertEquals("Unexpected message group key", messageGroupKey, managedQueue.getMessageGroupKey());
+ assertEquals("Unexpected message group sharing", true, managedQueue.isMessageGroupSharedGroups());
+ }
+
@Override
public Message createNextMessage(Session session, int messageNumber) throws JMSException
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org