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