Author: jstrachan
Date: Thu Aug 21 14:13:39 2008
New Revision: 687864

URL: http://svn.apache.org/viewvc?rev=687864&view=rev
Log:
further enhancement for AMQ-1904 to add helper method to extract the Map of all 
user properties

Modified:
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/CompositeDataHelper.java
    
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java

Modified: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/CompositeDataHelper.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/CompositeDataHelper.java?rev=687864&r1=687863&r2=687864&view=diff
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/CompositeDataHelper.java
 (original)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/jmx/CompositeDataHelper.java
 Thu Aug 21 14:13:39 2008
@@ -34,6 +34,11 @@
      */
     public static Map getTabularMap(CompositeData cdata, String fieldName) {
         Map map = new HashMap();
+        appendTabularMap(map, cdata, fieldName);
+        return map;
+    }
+
+    public static void appendTabularMap(Map map, CompositeData cdata, String 
fieldName) {
         Object tabularObject = cdata.get(fieldName);
         if (tabularObject instanceof TabularData) {
             TabularData tabularData = (TabularData) tabularObject;
@@ -44,6 +49,25 @@
                 map.put(key, value);
             }
         }
+    }
+
+    /**
+     * Returns a map of all the user properties in the given message [EMAIL 
PROTECTED] javax.management.openmbean.CompositeData}
+     * object
+     *
+     * @param cdata
+     * @return
+     */
+    public static Map getMessageUserProperties(CompositeData cdata) {
+        Map map = new HashMap();
+        appendTabularMap(map, cdata, CompositeDataConstants.STRING_PROPERTIES);
+        appendTabularMap(map, cdata, 
CompositeDataConstants.BOOLEAN_PROPERTIES);
+        appendTabularMap(map, cdata, CompositeDataConstants.BYTE_PROPERTIES);
+        appendTabularMap(map, cdata, CompositeDataConstants.SHORT_PROPERTIES);
+        appendTabularMap(map, cdata, CompositeDataConstants.INT_PROPERTIES);
+        appendTabularMap(map, cdata, CompositeDataConstants.LONG_PROPERTIES);
+        appendTabularMap(map, cdata, CompositeDataConstants.FLOAT_PROPERTIES);
+        appendTabularMap(map, cdata, CompositeDataConstants.DOUBLE_PROPERTIES);
         return map;
     }
 }

Modified: 
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java?rev=687864&r1=687863&r2=687864&view=diff
==============================================================================
--- 
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java
 (original)
+++ 
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/broker/jmx/MBeanTest.java
 Thu Aug 21 14:13:39 2008
@@ -188,6 +188,11 @@
             assertEquals("stringProperties size()", 1, 
stringProperties.size());
             assertEquals("stringProperties.MyHeader", "StringHeader" + i, 
stringProperties.get("MyStringHeader"));
 
+            Map properties = 
CompositeDataHelper.getMessageUserProperties(cdata);
+            assertEquals("properties size()", 2, properties.size());
+            assertEquals("properties.MyHeader", i, properties.get("MyHeader"));
+            assertEquals("properties.MyHeader", "StringHeader" + i, 
properties.get("MyStringHeader"));
+
             assertComplexData(cdata, "JMSXGroupSeq", 1234);
             assertComplexData(cdata, "JMSXGroupID", "MyGroupID");
             assertComplexData(cdata, "Text", "message:" + i);


Reply via email to