[jboss-cvs] JBoss Messaging SVN: r6659 - in trunk: src/main/org/jboss/messaging/core/management and 19 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue May 5 11:01:07 EDT 2009


Author: timfox
Date: 2009-05-05 11:01:07 -0400 (Tue, 05 May 2009)
New Revision: 6659

Removed:
   trunk/src/main/org/jboss/messaging/core/management/MessageInfo.java
   trunk/src/main/org/jboss/messaging/core/management/PairsInfo.java
   trunk/src/main/org/jboss/messaging/core/management/PropertiesInfo.java
   trunk/src/main/org/jboss/messaging/core/management/TransportConfigurationInfo.java
   trunk/src/main/org/jboss/messaging/jms/server/management/JMSMessageInfo.java
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/TopicControlUsingJMSTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlUsingCoreTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlUsingCoreTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/management/MessageInfoTest.java
Modified:
   trunk/src/main/org/jboss/messaging/core/client/management/impl/ManagementHelper.java
   trunk/src/main/org/jboss/messaging/core/management/AcceptorControlMBean.java
   trunk/src/main/org/jboss/messaging/core/management/AddressControlMBean.java
   trunk/src/main/org/jboss/messaging/core/management/BridgeControlMBean.java
   trunk/src/main/org/jboss/messaging/core/management/BroadcastGroupControlMBean.java
   trunk/src/main/org/jboss/messaging/core/management/ClusterConnectionControlMBean.java
   trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java
   trunk/src/main/org/jboss/messaging/core/management/ObjectNames.java
   trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
   trunk/src/main/org/jboss/messaging/core/management/RoleInfo.java
   trunk/src/main/org/jboss/messaging/core/management/impl/AcceptorControl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/AddressControl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/BridgeControl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/BroadcastGroupControl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/ClusterConnectionControl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
   trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareAddressControlWrapper.java
   trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareMessagingServerControlWrapper.java
   trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java
   trunk/src/main/org/jboss/messaging/core/message/Message.java
   trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
   trunk/src/main/org/jboss/messaging/core/messagecounter/impl/MessageCounterHelper.java
   trunk/src/main/org/jboss/messaging/jms/bridge/BridgeService.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java
   trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java
   trunk/src/main/org/jboss/messaging/jms/server/management/TopicControlMBean.java
   trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java
   trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java
   trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareJMSQueueControlWrapper.java
   trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareTopicControlWrapper.java
   trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
   trunk/tests/joram-tests/src/org/jboss/test/jms/JBossMessagingAdmin.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareAddressControlWrapperTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareMessagingServerControlWrapperTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareQueueControlWrapperTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/bridge/BridgeTestBase.java
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSMessagingProxy.java
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSQueueControlTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/TopicControlTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/AcceptorControlUsingCoreTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlUsingCoreTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlUsingCoreTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/ClusterConnectionControlTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/ClusterConnectionControlUsingCoreTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementHelperTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlUsingCoreTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/QueueDeployerTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/BindingImplTest.java
Log:
management refactoring

Modified: trunk/src/main/org/jboss/messaging/core/client/management/impl/ManagementHelper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/client/management/impl/ManagementHelper.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/client/management/impl/ManagementHelper.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -43,10 +43,9 @@
 public class ManagementHelper
 {
    // Constants -----------------------------------------------------
-   
+
    private static final Logger log = Logger.getLogger(ManagementHelper.class);
 
-
    public static final SimpleString HDR_RESOURCE_NAME = new SimpleString("_JBM_ResourceName");
 
    public static final SimpleString HDR_ATTRIBUTE = new SimpleString("_JBM_Attribute");
@@ -126,11 +125,11 @@
    private static JSONArray toJSONArray(final Object[] array) throws Exception
    {
       JSONArray jsonArray = new JSONArray();
-
+      
       for (int i = 0; i < array.length; i++)
       {
          Object parameter = array[i];
-
+         
          if (parameter instanceof Map)
          {
             Map<String, Object> map = (Map<String, Object>)parameter;
@@ -143,7 +142,17 @@
 
                Object val = entry.getValue();
 
-               checkType(val);
+               if (val != null)
+               {
+                  if (val.getClass().isArray())
+                  {                   
+                     val = toJSONArray((Object[])val);
+                  }
+                  else
+                  {
+                     checkType(val);
+                  }
+               }
 
                jsonObject.put(key, val);
             }
@@ -152,19 +161,26 @@
          }
          else
          {
-            Class clz = parameter.getClass();
-
-            if (clz.isArray())
+            if (parameter != null)
             {
-               Object[] innerArray = (Object[])parameter;
-
-               jsonArray.put(toJSONArray(innerArray));
+               Class clz = parameter.getClass();
+   
+               if (clz.isArray())
+               {
+                  Object[] innerArray = (Object[])parameter;
+   
+                  jsonArray.put(toJSONArray(innerArray));
+               }
+               else
+               {
+                  checkType(parameter);
+   
+                  jsonArray.put(parameter);
+               }
             }
             else
             {
-               checkType(parameter);
-
-               jsonArray.put(parameter);
+               jsonArray.put((Object)null);
             }
          }
       }
@@ -183,7 +199,7 @@
          if (val instanceof JSONArray)
          {
             Object[] inner = fromJSONArray((JSONArray)val);
-            
+
             array[i] = inner;
          }
          else if (val instanceof JSONObject)
@@ -193,12 +209,17 @@
             Map<String, Object> map = new HashMap<String, Object>();
 
             Iterator<String> iter = jsonObject.keys();
-
+            
             while (iter.hasNext())
             {
                String key = iter.next();
-
+               
                Object innerVal = jsonObject.get(key);
+               
+               if (innerVal instanceof JSONArray)
+               {
+                  innerVal = fromJSONArray(((JSONArray)innerVal));
+               }
 
                map.put(key, innerVal);
             }
@@ -219,9 +240,12 @@
       if (param instanceof Integer == false && param instanceof Long == false &&
           param instanceof Double == false &&
           param instanceof String == false &&
-          param instanceof Boolean == false)
+          param instanceof Boolean == false &&
+          param instanceof Byte == false &&
+          param instanceof Short == false)
       {
-         throw new IllegalArgumentException("Params for management operations must be of the following type: " + "int long double String boolean Map or array thereof");
+         throw new IllegalArgumentException("Params for management operations must be of the following type: " + "int long double String boolean Map or array thereof " +
+                                            " but found " + param.getClass().getName());
       }
    }
 
@@ -261,7 +285,7 @@
 
          JSONArray jsonArray = toJSONArray(new Object[] { result });
 
-         resultString = jsonArray.toString();
+         resultString = jsonArray.toString();                  
       }
       else
       {
@@ -270,11 +294,11 @@
 
       message.getBody().writeNullableString(resultString);
    }
-   
+
    public static Object[] getResults(final Message message) throws Exception
-   {      
+   {
       String jsonString = message.getBody().readNullableString();
-
+      
       if (jsonString != null)
       {
          JSONArray jsonArray = new JSONArray(jsonString);
@@ -292,7 +316,7 @@
    public static Object getResult(final Message message) throws Exception
    {
       Object[] res = getResults(message);
-      
+
       if (res != null)
       {
          return res[0];
@@ -302,7 +326,7 @@
          return null;
       }
    }
-     
+
    public static boolean hasOperationSucceeded(final Message message)
    {
       if (!isOperationResult(message))

Modified: trunk/src/main/org/jboss/messaging/core/management/AcceptorControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/AcceptorControlMBean.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/AcceptorControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,7 +22,7 @@
 
 package org.jboss.messaging.core.management;
 
-import javax.management.openmbean.TabularData;
+import java.util.Map;
 
 /**
  * A AcceptorMBean
@@ -40,5 +40,5 @@
 
    String getFactoryClassName();
 
-   TabularData getParameters();
+   Map<String, Object> getParameters();
 }

Modified: trunk/src/main/org/jboss/messaging/core/management/AddressControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/AddressControlMBean.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/AddressControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,7 +22,6 @@
 
 package org.jboss.messaging.core.management;
 
-import javax.management.openmbean.TabularData;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -36,7 +35,7 @@
 
    String getAddress();
 
-   TabularData getRoles() throws Exception;
+   Object[] getRoles() throws Exception;
    
    String[] getQueueNames() throws Exception;
 

Modified: trunk/src/main/org/jboss/messaging/core/management/BridgeControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/BridgeControlMBean.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/BridgeControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,7 +22,6 @@
 
 package org.jboss.messaging.core.management;
 
-import javax.management.openmbean.CompositeData;
 
 /**
  * A BridgeControlMBean
@@ -42,7 +41,7 @@
 
    String getTransformerClassName();
 
-   CompositeData getConnectorPair() throws Exception;
+   String[] getConnectorPair() throws Exception;
 
    String getDiscoveryGroupName();
 

Modified: trunk/src/main/org/jboss/messaging/core/management/BroadcastGroupControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/BroadcastGroupControlMBean.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/BroadcastGroupControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,7 +22,6 @@
 
 package org.jboss.messaging.core.management;
 
-import javax.management.openmbean.TabularData;
 
 /**
  * A BroadcastGroupControlMBean
@@ -42,5 +41,5 @@
 
    long getBroadcastPeriod();
    
-   TabularData getConnectorPairs();
+   Object[] getConnectorPairs();
 }

Modified: trunk/src/main/org/jboss/messaging/core/management/ClusterConnectionControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/ClusterConnectionControlMBean.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/ClusterConnectionControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -42,7 +42,7 @@
 
    int getMaxHops();
 
-   TabularData getStaticConnectorNamePairs();
+   Object[] getStaticConnectorNamePairs();
 
    String getDiscoveryGroupName();
 

Deleted: trunk/src/main/org/jboss/messaging/core/management/MessageInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/MessageInfo.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/MessageInfo.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,325 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.core.management;
-
-import static javax.management.openmbean.SimpleType.BOOLEAN;
-import static javax.management.openmbean.SimpleType.BYTE;
-import static javax.management.openmbean.SimpleType.INTEGER;
-import static javax.management.openmbean.SimpleType.LONG;
-import static javax.management.openmbean.SimpleType.STRING;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenDataException;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.TabularData;
-import javax.management.openmbean.TabularDataSupport;
-import javax.management.openmbean.TabularType;
-
-import org.jboss.messaging.core.logging.Logger;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public class MessageInfo
-{
-   // Constants -----------------------------------------------------
-
-   private static final Logger log = Logger.getLogger(MessageInfo.class);
-
-   public static final CompositeType TYPE;
-
-   private static final String MESSAGE_TYPE_NAME = "MessageInfo";
-
-   private static final String MESSAGE_TABULAR_TYPE_NAME = "MessageTabularInfo";
-
-   private static final String[] ITEM_NAMES = new String[] { "id",
-                                                            "destination",
-                                                            "durable",
-                                                            "timestamp",
-                                                            "type",
-                                                            "size",
-                                                            "priority",
-                                                            "expired",
-                                                            "expiration",
-                                                            "properties" };
-
-   private static final String[] ITEM_DESCRIPTIONS = new String[] { "Message ID",
-                                                                   "destination of the message",
-                                                                   "Is the message durable?",
-                                                                   "Timestamp of the message",
-                                                                   "Type of the message",
-                                                                   "Size of the encoded messag",
-                                                                   "Priority of the message",
-                                                                   "Is the message expired?",
-                                                                   "Expiration of the message",
-                                                                   "Properties of the message" };
-
-   private static final OpenType[] TYPES;
-
-   private static final TabularType TABULAR_TYPE;
-
-   static
-   {
-      try
-      {
-         TYPES = new OpenType[] { LONG,
-                                 STRING,
-                                 BOOLEAN,
-                                 LONG,
-                                 BYTE,
-                                 INTEGER,
-                                 BYTE,
-                                 BOOLEAN,
-                                 LONG,
-                                 PropertiesInfo.TABULAR_TYPE };
-         TYPE = new CompositeType(MESSAGE_TYPE_NAME, "Information for a Message", ITEM_NAMES, ITEM_DESCRIPTIONS, TYPES);
-         TABULAR_TYPE = new TabularType(MESSAGE_TABULAR_TYPE_NAME,
-                                        "Information for tabular MessageInfo",
-                                        TYPE,
-                                        new String[] { "id" });
-      }
-      catch (OpenDataException e)
-      {
-         throw new IllegalStateException(e);
-      }
-   }
-
-   // Attributes ----------------------------------------------------
-
-   private final long id;
-
-   private final String destination;
-
-   private final boolean durable;
-
-   private final long timestamp;
-
-   private final byte type;
-
-   private final int size;
-
-   private final byte priority;
-
-   private final boolean expired;
-
-   private final long expiration;
-
-   private PropertiesInfo properties;
-
-   // Static --------------------------------------------------------
-
-   public static TabularData toTabularData(final MessageInfo[] infos) throws OpenDataException
-   {
-      TabularData data = new TabularDataSupport(TABULAR_TYPE);
-      for (MessageInfo messageInfo : infos)
-      {
-         data.put(messageInfo.toCompositeData());
-      }
-      return data;
-   }
-
-   public static MessageInfo[] from(TabularData msgs)
-   {
-      Collection values = msgs.values();
-      List<MessageInfo> infos = new ArrayList<MessageInfo>();
-      for (Object object : values)
-      {
-         CompositeData compositeData = (CompositeData)object;
-         long id = (Long)compositeData.get("id");
-         String destination = (String)compositeData.get("destination");
-         boolean durable = (Boolean)compositeData.get("durable");
-         long timestamp = (Long)compositeData.get("timestamp");
-         byte type = (Byte)compositeData.get("type");
-         int size = (Integer)compositeData.get("size");
-         byte priority = (Byte)compositeData.get("priority");
-         boolean expired = (Boolean)compositeData.get("expired");
-         long expiration = (Long)compositeData.get("expiration");
-
-         TabularData properties = (TabularData)compositeData.get("properties");
-         PropertiesInfo propertiesInfo = PropertiesInfo.from(properties);
-         infos.add(new MessageInfo(id, destination, durable, timestamp, type, size, priority, expired, expiration, propertiesInfo));
-      }
-
-      return (MessageInfo[])infos.toArray(new MessageInfo[infos.size()]);
-   }
-
-   // Constructors --------------------------------------------------
-
-   public MessageInfo(final long id,
-                      final String destination,
-                      final boolean durable,
-                      final long timestamp,
-                      final byte type,
-                      final int size,
-                      final byte priority,
-                      final boolean expired,
-                      final long expiration)
-   {
-      this.id = id;
-      this.destination = destination;
-      this.durable = durable;
-      this.timestamp = timestamp;
-      this.type = type;
-      this.size = size;
-      this.priority = priority;
-      this.expired = expired;
-      this.expiration = expiration;
-      this.properties = new PropertiesInfo();
-   }
-
-   public MessageInfo(final long id,
-                      final String destination,
-                      final boolean durable,
-                      final long timestamp,
-                      final byte type,
-                      final int size,
-                      final byte priority,
-                      final boolean expired,
-                      final long expiration,
-                      final PropertiesInfo properties)
-   {
-      this.id = id;
-      this.destination = destination;
-      this.durable = durable;
-      this.timestamp = timestamp;
-      this.type = type;
-      this.size = size;
-      this.priority = priority;
-      this.expired = expired;
-      this.expiration = expiration;
-      this.properties = properties;
-   }
-
-   // Public --------------------------------------------------------
-
-   public long getID()
-   {
-      return id;
-   }
-
-   public String getDestination()
-   {
-      return destination;
-   }
-
-   public boolean isDurable()
-   {
-      return durable;
-   }
-
-   public long getTimestamp()
-   {
-      return timestamp;
-   }
-
-   public byte getType()
-   {
-      return type;
-   }
-
-   public int getSize()
-   {
-      return size;
-   }
-
-   public byte getPriority()
-   {
-      return priority;
-   }
-
-   public boolean isExpired()
-   {
-      return expired;
-   }
-
-   public long getExpiration()
-   {
-      return expiration;
-   }
-
-   public void putProperty(final String key, final String value)
-   {
-      properties.put(key, value);
-   }
-
-   public Map<String, String> getProperties()
-   {
-      return properties.entries();
-   }
-
-   public CompositeData toCompositeData()
-   {
-      try
-      {
-
-         return new CompositeDataSupport(TYPE, ITEM_NAMES, new Object[] { id,
-                                                                         destination,
-                                                                         durable,
-                                                                         timestamp,
-                                                                         type,
-                                                                         size,
-                                                                         priority,
-                                                                         expired,
-                                                                         expiration,
-                                                                         properties.toTabularData() });
-      }
-      catch (OpenDataException e)
-      {
-         log.error("Exception when converting a message to a CompositeData", e);
-         return null;
-      }
-   }
-
-   @Override
-   public String toString()
-   {
-      return "MessageInfo[id=" + id +
-             ", destination=" +
-             destination +
-             ", durable=" +
-             durable +
-             ", timestamp=" +
-             timestamp +
-             ", type=" +
-             type +
-             ", size=" +
-             size +
-             ", priority=" +
-             priority +
-             ", expired=" +
-             expired +
-             ", expiration=" +
-             expiration +
-             "]";
-   }
-}

Modified: trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -25,10 +25,6 @@
 import static javax.management.MBeanOperationInfo.ACTION;
 import static javax.management.MBeanOperationInfo.INFO;
 
-import java.util.List;
-
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.config.Configuration;
 
 /**
@@ -46,7 +42,7 @@
 
    boolean isStarted();
 
-   List<String> getInterceptorClassNames();
+   String[] getInterceptorClassNames();
 
    boolean isClustered();
 
@@ -167,7 +163,7 @@
    String[] listSessions(@Parameter(desc = "a connection ID", name = "connectionID")
    String connectionID) throws Exception;
 
-   TabularData getConnectors() throws Exception;
+   Object[] getConnectors() throws Exception;
 
    void sendQueueInfoToQueue(String queueName, String address) throws Exception;
 

Modified: trunk/src/main/org/jboss/messaging/core/management/ObjectNames.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/ObjectNames.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/ObjectNames.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -143,4 +143,6 @@
 
    // Inner classes -------------------------------------------------
 
+   
+   
 }

Deleted: trunk/src/main/org/jboss/messaging/core/management/PairsInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/PairsInfo.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/PairsInfo.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,136 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.core.management;
-
-import static javax.management.openmbean.SimpleType.STRING;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenDataException;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.TabularData;
-import javax.management.openmbean.TabularDataSupport;
-import javax.management.openmbean.TabularType;
-
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.utils.Pair;
-
-/**
- * Info for a Message property.
- * 
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public class PairsInfo
-{
-   // Constants -----------------------------------------------------
-
-   private static final Logger log = Logger.getLogger(PairsInfo.class);
-
-   public static final TabularType TABULAR_TYPE;
-
-   private static CompositeType ROW_TYPE;
-
-   static
-   {
-      try
-      {
-         ROW_TYPE = new CompositeType("Pair",
-                                      "Pair",
-                                      new String[] { "a", "b" },
-                                      new String[] { "First item of the pair", "Second item of the pair" },
-                                      new OpenType[] { STRING, STRING });
-         TABULAR_TYPE = new TabularType("PairInfo", "Pair", ROW_TYPE, new String[] { "a" });
-      }
-      catch (OpenDataException e)
-      {
-         throw new IllegalStateException(e);
-      }
-   }
-
-   public static List<Pair<String, String>> from(TabularData connectorInfos)
-   {
-      List<Pair<String, String>> pairs = new ArrayList<Pair<String, String>>();
-      Collection values = connectorInfos.values();
-      for (Object object : values)
-      {
-         CompositeData compositeData = (CompositeData)object;
-         pairs.add(new Pair<String, String>((String)compositeData.get("a"), (String)compositeData.get("b")));
-      }
-      return pairs;
-   }
-   
-   public static CompositeData toCompositeData(Pair<String, String> pair) throws OpenDataException
-   {
-      return new CompositeDataSupport(ROW_TYPE, new String[] { "a", "b" }, new Object[] { pair.a, pair.b });
-   }
-
-   public static TabularData toTabularData(List<Pair<String, String>> pairs)
-   {
-      PairsInfo info = new PairsInfo(pairs);
-      return info.toTabularData();
-   }
-
-   // Attributes ----------------------------------------------------
-
-   private final List<Pair<String, String>> pairs = new ArrayList<Pair<String, String>>();
-
-   // Private -------------------------------------------------------
-
-   private PairsInfo(List<Pair<String, String>> pairs)
-   {
-      if (pairs != null)
-      {
-         for (Pair<String, String> pair : pairs)
-         {
-            this.pairs.add(pair);
-         }
-      }
-   }
-
-   private TabularData toTabularData()
-   {
-      try
-      {
-         TabularDataSupport data = new TabularDataSupport(TABULAR_TYPE);
-         for (Pair<String, String> pair : pairs)
-         {
-            data.put(toCompositeData(pair));
-         }
-         return data;
-      }
-      catch (OpenDataException e)
-      {
-         log.error("Exception when converting a collection of pairs to a TabularData", e);
-         return null;
-      }
-   }
-
-}
\ No newline at end of file

Deleted: trunk/src/main/org/jboss/messaging/core/management/PropertiesInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/PropertiesInfo.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/PropertiesInfo.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,134 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.core.management;
-
-import static javax.management.openmbean.SimpleType.STRING;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenDataException;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.TabularData;
-import javax.management.openmbean.TabularDataSupport;
-import javax.management.openmbean.TabularType;
-
-import org.jboss.messaging.core.logging.Logger;
-
-/**
- * Info for a Message property.
- * 
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public class PropertiesInfo
-{
-   // Constants -----------------------------------------------------
-
-   private static final Logger log = Logger.getLogger(PropertiesInfo.class);
-
-   public static final TabularType TABULAR_TYPE;
-   private static CompositeType ROW_TYPE;
-
-   static
-   {
-      try
-      {
-         ROW_TYPE = new CompositeType("Property", "Property", new String[] {
-               "key", "value" }, new String[] { "Key of the property",
-               "Value of the property" }, new OpenType[] { STRING, STRING });
-         TABULAR_TYPE = new TabularType("PropertyInfo",
-               "Properties of the message", ROW_TYPE, new String[] { "key" });
-      } catch (OpenDataException e)
-      {
-         throw new IllegalStateException(e);
-      }
-   }
-
-   public static PropertiesInfo from(TabularData connectorInfos)
-   {
-      PropertiesInfo info = new PropertiesInfo();
-      Collection values = connectorInfos.values();
-      for (Object object : values)
-      {
-         CompositeData compositeData = (CompositeData)object;
-         info.put((String)compositeData.get("key"), (String)compositeData.get("value"));
-      }
-      return info;
-   }
-
-   // Attributes ----------------------------------------------------
-
-   private final Map<String, String> properties = new HashMap<String, String>();
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   public Map<String, String> entries()
-   {
-      return properties;
-   }
-
-   public void put(final String key, final String value)
-   {
-      properties.put(key, value);
-   }
-
-   public TabularData toTabularData()
-   {
-      try
-      {
-         TabularDataSupport data = new TabularDataSupport(TABULAR_TYPE);
-         for (Entry<String, String> entry : properties.entrySet())
-         {
-            data
-                  .put(new CompositeDataSupport(ROW_TYPE, new String[] { "key",
-                        "value" }, new Object[] { entry.getKey(),
-                        entry.getValue() }));
-         }
-         return data;
-      } catch (OpenDataException e)
-      {
-         log.error("Exception when converting a collection of properties to a TabularData", e);
-         return null;
-      }
-   }
-
-   public static TabularData toTabularData(Map<String, Object> params)
-   {
-      PropertiesInfo info = new PropertiesInfo();
-      for (Entry<String, Object> entry : params.entrySet())
-      {
-         info.put(entry.getKey(), entry.getValue().toString());
-      }
-      return info.toTabularData();
-   }  
-}
\ No newline at end of file

Modified: trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -25,8 +25,7 @@
 import static javax.management.MBeanOperationInfo.ACTION;
 import static javax.management.MBeanOperationInfo.INFO;
 
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
+import java.util.Map;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -41,7 +40,7 @@
    String getName();
 
    String getAddress();
-   
+
    long getPersistenceID();
 
    boolean isTemporary();
@@ -59,104 +58,89 @@
    int getDeliveringCount();
 
    int getMessagesAdded();
-   
+
    String getExpiryAddress();
-   
-   void setExpiryAddress(@Parameter(name = "expiryAddress", desc = "Expiry address of the queue") 
-                         String expiryAddres) 
-   throws Exception;
-   
+
+   void setExpiryAddress(@Parameter(name = "expiryAddress", desc = "Expiry address of the queue")
+   String expiryAddres) throws Exception;
+
    String getDeadLetterAddress();
-   
-   void setDeadLetterAddress(@Parameter(name = "deadLetterAddress", desc = "Dead-letter address of the queue") 
-                         String deadLetterAddress) 
-   throws Exception;
 
+   void setDeadLetterAddress(@Parameter(name = "deadLetterAddress", desc = "Dead-letter address of the queue")
+   String deadLetterAddress) throws Exception;
+
    boolean isBackup();
 
    // Operations ----------------------------------------------------
 
    @Operation(desc = "List the messages scheduled for delivery", impact = INFO)
-   public TabularData listScheduledMessages() throws Exception;
+   Map<String, Object>[] listScheduledMessages() throws Exception;
 
    @Operation(desc = "List all the messages in the queue", impact = INFO)
-   TabularData listAllMessages() throws Exception;
+   Map<String, Object>[] listAllMessages() throws Exception;
 
    @Operation(desc = "List all the messages in the queue matching the given filter", impact = INFO)
-   TabularData listMessages(
-         @Parameter(name = "filter", desc = "A message filter") String filter)
-         throws Exception;
+   Map<String, Object>[] listMessages(@Parameter(name = "filter", desc = "A message filter")
+   String filter) throws Exception;
 
    @Operation(desc = "Returns the number of the messages in the queue matching the given filter", impact = INFO)
-   int countMessages(
-         @Parameter(name = "filter", desc = "A message filter") String filter)
-         throws Exception;
+   int countMessages(@Parameter(name = "filter", desc = "A message filter")
+   String filter) throws Exception;
 
    @Operation(desc = "Remove all the messages from the queue", impact = ACTION)
    int removeAllMessages() throws Exception;
 
    @Operation(desc = "Remove the message corresponding to the given messageID", impact = ACTION)
-   boolean removeMessage(
-         @Parameter(name = "messageID", desc = "A message ID") long messageID)
-         throws Exception;
+   boolean removeMessage(@Parameter(name = "messageID", desc = "A message ID")
+   long messageID) throws Exception;
 
    @Operation(desc = "Remove the messages corresponding to the given filter (and returns the number of removed messages)", impact = ACTION)
-   int removeMatchingMessages(
-         @Parameter(name = "filter", desc = "A message filter") String filter)
-         throws Exception;
+   int removeMatchingMessages(@Parameter(name = "filter", desc = "A message filter")
+   String filter) throws Exception;
 
    @Operation(desc = "Remove the messages corresponding to the given filter (and returns the number of expired messages)", impact = ACTION)
-   int expireMessages(
-         @Parameter(name = "filter", desc = "A message filter") String filter)
-         throws Exception;
+   int expireMessages(@Parameter(name = "filter", desc = "A message filter")
+   String filter) throws Exception;
 
    @Operation(desc = "Remove the message corresponding to the given messageID", impact = ACTION)
-   boolean expireMessage(
-         @Parameter(name = "messageID", desc = "A message ID") long messageID)
-         throws Exception;
+   boolean expireMessage(@Parameter(name = "messageID", desc = "A message ID")
+   long messageID) throws Exception;
 
    @Operation(desc = "Move the message corresponding to the given messageID to another queue", impact = ACTION)
-   boolean moveMessage(
-         @Parameter(name = "messageID", desc = "A message ID") long messageID,
-         @Parameter(name = "otherQueueName", desc = "The name of the queue to move the message to") String otherQueueName)
-         throws Exception;
+   boolean moveMessage(@Parameter(name = "messageID", desc = "A message ID")
+   long messageID, @Parameter(name = "otherQueueName", desc = "The name of the queue to move the message to")
+   String otherQueueName) throws Exception;
 
    @Operation(desc = "Move the messages corresponding to the given filter (and returns the number of moved messages)", impact = ACTION)
-   int moveMatchingMessages(
-         @Parameter(name = "filter", desc = "A message filter") String filter,
-         @Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to") String otherQueueName)
-         throws Exception;
+   int moveMatchingMessages(@Parameter(name = "filter", desc = "A message filter")
+   String filter, @Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to")
+   String otherQueueName) throws Exception;
 
    @Operation(desc = "Move all the messages to another queue (and returns the number of moved messages)", impact = ACTION)
-   int moveAllMessages(
-         @Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to") String otherQueueName)
-         throws Exception;
+   int moveAllMessages(@Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to")
+   String otherQueueName) throws Exception;
 
    @Operation(desc = "Send the message corresponding to the given messageID to this queue's Dead Letter Address", impact = ACTION)
-   boolean sendMessageToDeadLetterAddress(
-         @Parameter(name = "messageID", desc = "A message ID") long messageID)
-         throws Exception;
-   
+   boolean sendMessageToDeadLetterAddress(@Parameter(name = "messageID", desc = "A message ID")
+   long messageID) throws Exception;
+
    int sendMessagesToDeadLetterAddress(String filterStr) throws Exception;
 
    @Operation(desc = "Change the priority of the message corresponding to the given messageID", impact = ACTION)
-   boolean changeMessagePriority(
-         @Parameter(name = "messageID", desc = "A message ID") long messageID,
-         @Parameter(name = "newPriority", desc = "the new priority (between 0 and 9)") int newPriority)
-         throws Exception;
+   boolean changeMessagePriority(@Parameter(name = "messageID", desc = "A message ID")
+   long messageID, @Parameter(name = "newPriority", desc = "the new priority (between 0 and 9)")
+   int newPriority) throws Exception;
 
    int changeMessagesPriority(String filter, int newPriority) throws Exception;
 
-   CompositeData listMessageCounter() throws Exception;
+   Object[] listMessageCounter() throws Exception;
 
    void resetMessageCounter() throws Exception;
 
    String listMessageCounterAsHTML() throws Exception;
 
-   TabularData listMessageCounterHistory() throws Exception;
+   Object[] listMessageCounterHistory() throws Exception;
 
    String listMessageCounterHistoryAsHTML() throws Exception;
 
-
-
 }

Modified: trunk/src/main/org/jboss/messaging/core/management/RoleInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/RoleInfo.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/RoleInfo.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,19 +22,22 @@
 
 package org.jboss.messaging.core.management;
 
+import static javax.management.openmbean.SimpleType.BOOLEAN;
+import static javax.management.openmbean.SimpleType.STRING;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
 import javax.management.openmbean.CompositeData;
 import javax.management.openmbean.CompositeDataSupport;
 import javax.management.openmbean.CompositeType;
 import javax.management.openmbean.OpenDataException;
 import javax.management.openmbean.OpenType;
-import static javax.management.openmbean.SimpleType.BOOLEAN;
-import static javax.management.openmbean.SimpleType.STRING;
 import javax.management.openmbean.TabularData;
 import javax.management.openmbean.TabularDataSupport;
 import javax.management.openmbean.TabularType;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -128,6 +131,27 @@
       return (RoleInfo[]) infos.toArray(new RoleInfo[infos.size()]);
    }
    
+   public static RoleInfo[] from(Object[] roles)
+   {
+      //Collection values = roles.values();
+      List<RoleInfo> infos = new ArrayList<RoleInfo>();
+      for (Object object : roles)
+      {
+         Map<String, Object> compositeData = (Map<String, Object>) object;
+         String name = (String) compositeData.get("name");
+         boolean send = (Boolean) compositeData.get("send");
+         boolean consume = (Boolean) compositeData.get("consume");
+         boolean createDurableQueue = (Boolean) compositeData.get("createDurableQueue");
+         boolean deleteDurableQueue = (Boolean) compositeData.get("deleteDurableQueue");
+         boolean createNonDurableQueue = (Boolean) compositeData.get("createNonDurableQueue");
+         boolean deleteNonDurableQueue = (Boolean) compositeData.get("deleteNonDurableQueue");
+         boolean manage = (Boolean) compositeData.get("manage");
+         infos.add(new RoleInfo(name, send, consume, createDurableQueue, deleteDurableQueue, createNonDurableQueue, deleteNonDurableQueue, manage));
+      }
+
+      return (RoleInfo[]) infos.toArray(new RoleInfo[infos.size()]);
+   }
+   
    // Constructors --------------------------------------------------
 
 

Deleted: trunk/src/main/org/jboss/messaging/core/management/TransportConfigurationInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/TransportConfigurationInfo.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/TransportConfigurationInfo.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,161 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.core.management;
-
-import static javax.management.openmbean.SimpleType.STRING;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenDataException;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.TabularData;
-import javax.management.openmbean.TabularDataSupport;
-import javax.management.openmbean.TabularType;
-
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.logging.Logger;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public class TransportConfigurationInfo
-{
-   // Constants -----------------------------------------------------
-
-   private static final Logger log = Logger.getLogger(TransportConfigurationInfo.class);
-
-   public static final CompositeType TYPE;
-
-   private static final String MESSAGE_TYPE_NAME = "TransportConfigurationInfo";
-
-   private static final String MESSAGE_TABULAR_TYPE_NAME = "TransportConfigurationTabularInfo";
-
-   private static final String[] ITEM_NAMES = new String[] { "name", "factoryClassName", "parameters" };
-
-   private static final String[] ITEM_DESCRIPTIONS = new String[] { "Name of the connector",
-                                                                   "Name of the Transport factory class",
-                                                                   "Parameters" };
-
-   private static final OpenType[] TYPES;
-
-   private static final TabularType TABULAR_TYPE;
-
-   static
-   {
-      try
-      {
-         TYPES = new OpenType[] { STRING, STRING, PropertiesInfo.TABULAR_TYPE };
-         TYPE = new CompositeType(MESSAGE_TYPE_NAME,
-                                  "Information for a TransportConfigurationInfo",
-                                  ITEM_NAMES,
-                                  ITEM_DESCRIPTIONS,
-                                  TYPES);
-         TABULAR_TYPE = new TabularType(MESSAGE_TABULAR_TYPE_NAME,
-                                        "Information for tabular TransportConfigurationInfo",
-                                        TYPE,
-                                        new String[] { "name", "factoryClassName" });
-      }
-      catch (OpenDataException e)
-      {
-         throw new IllegalStateException(e);
-      }
-   }
-
-   // Attributes ----------------------------------------------------
-
-   private final TransportConfiguration config;
-
-   // Static --------------------------------------------------------
-
-   public static TabularData toTabularData(final Collection<TransportConfiguration> configs) throws OpenDataException
-   {
-      TabularData data = new TabularDataSupport(TABULAR_TYPE);
-      for (TransportConfiguration config : configs)
-      {
-         data.put(new TransportConfigurationInfo(config).toCompositeData());
-      }
-      return data;
-   }
-
-   public static TransportConfiguration[] from(TabularData msgs)
-   {
-      Collection values = msgs.values();
-      List<TransportConfiguration> infos = new ArrayList<TransportConfiguration>();
-      for (Object object : values)
-      {
-         CompositeData compositeData = (CompositeData)object;
-         String name = (String)compositeData.get("name");
-         String factoryClassName = (String)compositeData.get("factoryClassName");
-
-         TabularData connectorData = (TabularData)compositeData.get("parameters");
-         PropertiesInfo params = PropertiesInfo.from(connectorData);
-
-         Map<String, Object> p = new HashMap<String, Object>(params.entries());
-         infos.add(new TransportConfiguration(factoryClassName, p, name));
-      }
-
-      return (TransportConfiguration[])infos.toArray(new TransportConfiguration[infos.size()]);
-   }
-
-   // Constructors --------------------------------------------------
-
-   public TransportConfigurationInfo(final TransportConfiguration config)
-   {
-      this.config = config;
-   }
-
-   // Public --------------------------------------------------------
-
-   public CompositeData toCompositeData()
-   {
-      try
-      {
-         return new CompositeDataSupport(TYPE,
-                                         ITEM_NAMES,
-                                         new Object[] { config.getName(),
-                                                       config.getFactoryClassName(),
-                                                       PropertiesInfo.toTabularData(config.getParams()) });
-      }
-      catch (OpenDataException e)
-      {
-         log.error("Exception when converting a TransportConfiguration to a CompositeData", e);
-         return null;
-      }
-   }
-
-   @Override
-   public String toString()
-   {
-      return "BroadcastGroupConfigurationInfo[config=" + config.toString() + "]";
-   }
-}

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/AcceptorControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/AcceptorControl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/AcceptorControl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,11 +22,10 @@
 
 package org.jboss.messaging.core.management.impl;
 
-import javax.management.openmbean.TabularData;
+import java.util.Map;
 
 import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.management.AcceptorControlMBean;
-import org.jboss.messaging.core.management.PropertiesInfo;
 import org.jboss.messaging.core.remoting.spi.Acceptor;
 
 /**
@@ -69,9 +68,9 @@
       return configuration.getName();
    }
 
-   public TabularData getParameters()
+   public Map<String, Object> getParameters()
    {
-      return PropertiesInfo.toTabularData(configuration.getParams());
+      return configuration.getParams();
    }
 
    public boolean isStarted()

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/AddressControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/AddressControl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/AddressControl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,8 +22,11 @@
 
 package org.jboss.messaging.core.management.impl;
 
+import java.util.Iterator;
+import java.util.Set;
+
+import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.management.AddressControlMBean;
-import org.jboss.messaging.core.management.RoleInfo;
 import org.jboss.messaging.core.postoffice.Binding;
 import org.jboss.messaging.core.postoffice.Bindings;
 import org.jboss.messaging.core.postoffice.PostOffice;
@@ -32,10 +35,6 @@
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.utils.SimpleString;
 
-import javax.management.openmbean.TabularData;
-import java.util.Iterator;
-import java.util.Set;
-
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
  * 
@@ -47,6 +46,8 @@
 
    // Constants -----------------------------------------------------
 
+   private static final Logger log = Logger.getLogger(AddressControl.class);
+
    // Attributes ----------------------------------------------------
 
    private final SimpleString address;
@@ -84,8 +85,8 @@
          Bindings bindings = postOffice.getBindingsForAddress(address);
          String[] queueNames = new String[bindings.getBindings().size()];
          int i = 0;
-         for (Binding binding: bindings.getBindings())
-         {           
+         for (Binding binding : bindings.getBindings())
+         {
             queueNames[i++] = binding.getUniqueName().toString();
          }
          return queueNames;
@@ -96,23 +97,25 @@
       }
    }
 
-   public TabularData getRoles() throws Exception
+   public Object[] getRoles() throws Exception
    {
       Set<Role> roles = securityRepository.getMatch(address.toString());
-      RoleInfo[] roleInfos = new RoleInfo[roles.size()];
+
+      Object[] objRoles = new Object[roles.size()];
+
       int i = 0;
       for (Role role : roles)
       {
-         roleInfos[i++] = new RoleInfo(role.getName(),
+         objRoles[i++] = new Object[] { role.getName(),
                                        CheckType.SEND.hasRole(role),
                                        CheckType.CONSUME.hasRole(role),
                                        CheckType.CREATE_DURABLE_QUEUE.hasRole(role),
                                        CheckType.DELETE_DURABLE_QUEUE.hasRole(role),
                                        CheckType.CREATE_NON_DURABLE_QUEUE.hasRole(role),
                                        CheckType.DELETE_NON_DURABLE_QUEUE.hasRole(role),
-                                       CheckType.MANAGE.hasRole(role));
+                                       CheckType.MANAGE.hasRole(role) };
       }
-      return RoleInfo.toTabularData(roleInfos);
+      return objRoles;
    }
 
    public synchronized void addRole(final String name,
@@ -125,7 +128,14 @@
                                     final boolean manage) throws Exception
    {
       Set<Role> roles = securityRepository.getMatch(address.toString());
-      Role newRole = new Role(name, send, consume, createDurableQueue, deleteDurableQueue, createNonDurableQueue, deleteNonDurableQueue, manage);
+      Role newRole = new Role(name,
+                              send,
+                              consume,
+                              createDurableQueue,
+                              deleteDurableQueue,
+                              createNonDurableQueue,
+                              deleteNonDurableQueue,
+                              manage);
       boolean added = roles.add(newRole);
       if (!added)
       {

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/BridgeControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/BridgeControl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/BridgeControl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,11 +22,8 @@
 
 package org.jboss.messaging.core.management.impl;
 
-import javax.management.openmbean.CompositeData;
-
 import org.jboss.messaging.core.config.cluster.BridgeConfiguration;
 import org.jboss.messaging.core.management.BridgeControlMBean;
-import org.jboss.messaging.core.management.PairsInfo;
 import org.jboss.messaging.core.server.cluster.Bridge;
 
 /**
@@ -59,9 +56,14 @@
 
    // BridgeControlMBean implementation ---------------------------
 
-   public CompositeData getConnectorPair() throws Exception
+   public String[] getConnectorPair() throws Exception
    {
-      return PairsInfo.toCompositeData(configuration.getConnectorPair());
+      String[] pair = new String[2];
+      
+      pair[0] = configuration.getConnectorPair().a;
+      pair[1] = configuration.getConnectorPair().b != null ? configuration.getConnectorPair().b : null;
+      
+      return pair;
    }
 
    public String getForwardingAddress()

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/BroadcastGroupControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/BroadcastGroupControl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/BroadcastGroupControl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,12 +22,10 @@
 
 package org.jboss.messaging.core.management.impl;
 
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.config.cluster.BroadcastGroupConfiguration;
 import org.jboss.messaging.core.management.BroadcastGroupControlMBean;
-import org.jboss.messaging.core.management.PairsInfo;
 import org.jboss.messaging.core.server.cluster.BroadcastGroup;
+import org.jboss.messaging.utils.Pair;
 
 /**
  * A BroadcastGroupControl
@@ -69,9 +67,22 @@
       return configuration.getBroadcastPeriod();
    }
 
-   public TabularData getConnectorPairs()
+   public Object[] getConnectorPairs()
    {
-      return PairsInfo.toTabularData(configuration.getConnectorInfos());
+      Object[] ret = new Object[configuration.getConnectorInfos().size()];
+      
+      int i = 0;
+      for (Pair<String, String> pair: configuration.getConnectorInfos())
+      {
+         String[] opair = new String[2];
+         
+         opair[0] = pair.a;
+         opair[1] = pair.b != null ? pair.b : null;
+         
+         ret[i++] = opair;
+      }
+      
+      return ret;      
    }
 
    public String getGroupAddress()

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/ClusterConnectionControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/ClusterConnectionControl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/ClusterConnectionControl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,12 +22,10 @@
 
 package org.jboss.messaging.core.management.impl;
 
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.config.cluster.ClusterConnectionConfiguration;
 import org.jboss.messaging.core.management.ClusterConnectionControlMBean;
-import org.jboss.messaging.core.management.PairsInfo;
 import org.jboss.messaging.core.server.cluster.ClusterConnection;
+import org.jboss.messaging.utils.Pair;
 
 /**
  * A ClusterConnectionControl
@@ -83,9 +81,22 @@
       return configuration.getRetryInterval();
    }
 
-   public TabularData getStaticConnectorNamePairs()
+   public Object[] getStaticConnectorNamePairs()
    {
-      return PairsInfo.toTabularData(configuration.getStaticConnectorNamePairs());
+      Object[] ret = new Object[configuration.getStaticConnectorNamePairs().size()];
+      
+      int i = 0;
+      for (Pair<String, String> pair: configuration.getStaticConnectorNamePairs())
+      {
+         String[] opair = new String[2];
+         
+         opair[0] = pair.a;
+         opair[1] = pair.b != null ? pair.b : null;
+         
+         ret[i++] = opair;
+      }
+      
+      return ret;            
    }
 
    public boolean isDuplicateDetection()

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/ManagementServiceImpl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -26,10 +26,8 @@
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -64,7 +62,6 @@
 import org.jboss.messaging.core.management.jmx.impl.ReplicationAwareAddressControlWrapper;
 import org.jboss.messaging.core.management.jmx.impl.ReplicationAwareMessagingServerControlWrapper;
 import org.jboss.messaging.core.management.jmx.impl.ReplicationAwareQueueControlWrapper;
-import org.jboss.messaging.core.message.impl.MessageImpl;
 import org.jboss.messaging.core.messagecounter.MessageCounter;
 import org.jboss.messaging.core.messagecounter.MessageCounterManager;
 import org.jboss.messaging.core.messagecounter.impl.MessageCounterManagerImpl;
@@ -119,15 +116,15 @@
    private MessagingServerControl messagingServerControl;
 
    private final MessageCounterManager messageCounterManager;
-   
+
    private final SimpleString managementNotificationAddress;
-   
+
    private final SimpleString managementAddress;
-   
+
    private final String managementClusterPassword;
-   
+
    private final long managementRequestTimeout;
-   
+
    private boolean started = false;
 
    private boolean messageCounterEnabled;
@@ -156,7 +153,7 @@
       messageCounterManager = new MessageCounterManagerImpl();
       messageCounterManager.setMaxDayCount(configuration.getMessageCounterMaxDayHistory());
       messageCounterManager.reschedule(configuration.getMessageCounterSamplePeriod());
-      
+
       replicationInvoker = new ReplicationOperationInvokerImpl(managementClusterPassword,
                                                                managementAddress,
                                                                managementRequestTimeout);
@@ -187,13 +184,13 @@
       this.securityRepository = securityRepository;
       this.storageManager = storageManager;
 
-      messagingServerControl = new MessagingServerControl(postOffice,                                                 
-                                                 configuration,
-                                                 resourceManager,
-                                                 remotingService,
-                                                 messagingServer,
-                                                 messageCounterManager,
-                                                 broadcaster);
+      messagingServerControl = new MessagingServerControl(postOffice,
+                                                          configuration,
+                                                          resourceManager,
+                                                          remotingService,
+                                                          messagingServer,
+                                                          messageCounterManager,
+                                                          broadcaster);
       ObjectName objectName = ObjectNames.getMessagingServerObjectName();
       registerInJMX(objectName, new ReplicationAwareMessagingServerControlWrapper(messagingServerControl,
                                                                                   replicationInvoker));
@@ -214,8 +211,7 @@
       ObjectName objectName = ObjectNames.getAddressObjectName(address);
       AddressControl addressControl = new AddressControl(address, postOffice, securityRepository);
 
-      registerInJMX(objectName, new ReplicationAwareAddressControlWrapper(addressControl,
-                                                                          replicationInvoker));
+      registerInJMX(objectName, new ReplicationAwareAddressControlWrapper(addressControl, replicationInvoker));
 
       registerInRegistry(ResourceNames.CORE_ADDRESS + address, addressControl);
 
@@ -233,7 +229,9 @@
       unregisterFromRegistry(ResourceNames.CORE_ADDRESS + address);
    }
 
-   public synchronized void registerQueue(final Queue queue, final SimpleString address, final StorageManager storageManager) throws Exception
+   public synchronized void registerQueue(final Queue queue,
+                                          final SimpleString address,
+                                          final StorageManager storageManager) throws Exception
    {
       QueueControl queueControl = new QueueControl(queue, address.toString(), postOffice, addressSettingsRepository);
       MessageCounter counter = new MessageCounter(queue.getName().toString(),
@@ -297,7 +295,8 @@
       unregisterFromRegistry(ResourceNames.CORE_ACCEPTOR + name);
    }
 
-   public synchronized void registerBroadcastGroup(BroadcastGroup broadcastGroup, BroadcastGroupConfiguration configuration) throws Exception
+   public synchronized void registerBroadcastGroup(BroadcastGroup broadcastGroup,
+                                                   BroadcastGroupConfiguration configuration) throws Exception
    {
       ObjectName objectName = ObjectNames.getBroadcastGroupObjectName(configuration.getName());
       BroadcastGroupControlMBean control = new BroadcastGroupControl(broadcastGroup, configuration);
@@ -312,7 +311,8 @@
       unregisterFromRegistry(ResourceNames.CORE_BROADCAST_GROUP + name);
    }
 
-   public synchronized void registerDiscoveryGroup(DiscoveryGroup discoveryGroup, DiscoveryGroupConfiguration configuration) throws Exception
+   public synchronized void registerDiscoveryGroup(DiscoveryGroup discoveryGroup,
+                                                   DiscoveryGroupConfiguration configuration) throws Exception
    {
       ObjectName objectName = ObjectNames.getDiscoveryGroupObjectName(configuration.getName());
       DiscoveryGroupControlMBean control = new DiscoveryGroupControl(discoveryGroup, configuration);
@@ -342,7 +342,8 @@
       unregisterFromRegistry(ResourceNames.CORE_BRIDGE + name);
    }
 
-   public synchronized void registerCluster(final ClusterConnection cluster, final ClusterConnectionConfiguration configuration) throws Exception
+   public synchronized void registerCluster(final ClusterConnection cluster,
+                                            final ClusterConnectionConfiguration configuration) throws Exception
    {
       ObjectName objectName = ObjectNames.getClusterConnectionObjectName(configuration.getName());
       ClusterConnectionControlMBean control = new ClusterConnectionControl(cluster, configuration);
@@ -362,7 +363,7 @@
       // a reply message is sent with the result stored in the message body.
       // we set its type to MessageImpl.OBJECT_TYPE so that I can be received
       // as an ObjectMessage when using JMS to send management message
-      ServerMessageImpl reply = new ServerMessageImpl(storageManager.generateUniqueID());      
+      ServerMessageImpl reply = new ServerMessageImpl(storageManager.generateUniqueID());
       reply.setBody(ChannelBuffers.dynamicBuffer(1024));
 
       SimpleString resourceName = (SimpleString)message.getProperty(ManagementHelper.HDR_RESOURCE_NAME);
@@ -372,19 +373,22 @@
       }
 
       SimpleString operation = (SimpleString)message.getProperty(ManagementHelper.HDR_OPERATION_NAME);
-      
+
       if (operation != null)
-      {         
+      {
          Object[] params = ManagementHelper.retrieveOperationParameters(message);
-                  
+
+         if (params == null)
+         {
+            params = new Object[0];
+         }
+
          try
          {
             Object result = invokeOperation(resourceName.toString(), operation.toString(), params);
-            
-            log.info("Result is " + result);
-            
+
             ManagementHelper.storeResult(reply, result);
-            
+
             reply.putBooleanProperty(ManagementHelper.HDR_OPERATION_SUCCEEDED, true);
          }
          catch (Exception e)
@@ -400,17 +404,18 @@
             {
                ManagementHelper.storeResult(message, exceptionMessage);
             }
-         }         
+         }
       }
       else
       {
          SimpleString attribute = (SimpleString)message.getProperty(ManagementHelper.HDR_ATTRIBUTE);
-         
+
          if (attribute != null)
-         {            
+         {
             try
             {
                Object result = getAttribute(resourceName.toString(), attribute.toString());
+
                ManagementHelper.storeResult(reply, result);
             }
             catch (Exception e)
@@ -426,7 +431,7 @@
                {
                   ManagementHelper.storeResult(message, exceptionMessage);
                }
-            }            
+            }
          }
       }
 
@@ -444,7 +449,7 @@
       {
          return;
       }
-      
+
       synchronized (mbeanServer)
       {
          unregisterFromJMX(objectName);
@@ -455,7 +460,7 @@
    public synchronized void registerInRegistry(final String resourceName, final Object managedResource)
    {
       unregisterFromRegistry(resourceName);
-      
+
       registry.put(resourceName, managedResource);
    }
 
@@ -525,7 +530,7 @@
       {
          messageCounterManager.start();
       }
-      
+
       started = true;
    }
 
@@ -535,9 +540,9 @@
 
       for (String resourceName : resourceNames)
       {
-         unregisterFromRegistry(resourceName);         
+         unregisterFromRegistry(resourceName);
       }
-      
+
       if (jmxManagementEnabled)
       {
          Set<ObjectName> names = mbeanServer.queryNames(ObjectName.getInstance(ObjectNames.DOMAIN + ":*"), null);
@@ -546,17 +551,17 @@
             mbeanServer.unregisterMBean(name);
          }
       }
-      
+
       messageCounterManager.stop();
-      
+
       messageCounterManager.resetAllCounters();
-      
+
       messageCounterManager.resetAllCounterHistories();
 
       messageCounterManager.clear();
-      
-  //    replicationInvoker.stop();
 
+      // replicationInvoker.stop();
+
       started = false;
    }
 
@@ -578,12 +583,12 @@
          // This needs to be synchronized since we need to ensure notifications are processed in strict sequence
          synchronized (this)
          {
-            //We also need to synchronize on the post office notification lock
-            //otherwise we can get notifications arriving in wrong order / missing
-            //if a notification occurs at same time as sendQueueInfoToQueue is processed
+            // We also need to synchronize on the post office notification lock
+            // otherwise we can get notifications arriving in wrong order / missing
+            // if a notification occurs at same time as sendQueueInfoToQueue is processed
             synchronized (postOffice.getNotificationLock())
             {
-               
+
                // First send to any local listeners
                for (NotificationListener listener : listeners)
                {
@@ -597,17 +602,18 @@
                      log.error("Failed to call listener", e);
                   }
                }
-   
+
                // Now send message
-   
+
                ServerMessage notificationMessage = new ServerMessageImpl(storageManager.generateUniqueID());
-   
+
                notificationMessage.setBody(ChannelBuffers.EMPTY_BUFFER);
-               // Notification messages are always durable so the user can choose whether to add a durable queue to consume
+               // Notification messages are always durable so the user can choose whether to add a durable queue to
+               // consume
                // them in
                notificationMessage.setDurable(true);
                notificationMessage.setDestination(managementNotificationAddress);
-   
+
                TypedProperties notifProps;
                if (notification.getProperties() != null)
                {
@@ -617,19 +623,19 @@
                {
                   notifProps = new TypedProperties();
                }
-   
+
                notifProps.putStringProperty(ManagementHelper.HDR_NOTIFICATION_TYPE,
                                             new SimpleString(notification.getType().toString()));
-   
+
                notifProps.putLongProperty(ManagementHelper.HDR_NOTIFICATION_TIMESTAMP, System.currentTimeMillis());
-   
+
                if (notification.getUID() != null)
                {
                   notifProps.putStringProperty(new SimpleString("foobar"), new SimpleString(notification.getUID()));
                }
-   
+
                notificationMessage.putTypedProperties(notifProps);
-   
+
                postOffice.route(notificationMessage, null);
             }
          }
@@ -646,12 +652,12 @@
       try
       {
          Object resource = registry.get(resourceName);
-         
+
          if (resource == null)
          {
             throw new IllegalArgumentException("Cannot find resource with name " + resourceName);
          }
-         
+
          Method method = null;
 
          try
@@ -680,12 +686,12 @@
    private Object invokeOperation(final String resourceName, final String operation, final Object[] params) throws Exception
    {
       Object resource = registry.get(resourceName);
-      
+
       if (resource == null)
       {
          throw new IllegalArgumentException("Cannot find resource with name " + resourceName);
       }
-      
+
       Method method = null;
 
       Method[] methods = resource.getClass().getMethods();
@@ -693,16 +699,29 @@
       {
          if (m.getName().equals(operation) && m.getParameterTypes().length == params.length)
          {
+            Class<?>[] paramTypes = m.getParameterTypes();
+
+            for (int i = 0; i < paramTypes.length; i++)
+            {
+               if (params[i].getClass() != paramTypes[i])
+               {
+                  continue;
+               }
+            }
+
             method = m;
+
+            break;
          }
       }
+
       if (method == null)
       {
          throw new IllegalArgumentException("no operation " + operation + "/" + params.length);
       }
-      
+
       Object result = method.invoke(resource, params);
-      
+
       return result;
    }
 

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -39,7 +39,6 @@
 import javax.management.NotificationEmitter;
 import javax.management.NotificationFilter;
 import javax.management.NotificationListener;
-import javax.management.openmbean.TabularData;
 import javax.transaction.xa.Xid;
 
 import org.jboss.messaging.core.config.Configuration;
@@ -48,7 +47,6 @@
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.management.MessagingServerControlMBean;
 import org.jboss.messaging.core.management.NotificationType;
-import org.jboss.messaging.core.management.TransportConfigurationInfo;
 import org.jboss.messaging.core.messagecounter.MessageCounterManager;
 import org.jboss.messaging.core.messagecounter.impl.MessageCounterManagerImpl;
 import org.jboss.messaging.core.postoffice.PostOffice;
@@ -154,9 +152,9 @@
       return configuration.getConnectionScanPeriod();
    }
 
-   public List<String> getInterceptorClassNames()
+   public String[] getInterceptorClassNames()
    {
-      return configuration.getInterceptorClassNames();
+      return configuration.getInterceptorClassNames().toArray(new String[configuration.getInterceptorClassNames().size()]);
    }
 
    public int getJournalBufferReuseSize()
@@ -464,10 +462,25 @@
       return sessionIDs;
    }
 
-   public TabularData getConnectors() throws Exception
+   public Object[] getConnectors() throws Exception
    {
       Collection<TransportConfiguration> connectorConfigurations = configuration.getConnectorConfigurations().values();
-      return TransportConfigurationInfo.toTabularData(connectorConfigurations);
+      
+      Object[] ret = new Object[connectorConfigurations.size()];
+      
+      int i = 0;
+      for (TransportConfiguration config: connectorConfigurations)
+      {
+         Object[] tc = new Object[3];
+         
+         tc[0] = config.getName();
+         tc[1] = config.getFactoryClassName();
+         tc[2] = config.getParams();
+         
+         ret[i++] = tc;
+      }
+      
+      return ret;
    }
 
    public void sendQueueInfoToQueue(final String queueName, final String address) throws Exception

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -23,23 +23,19 @@
 package org.jboss.messaging.core.management.impl;
 
 import java.util.List;
+import java.util.Map;
 
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.filter.Filter;
 import org.jboss.messaging.core.filter.impl.FilterImpl;
-import org.jboss.messaging.core.management.MessageCounterInfo;
-import org.jboss.messaging.core.management.MessageInfo;
 import org.jboss.messaging.core.management.QueueControlMBean;
+import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.messagecounter.MessageCounter;
 import org.jboss.messaging.core.messagecounter.impl.MessageCounterHelper;
 import org.jboss.messaging.core.postoffice.Binding;
 import org.jboss.messaging.core.postoffice.PostOffice;
 import org.jboss.messaging.core.server.MessageReference;
 import org.jboss.messaging.core.server.Queue;
-import org.jboss.messaging.core.server.ServerMessage;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.core.settings.impl.AddressSettings;
 import org.jboss.messaging.utils.SimpleString;
@@ -60,7 +56,7 @@
    private final Queue queue;
 
    private final String address;
-   
+
    private final PostOffice postOffice;
 
    private final HierarchicalRepository<AddressSettings> addressSettingsRepository;
@@ -88,7 +84,7 @@
    {
       this.counter = counter;
    }
-   
+
    // QueueControlMBean implementation ------------------------------
 
    public String getName()
@@ -100,7 +96,7 @@
    {
       return address;
    }
-   
+
    public String getFilter()
    {
       Filter filter = queue.getFilter();
@@ -156,7 +152,7 @@
    public String getDeadLetterAddress()
    {
       AddressSettings addressSettings = addressSettingsRepository.getMatch(address);
-      
+
       if (addressSettings != null && addressSettings.getDeadLetterAddress() != null)
       {
          return addressSettings.getDeadLetterAddress().toString();
@@ -180,7 +176,7 @@
    public String getExpiryAddress()
    {
       AddressSettings addressSettings = addressSettingsRepository.getMatch(address);
-      
+
       if (addressSettings != null && addressSettings.getExpiryAddress() != null)
       {
          return addressSettings.getExpiryAddress().toString();
@@ -201,68 +197,38 @@
       }
    }
 
-   public TabularData listAllMessages() throws Exception
+   public Map<String, Object>[] listAllMessages() throws Exception
    {
       return listMessages(null);
    }
 
-   public TabularData listScheduledMessages() throws Exception
+   public Map<String, Object>[] listScheduledMessages() throws Exception
    {
       List<MessageReference> refs = queue.getScheduledMessages();
-      MessageInfo[] infos = new MessageInfo[refs.size()];
-      for (int i = 0; i < refs.size(); i++)
+      Map<String, Object>[] messages = new Map[refs.size()];
+      int i = 0;
+      for (MessageReference ref : refs)
       {
-         MessageReference ref = refs.get(i);
-         ServerMessage message = ref.getMessage();
-         MessageInfo info = new MessageInfo(message.getMessageID(),
-                                            message.getDestination().toString(),
-                                            message.isDurable(),
-                                            message.getTimestamp(),
-                                            message.getType(),
-                                            message.getEncodeSize(),
-                                            message.getPriority(),
-                                            message.isExpired(),
-                                            message.getExpiration());
-         for (SimpleString key : message.getPropertyNames())
-         {
-            Object value = message.getProperty(key);
-            String valueStr = value == null ? null : value.toString();
-            info.putProperty(key.toString(), valueStr);
-         }
-         infos[i] = info;
+         Message message = ref.getMessage();
+         messages[i++] = message.toMap();
       }
-      return MessageInfo.toTabularData(infos);
+      return messages;
    }
 
-   public TabularData listMessages(final String filterStr) throws Exception
+   public Map[] listMessages(final String filterStr) throws Exception
    {
       try
       {
          Filter filter = FilterImpl.createFilter(filterStr);
          List<MessageReference> refs = queue.list(filter);
-         MessageInfo[] infos = new MessageInfo[refs.size()];
-         for (int i = 0; i < refs.size(); i++)
+         Map<String, Object>[] messages = new Map[refs.size()];
+         int i = 0;
+         for (MessageReference ref : refs)
          {
-            MessageReference ref = refs.get(i);
-            ServerMessage message = ref.getMessage();
-            MessageInfo info = new MessageInfo(message.getMessageID(),
-                                               message.getDestination().toString(),
-                                               message.isDurable(),
-                                               message.getTimestamp(),
-                                               message.getType(),
-                                               message.getEncodeSize(),
-                                               message.getPriority(),
-                                               message.isExpired(),
-                                               message.getExpiration());
-            for (SimpleString key : message.getPropertyNames())
-            {
-               Object value = message.getProperty(key);
-               String valueStr = value == null ? null : value.toString();
-               info.putProperty(key.toString(), valueStr);
-            }
-            infos[i] = info;
+            Message message = ref.getMessage();
+            messages[i++] = message.toMap();
          }
-         return MessageInfo.toTabularData(infos);
+         return messages;
       }
       catch (MessagingException e)
       {
@@ -304,7 +270,7 @@
    public int removeMatchingMessages(final String filterStr) throws Exception
    {
       Filter filter = FilterImpl.createFilter(filterStr);
-      
+
       return queue.deleteMatchingReferences(filter);
    }
 
@@ -318,7 +284,7 @@
       try
       {
          Filter filter = FilterImpl.createFilter(filterStr);
-         
+
          return queue.expireReferences(filter);
       }
       catch (MessagingException e)
@@ -330,7 +296,7 @@
    public boolean moveMessage(final long messageID, final String otherQueueName) throws Exception
    {
       Binding binding = postOffice.getBinding(new SimpleString(otherQueueName));
-      
+
       if (binding == null)
       {
          throw new IllegalArgumentException("No queue found for " + otherQueueName);
@@ -342,9 +308,9 @@
    public int moveMatchingMessages(final String filterStr, final String otherQueueName) throws Exception
    {
       Filter filter = FilterImpl.createFilter(filterStr);
-      
+
       Binding binding = postOffice.getBinding(new SimpleString(otherQueueName));
-      
+
       if (binding == null)
       {
          throw new IllegalArgumentException("No queue found for " + otherQueueName);
@@ -358,15 +324,18 @@
       return moveMatchingMessages(null, otherQueueName);
    }
 
-   public int sendMessagesToDeadLetterAddress(String filterStr) throws Exception
+   public int sendMessagesToDeadLetterAddress(final String filterStr) throws Exception
    {
-      TabularData messages = listMessages(filterStr);
-      MessageInfo[] infos = MessageInfo.from(messages);
-      for (MessageInfo messageInfo : infos)
+      Filter filter = filterStr == null ? null : new FilterImpl(new SimpleString(filterStr));
+
+      List<MessageReference> refs = queue.list(filter);
+
+      for (MessageReference ref : refs)
       {
-         sendMessageToDeadLetterAddress(messageInfo.getID());
+         sendMessageToDeadLetterAddress(ref.getMessage().getMessageID());
       }
-      return infos.length;
+
+      return refs.size();
    }
 
    public boolean sendMessageToDeadLetterAddress(final long messageID) throws Exception
@@ -374,15 +343,18 @@
       return queue.sendMessageToDeadLetterAddress(messageID);
    }
 
-   public int changeMessagesPriority(String filter, int newPriority) throws Exception
+   public int changeMessagesPriority(String filterStr, int newPriority) throws Exception
    {
-      TabularData messages = listMessages(filter);
-      MessageInfo[] infos = MessageInfo.from(messages);
-      for (MessageInfo messageInfo : infos)
+      Filter filter = filterStr == null ? null : new FilterImpl(new SimpleString(filterStr));
+
+      List<MessageReference> refs = queue.list(filter);
+
+      for (MessageReference ref : refs)
       {
-         changeMessagePriority(messageInfo.getID(), newPriority);
+         changeMessagePriority(ref.getMessage().getMessageID(), newPriority);
       }
-      return infos.length;
+
+      return refs.size();
    }
 
    public boolean changeMessagePriority(final long messageID, final int newPriority) throws Exception
@@ -395,11 +367,20 @@
       return queue.changeReferencePriority(messageID, (byte)newPriority);
    }
 
-   public CompositeData listMessageCounter()
+   public Object[] listMessageCounter()
    {
-      return MessageCounterInfo.toCompositeData(counter);
+      Object[] counterData = new Object[] { counter.getDestinationName(),
+                                           counter.getDestinationSubscription(),
+                                           counter.isDestinationDurable(),
+                                           counter.getCount(),
+                                           counter.getCountDelta(),
+                                           counter.getMessageCount(),
+                                           counter.getMessageCountDelta(),
+                                           counter.getLastAddedMessageTime(),
+                                           counter.getLastUpdate() };
+      return counterData;
    }
-   
+
    public void resetMessageCounter()
    {
       counter.resetCounter();
@@ -410,7 +391,7 @@
       return MessageCounterHelper.listMessageCounterAsHTML(new MessageCounter[] { counter });
    }
 
-   public TabularData listMessageCounterHistory() throws Exception
+   public Object[] listMessageCounterHistory() throws Exception
    {
       return MessageCounterHelper.listMessageCounterHistory(counter);
    }
@@ -420,7 +401,6 @@
       return MessageCounterHelper.listMessageCounterHistoryAsHTML(new MessageCounter[] { counter });
    }
 
-
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareAddressControlWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareAddressControlWrapper.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareAddressControlWrapper.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -23,7 +23,6 @@
 package org.jboss.messaging.core.management.jmx.impl;
 
 import javax.management.MBeanInfo;
-import javax.management.openmbean.TabularData;
 
 import org.jboss.messaging.core.management.AddressControlMBean;
 import org.jboss.messaging.core.management.ReplicationOperationInvoker;
@@ -37,7 +36,8 @@
  * @author <a href="jmesnil at redhat.com">Jeff Mesnil</a>
  *
  */
-public class ReplicationAwareAddressControlWrapper extends ReplicationAwareStandardMBeanWrapper implements AddressControlMBean
+public class ReplicationAwareAddressControlWrapper extends ReplicationAwareStandardMBeanWrapper implements
+         AddressControlMBean
 {
 
    // Constants -----------------------------------------------------
@@ -53,7 +53,9 @@
    public ReplicationAwareAddressControlWrapper(final AddressControl localAddressControl,
                                                 final ReplicationOperationInvoker replicationInvoker) throws Exception
    {
-      super(ResourceNames.CORE_ADDRESS + localAddressControl.getAddress(), AddressControlMBean.class, replicationInvoker);
+      super(ResourceNames.CORE_ADDRESS + localAddressControl.getAddress(),
+            AddressControlMBean.class,
+            replicationInvoker);
 
       this.localAddressControl = localAddressControl;
    }
@@ -70,7 +72,7 @@
       return localAddressControl.getQueueNames();
    }
 
-   public TabularData getRoles() throws Exception
+   public Object[] getRoles() throws Exception
    {
       return localAddressControl.getRoles();
    }
@@ -81,15 +83,23 @@
    }
 
    public void addRole(final String name,
-                                    final boolean send,
-                                    final boolean consume,
-                                    final boolean createDurableQueue,
-                                    final boolean deleteDurableQueue,
-                                    final boolean createNonDurableQueue,
-                                    final boolean deleteNonDurableQueue,
-                                    final boolean manage) throws Exception
+                       final boolean send,
+                       final boolean consume,
+                       final boolean createDurableQueue,
+                       final boolean deleteDurableQueue,
+                       final boolean createNonDurableQueue,
+                       final boolean deleteNonDurableQueue,
+                       final boolean manage) throws Exception
    {
-      replicationAwareInvoke("addRole", name, send, consume, createDurableQueue, deleteDurableQueue, createNonDurableQueue, deleteNonDurableQueue, manage);
+      replicationAwareInvoke("addRole",
+                             name,
+                             send,
+                             consume,
+                             createDurableQueue,
+                             deleteDurableQueue,
+                             createNonDurableQueue,
+                             deleteNonDurableQueue,
+                             manage);
    }
 
    // StandardMBean overrides ---------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareMessagingServerControlWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareMessagingServerControlWrapper.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareMessagingServerControlWrapper.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,10 +22,7 @@
 
 package org.jboss.messaging.core.management.jmx.impl;
 
-import java.util.List;
-
 import javax.management.MBeanInfo;
-import javax.management.openmbean.TabularData;
 
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.management.MessagingServerControlMBean;
@@ -89,7 +86,7 @@
       return localControl.getConnectionScanPeriod();
    }
 
-   public List<String> getInterceptorClassNames()
+   public String[] getInterceptorClassNames()
    {
       return localControl.getInterceptorClassNames();
    }
@@ -148,7 +145,7 @@
    {
       return localControl.getScheduledThreadPoolMaxSize();
    }
-   
+
    public int getThreadPoolMaxSize()
    {
       return localControl.getThreadPoolMaxSize();
@@ -234,7 +231,7 @@
       return localControl.listSessions(connectionID);
    }
 
-   public TabularData getConnectors() throws Exception
+   public Object[] getConnectors() throws Exception
    {
       return localControl.getConnectors();
    }

Modified: trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,6 +22,8 @@
 
 package org.jboss.messaging.core.management.jmx.impl;
 
+import java.util.Map;
+
 import javax.management.MBeanInfo;
 import javax.management.openmbean.CompositeData;
 import javax.management.openmbean.TabularData;
@@ -141,12 +143,12 @@
       return localQueueControl.isTemporary();
    }
 
-   public TabularData listAllMessages() throws Exception
+   public Map<String, Object>[] listAllMessages() throws Exception
    {
       return localQueueControl.listAllMessages();
    }
 
-   public CompositeData listMessageCounter() throws Exception
+   public Object[] listMessageCounter() throws Exception
    {
       return localQueueControl.listMessageCounter();
    }
@@ -161,7 +163,7 @@
       return localQueueControl.listMessageCounterAsHTML();
    }
 
-   public TabularData listMessageCounterHistory() throws Exception
+   public Object[] listMessageCounterHistory() throws Exception
    {
       return localQueueControl.listMessageCounterHistory();
    }
@@ -171,7 +173,7 @@
       return localQueueControl.listMessageCounterHistoryAsHTML();
    }
 
-   public TabularData listMessages(final String filter) throws Exception
+   public Map<String, Object>[] listMessages(final String filter) throws Exception
    {
       return localQueueControl.listMessages(filter);
    }
@@ -181,7 +183,7 @@
       return localQueueControl.countMessages(filter);
    }
 
-   public TabularData listScheduledMessages() throws Exception
+   public Map<String, Object>[] listScheduledMessages() throws Exception
    {
       return localQueueControl.listScheduledMessages();
    }

Modified: trunk/src/main/org/jboss/messaging/core/message/Message.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/Message.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/message/Message.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -23,6 +23,7 @@
 package org.jboss.messaging.core.message;
 
 import java.io.InputStream;
+import java.util.Map;
 import java.util.Set;
 
 import org.jboss.messaging.core.remoting.spi.MessagingBuffer;
@@ -137,6 +138,8 @@
    
    Set<SimpleString> getPropertyNames();
    
+   Map<String, Object> toMap();
+   
    // Body
    // ---------------------------------------------------------------------------------
    

Modified: trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -28,6 +28,8 @@
 import static org.jboss.messaging.utils.DataConstants.SIZE_LONG;
 
 import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Set;
 
 import org.jboss.messaging.core.buffers.ChannelBuffers;
@@ -98,8 +100,7 @@
 
    /** Used on LargeMessages */
    private InputStream bodyInputStream;
-
-     
+   
    // Constructors --------------------------------------------------
 
    protected MessageImpl()
@@ -342,7 +343,24 @@
       this.bodyInputStream = bodyInputStream;
    }
 
-
+   public Map<String, Object> toMap()
+   {
+      Map<String, Object> map = new HashMap<String, Object>();
+      
+      map.put("MessageID", messageID);
+      map.put("Destination", destination);
+      map.put("Type", type);
+      map.put("Durable", durable);
+      map.put("Expiration", expiration);
+      map.put("Timestamp", timestamp);
+      map.put("Priority", priority);
+      for (SimpleString propName: properties.getPropertyNames())
+      {
+         map.put(propName.toString(), properties.getProperty(propName));
+      }
+      return map;      
+   }
+     
    
    // Properties
    // ---------------------------------------------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/core/messagecounter/impl/MessageCounterHelper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/messagecounter/impl/MessageCounterHelper.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/core/messagecounter/impl/MessageCounterHelper.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -50,21 +50,25 @@
 
    // Static --------------------------------------------------------
 
-   public static TabularData listMessageCounterHistory(final MessageCounter counter) throws Exception
+   public static Object[] listMessageCounterHistory(final MessageCounter counter) throws Exception
    {
-      List<DayCounter> history = counter.getHistory();
-      DayCounterInfo[] infos = new DayCounterInfo[history.size()];
-      for (int i = 0; i < infos.length; i++)
-      {
-         DayCounter dayCounter = history.get(i);
-         int[] counters = dayCounter.getCounters();
-         GregorianCalendar date = dayCounter.getDate();
-
-         DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT);
-         String strData = dateFormat.format(date.getTime());
-         infos[i] = new DayCounterInfo(strData, counters);
-      }
-      return DayCounterInfo.toTabularData(infos);
+//      List<DayCounter> history = counter.getHistory();
+//      DayCounterInfo[] infos = new DayCounterInfo[history.size()];
+//      for (int i = 0; i < infos.length; i++)
+//      {
+//         DayCounter dayCounter = history.get(i);
+//         int[] counters = dayCounter.getCounters();
+//         GregorianCalendar date = dayCounter.getDate();
+//
+//         DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT);
+//         String strData = dateFormat.format(date.getTime());
+//         infos[i] = new DayCounterInfo(strData, counters);
+//      }
+//      return DayCounterInfo.toTabularData(infos);
+      
+      //TODO
+      
+      return new Object[0];
    }
    
    public static String listMessageCounterAsHTML(MessageCounter[] counters)

Modified: trunk/src/main/org/jboss/messaging/jms/bridge/BridgeService.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/bridge/BridgeService.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/jms/bridge/BridgeService.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -40,6 +40,7 @@
 public class BridgeService implements BridgeMBean
 {
    private static final Logger log = Logger.getLogger(BridgeService.class);
+   
    private JMSBridge bridge;
    
    private String sourceDestinationLookup;

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -17,8 +17,10 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 
 import javax.jms.DeliveryMode;
 import javax.jms.Destination;
@@ -89,7 +91,41 @@
    public static final String JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST = "JBM_BRIDGE_MSG_ID_LIST";
 
    public static final byte TYPE = 0;
+   
+   public static Map<String, Object> coreMaptoJMSMap(final Map<String, Object> coreMessage)
+   {
+      Map<String, Object> jmsMessage = new HashMap<String, Object>();
 
+      String deliveryMode = (Boolean)coreMessage.get("Durable") ? "PERSISTENT" : "NON_PERSISTENT";
+      byte priority = (Byte)coreMessage.get("Priority");
+      long timestamp = (Long)coreMessage.get("Timestamp");
+      long expiration = (Long)coreMessage.get("Expiration");
+
+      jmsMessage.put("JMSPriority", priority);
+      jmsMessage.put("JMSTimestamp", timestamp);
+      jmsMessage.put("JMSExpiration", expiration);
+      jmsMessage.put("JMSDeliveryMode", deliveryMode);
+
+      for (Map.Entry<String, Object> entry : coreMessage.entrySet())
+      {
+         if (entry.getKey().equals("MessageID") || entry.getKey().equals("Destination") ||
+             entry.getKey().equals("Type") ||
+             entry.getKey().equals("Durable") ||
+             entry.getKey().equals("Expiration") ||
+             entry.getKey().equals("Timestamp") ||
+             entry.getKey().equals("Priority"))
+         {
+            // Ignore
+         }
+         else
+         {
+            jmsMessage.put(entry.getKey(), entry.getValue());
+         }
+      }
+      
+      return jmsMessage;
+   }
+
    // Static --------------------------------------------------------
 
    private static final HashSet<String> reservedIdentifiers = new HashSet<String>();

Deleted: trunk/src/main/org/jboss/messaging/jms/server/management/JMSMessageInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/JMSMessageInfo.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/JMSMessageInfo.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,321 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.jms.server.management;
-
-import static javax.management.openmbean.SimpleType.INTEGER;
-import static javax.management.openmbean.SimpleType.LONG;
-import static javax.management.openmbean.SimpleType.STRING;
-
-import java.util.List;
-import java.util.Map;
-
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenDataException;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.TabularData;
-import javax.management.openmbean.TabularDataSupport;
-import javax.management.openmbean.TabularType;
-
-import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.management.MessageInfo;
-import org.jboss.messaging.core.management.PropertiesInfo;
-import org.jboss.messaging.core.server.ServerMessage;
-import org.jboss.messaging.jms.client.JBossMessage;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public class JMSMessageInfo
-{
-   // Constants -----------------------------------------------------
-
-   private static final Logger log = Logger.getLogger(JMSMessageInfo.class);
-
-   public static final CompositeType TYPE;
-
-   private static final String MESSAGE_TYPE_NAME = "JMSMessageInfo";
-
-   private static final String MESSAGE_TABULAR_TYPE_NAME = "JMSMessageTabularInfo";
-
-   private static final String[] ITEM_NAMES = new String[] { "JMSMessageID",
-                                                            "JMSCorrelationID",
-                                                            "JMSDeliveryMode",
-                                                            "JMSPriority",
-                                                            "JMSReplyTo",
-                                                            "JMSTimestamp",
-                                                            "JMSType",
-                                                            "expiration",
-                                                            "properties" };
-
-   private static final String[] ITEM_DESCRIPTIONS = new String[] { "Message ID",
-                                                                   "Correlation ID",
-                                                                   "Delivery Mode",
-                                                                   "Priority",
-                                                                   "Reply To",
-                                                                   "Timestamp",
-                                                                   "JMS Type",
-                                                                   "Expiration",
-                                                                   "Properties" };
-
-   private static final OpenType[] TYPES;
-
-   private static final TabularType TABULAR_TYPE;
-
-   static
-   {
-      try
-      {
-         TYPES = new OpenType[] { STRING,
-                                 STRING,
-                                 STRING,
-                                 INTEGER,
-                                 STRING,
-                                 LONG,
-                                 STRING,
-                                 LONG,
-                                 PropertiesInfo.TABULAR_TYPE };
-         TYPE = new CompositeType(MESSAGE_TYPE_NAME,
-                                  "Information for a JMS Message",
-                                  ITEM_NAMES,
-                                  ITEM_DESCRIPTIONS,
-                                  TYPES);
-         TABULAR_TYPE = new TabularType(MESSAGE_TABULAR_TYPE_NAME,
-                                        "Information for tabular JMSMessageInfo",
-                                        TYPE,
-                                        new String[] { "JMSMessageID" });
-      }
-      catch (OpenDataException e)
-      {
-         throw new IllegalStateException(e);
-      }
-   }
-
-   // Attributes ----------------------------------------------------
-
-   private final String messageID;
-
-   private final String correlationID;
-
-   private final String deliveryMode;
-
-   private final int priority;
-
-   private final String replyTo;
-
-   private final long timestamp;
-
-   private final long expiration;
-
-   private final String jmsType;
-
-   private PropertiesInfo properties;
-
-   // Static --------------------------------------------------------
-
-   public static TabularData toTabularData(JMSMessageInfo[] infos) throws OpenDataException
-   {
-      TabularData data = new TabularDataSupport(TABULAR_TYPE);
-      for (JMSMessageInfo messageInfo : infos)
-      {
-         data.put(messageInfo.toCompositeData());
-      }
-      return data;
-   }
-
-   public static TabularData toTabularData(List<JMSMessageInfo> infos)
-   {
-      TabularData data = new TabularDataSupport(TABULAR_TYPE);
-      for (JMSMessageInfo messageInfo : infos)
-      {
-         data.put(messageInfo.toCompositeData());
-      }
-      return data;
-   }
-
-   public static JMSMessageInfo fromServerMessage(ServerMessage message)
-   {
-      String messageID = message.getProperty(JBossMessage.JBM_MESSAGE_ID).toString();
-      SimpleString simpleCorrelationID = (SimpleString)message.getProperty(JBossMessage.CORRELATIONID_HEADER_NAME);
-      String correlationID = (simpleCorrelationID == null) ? null : simpleCorrelationID.toString();
-      SimpleString simpleJMSType = (SimpleString)message.getProperty(JBossMessage.TYPE_HEADER_NAME);
-      String jmsType = (simpleJMSType == null) ? null : simpleJMSType.toString();
-      String deliveryMode = message.isDurable() ? "PERSISTENT" : "NON_PERSISTENT";
-      int priority = message.getPriority();
-      SimpleString replyAddress = (SimpleString)message.getProperty(JBossMessage.REPLYTO_HEADER_NAME);
-      String replyTo = (replyAddress == null) ? null : replyAddress.toString();
-      long timestamp = message.getTimestamp();
-      long expiration = message.getExpiration();
-
-      JMSMessageInfo info = new JMSMessageInfo(messageID,
-                                               correlationID,
-                                               deliveryMode,
-                                               priority,
-                                               replyTo,
-                                               timestamp,
-                                               expiration,
-                                               jmsType);
-      for (SimpleString key : message.getPropertyNames())
-      {
-         info.putProperty(key.toString(), message.getProperty(key).toString());
-      }
-      return info;
-   }
-
-   public static JMSMessageInfo fromCoreMessage(MessageInfo coreInfo)
-   {
-      String messageID = coreInfo.getProperties().get(JBossMessage.JBM_MESSAGE_ID.toString());
-      String simpleCorrelationID = coreInfo.getProperties().get(JBossMessage.CORRELATIONID_HEADER_NAME.toString());
-      String correlationID = (simpleCorrelationID == null) ? null : simpleCorrelationID.toString();
-      String simpleJMSType = coreInfo.getProperties().get(JBossMessage.TYPE_HEADER_NAME.toString());
-      String jmsType = (simpleJMSType == null) ? null : simpleJMSType.toString();
-      String deliveryMode = coreInfo.isDurable() ? "PERSISTENT" : "NON_PERSISTENT";
-      int priority = coreInfo.getPriority();
-      String replyAddress = coreInfo.getProperties().get(JBossMessage.REPLYTO_HEADER_NAME.toString());
-      String replyTo = (replyAddress == null) ? null : replyAddress.toString();
-      long timestamp = coreInfo.getTimestamp();
-      long expiration = coreInfo.getExpiration();
-
-      JMSMessageInfo info = new JMSMessageInfo(messageID,
-                                               correlationID,
-                                               deliveryMode,
-                                               priority,
-                                               replyTo,
-                                               timestamp,
-                                               expiration,
-                                               jmsType);
-      for (String key : coreInfo.getProperties().keySet())
-      {
-         info.putProperty(key.toString(), coreInfo.getProperties().get(key));
-      }
-      return info;
-   }
-
-   // Constructors --------------------------------------------------
-
-   public JMSMessageInfo(final String messageID,
-                         final String correlationID,
-                         final String deliveryMode,
-                         final int priority,
-                         final String replyTo,
-                         final long timestamp,
-                         final long expiration,
-                         final String jmsType)
-   {
-      this.messageID = messageID;
-      this.correlationID = correlationID;
-      this.deliveryMode = deliveryMode;
-      this.priority = priority;
-      this.replyTo = replyTo;
-      this.timestamp = timestamp;
-      this.expiration = expiration;
-      this.jmsType = jmsType;
-      this.properties = new PropertiesInfo();
-   }
-
-   // Public --------------------------------------------------------
-
-   public String getJMSMessageID()
-   {
-      return messageID;
-   }
-
-   public String getJMSCorrelationID()
-   {
-      return correlationID;
-   }
-
-   public String getJMSDeliveryMode()
-   {
-      return deliveryMode;
-   }
-
-   public int getJMSPriority()
-   {
-      return priority;
-   }
-
-   public String getJMSReplyTo()
-   {
-      return replyTo;
-   }
-
-   public long getJMSTimestamp()
-   {
-      return timestamp;
-   }
-
-   public long getExpiration()
-   {
-      return expiration;
-   }
-
-   public String getJMSType()
-   {
-      return jmsType;
-   }
-
-   public void putProperty(final String key, final String value)
-   {
-      properties.put(key, value);
-   }
-
-   public Map<String, String> getProperties()
-   {
-      return properties.entries();
-   }
-
-   public CompositeData toCompositeData()
-   {
-      try
-      {
-         return new CompositeDataSupport(TYPE, ITEM_NAMES, new Object[] { messageID,
-                                                                         correlationID,
-                                                                         deliveryMode,
-                                                                         priority,
-                                                                         replyTo,
-                                                                         timestamp,
-                                                                         jmsType,
-                                                                         expiration,
-                                                                         properties.toTabularData() });
-      }
-      catch (OpenDataException e)
-      {
-         log.error("Exception when converting a JMS Message to a CompositeData", e);
-         return null;
-      }
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -25,8 +25,7 @@
 import static javax.management.MBeanOperationInfo.ACTION;
 import static javax.management.MBeanOperationInfo.INFO;
 
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
+import java.util.Map;
 
 import org.jboss.messaging.core.management.Operation;
 import org.jboss.messaging.core.management.Parameter;
@@ -40,17 +39,19 @@
 public interface JMSQueueControlMBean extends DestinationControlMBean
 {
    // Attributes ----------------------------------------------------
-   
+
    String getName();
-   
+
    String getExpiryAddress();
-   
-   void setExpiryAddress(@Parameter(name = "expiryAddress", desc = "Expiry address of the queue") String expiryAddress) throws Exception;
 
+   void setExpiryAddress(@Parameter(name = "expiryAddress", desc = "Expiry address of the queue")
+   String expiryAddress) throws Exception;
+
    String getDeadLetterAddress();
-   
-   void setDeadLetterAddress(@Parameter(name = "deadLetterAddress", desc = "Dead-letter address of the queue") String deadLetterAddress) throws Exception;
 
+   void setDeadLetterAddress(@Parameter(name = "deadLetterAddress", desc = "Dead-letter address of the queue")
+   String deadLetterAddress) throws Exception;
+
    int getMessagesAdded();
 
    boolean isTemporary();
@@ -66,75 +67,63 @@
    int getDeliveringCount();
 
    // Operations ----------------------------------------------------
-   
+
    @Operation(desc = "List all messages in the queue", impact = INFO)
-   TabularData listAllMessages() throws Exception;
+   Map<String, Object>[] listAllMessages() throws Exception;
 
    @Operation(desc = "List all messages in the queue which matches the filter", impact = INFO)
-   TabularData listMessages(
-         @Parameter(name = "filter", desc = "A JMS Message filter") String filter)
-         throws Exception;
+   Map<String, Object>[] listMessages(@Parameter(name = "filter", desc = "A JMS Message filter")
+   String filter) throws Exception;
 
    @Operation(desc = "Returns the number of the messages in the queue matching the given filter", impact = INFO)
-   int countMessages(
-         @Parameter(name = "filter", desc = "A JMS message filter") String filter)
-         throws Exception;
+   int countMessages(@Parameter(name = "filter", desc = "A JMS message filter")
+   String filter) throws Exception;
 
    @Operation(desc = "Remove the message corresponding to the given messageID", impact = ACTION)
-   boolean removeMessage(
-         @Parameter(name = "messageID", desc = "A message ID") String messageID)
-         throws Exception;
+   boolean removeMessage(@Parameter(name = "messageID", desc = "A message ID")
+   String messageID) throws Exception;
 
    @Operation(desc = "Remove the messages corresponding to the given filter (and returns the number of removed messages)", impact = ACTION)
-   int removeMatchingMessages(
-         @Parameter(name = "filter", desc = "A message filter") String filter)
-         throws Exception;
+   int removeMatchingMessages(@Parameter(name = "filter", desc = "A message filter")
+   String filter) throws Exception;
 
    @Operation(desc = "Expire the messages corresponding to the given filter (and returns the number of expired messages)", impact = ACTION)
-   int expireMessages(
-         @Parameter(name = "filter", desc = "A message filter") String filter)
-         throws Exception;
+   int expireMessages(@Parameter(name = "filter", desc = "A message filter")
+   String filter) throws Exception;
 
    @Operation(desc = "Expire the message corresponding to the given messageID", impact = ACTION)
-   boolean expireMessage(
-         @Parameter(name = "messageID", desc = "A message ID") String messageID)
-         throws Exception;
-   
+   boolean expireMessage(@Parameter(name = "messageID", desc = "A message ID")
+   String messageID) throws Exception;
+
    @Operation(desc = "Send the message corresponding to the given messageID to the queue's Dead Letter Queue", impact = ACTION)
-   boolean sendMessageToDLQ(
-         @Parameter(name = "messageID", desc = "A message ID") String messageID)
-         throws Exception;
-   
+   boolean sendMessageToDLQ(@Parameter(name = "messageID", desc = "A message ID")
+   String messageID) throws Exception;
+
    @Operation(desc = "Change the priority of the message corresponding to the given messageID", impact = ACTION)
-   boolean changeMessagePriority(
-         @Parameter(name = "messageID", desc = "A message ID") String messageID,
-         @Parameter(name = "newPriority", desc = "the new priority (between 0 and 9)") int newPriority)
-         throws Exception;
+   boolean changeMessagePriority(@Parameter(name = "messageID", desc = "A message ID")
+   String messageID, @Parameter(name = "newPriority", desc = "the new priority (between 0 and 9)")
+   int newPriority) throws Exception;
 
    @Operation(desc = "Move the message corresponding to the given messageID to another queue", impact = ACTION)
-   boolean moveMessage(
-         @Parameter(name = "messageID", desc = "A message ID") String messageID,
-         @Parameter(name = "otherQueueName", desc = "The name of the queue to move the message to") String otherQueueName)
-         throws Exception;
+   boolean moveMessage(@Parameter(name = "messageID", desc = "A message ID")
+   String messageID, @Parameter(name = "otherQueueName", desc = "The name of the queue to move the message to")
+   String otherQueueName) throws Exception;
 
    @Operation(desc = "Move the messages corresponding to the given filter (and returns the number of moved messages)", impact = ACTION)
-   int moveMatchingMessages(
-         @Parameter(name = "filter", desc = "A message filter") String filter,
-         @Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to") String otherQueueName)
-         throws Exception;
+   int moveMatchingMessages(@Parameter(name = "filter", desc = "A message filter")
+   String filter, @Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to")
+   String otherQueueName) throws Exception;
 
    @Operation(desc = "Move all the messages to another queue (and returns the number of moved messages)", impact = ACTION)
-   int moveAllMessages(
-         @Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to") String otherQueueName)
-         throws Exception;
-   
-   CompositeData listMessageCounter() throws Exception;
+   int moveAllMessages(@Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to")
+   String otherQueueName) throws Exception;
 
+   Object[] listMessageCounter() throws Exception;
+
    String listMessageCounterAsHTML() throws Exception;
 
-   TabularData listMessageCounterHistory() throws Exception;
+   Object[] listMessageCounterHistory() throws Exception;
 
    String listMessageCounterHistoryAsHTML() throws Exception;
 
-
 }

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/TopicControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/TopicControlMBean.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/TopicControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -24,7 +24,7 @@
 
 import static javax.management.MBeanOperationInfo.ACTION;
 
-import javax.management.openmbean.TabularData;
+import java.util.Map;
 
 import org.jboss.messaging.core.management.Operation;
 import org.jboss.messaging.core.management.Parameter;
@@ -39,29 +39,29 @@
 {
    // Attributes ----------------------------------------------------
 
-   int getSubcriptionsCount();
+   int getSubscriptionCount();
 
-   int getDurableSubcriptionsCount();
+   int getDurableSubscriptionCount();
 
-   int getNonDurableSubcriptionsCount();
+   int getNonDurableSubscriptionCount();
 
-   int getDurableMessagesCount();
+   int getDurableMessageCount();
 
-   int getNonDurableMessagesCount();
+   int getNonDurableMessageCount();
 
    // Operations ----------------------------------------------------
 
    @Operation(desc = "List all subscriptions")
-   TabularData listAllSubscriptions() throws Exception;
+   Object[] listAllSubscriptions() throws Exception;
 
    @Operation(desc = "List only the durable subscriptions")
-   TabularData listDurableSubscriptions() throws Exception;
+   Object[] listDurableSubscriptions() throws Exception;
 
    @Operation(desc = "List only the non durable subscriptions")
-   TabularData listNonDurableSubscriptions() throws Exception;
+   Object[] listNonDurableSubscriptions() throws Exception;
 
    @Operation(desc = "List all the message for the given subscription")
-   public TabularData listMessagesForSubscription(
+   public Map<String, Object>[] listMessagesForSubscription(
          @Parameter(name = "queueName", desc = "the name of the queue representing a subscription") String queueName)
          throws Exception;
 

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,23 +22,17 @@
 
 package org.jboss.messaging.jms.server.management.impl;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
 
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.management.MessageCounterInfo;
-import org.jboss.messaging.core.management.MessageInfo;
 import org.jboss.messaging.core.management.QueueControlMBean;
 import org.jboss.messaging.core.messagecounter.MessageCounter;
 import org.jboss.messaging.core.messagecounter.impl.MessageCounterHelper;
 import org.jboss.messaging.jms.JBossQueue;
 import org.jboss.messaging.jms.client.JBossMessage;
 import org.jboss.messaging.jms.client.SelectorTranslator;
-import org.jboss.messaging.jms.server.management.JMSMessageInfo;
 import org.jboss.messaging.jms.server.management.JMSQueueControlMBean;
 
 /**
@@ -56,7 +50,7 @@
    // Attributes ----------------------------------------------------
 
    private final JBossQueue managedQueue;
-   
+
    private final QueueControlMBean coreQueueControl;
 
    private final String binding;
@@ -184,25 +178,27 @@
       return coreQueueControl.removeAllMessages();
    }
 
-   public TabularData listAllMessages() throws Exception
+   public Map<String, Object>[] listAllMessages() throws Exception
    {
       return listMessages(null);
    }
 
-   public TabularData listMessages(final String filterStr) throws Exception
+   public Map<String, Object>[] listMessages(final String filterStr) throws Exception
    {
       try
       {
          String filter = createFilterFromJMSSelector(filterStr);
-         TabularData coreMessages = coreQueueControl.listMessages(filter);
-         List<JMSMessageInfo> infos = new ArrayList<JMSMessageInfo>(coreMessages.size());
-         MessageInfo[] coreMessageInfos = MessageInfo.from(coreMessages);
-         for (MessageInfo messageInfo : coreMessageInfos)
+         Map<String, Object>[] coreMessages = coreQueueControl.listMessages(filter);
+
+         Map<String, Object>[] jmsMessages = new Map[coreMessages.length]; 
+         
+         int i = 0;
+         
+         for (Map<String, Object> coreMessage : coreMessages)
          {
-            JMSMessageInfo info = JMSMessageInfo.fromCoreMessage(messageInfo);
-            infos.add(info);
+            Map<String, Object> jmsMessage = JBossMessage.coreMaptoJMSMap(coreMessage);
          }
-         return JMSMessageInfo.toTabularData(infos);
+         return jmsMessages;
       }
       catch (MessagingException e)
       {
@@ -264,7 +260,7 @@
       {
          throw new IllegalArgumentException("No message found for JMSMessageID: " + messageID);
       }
-      
+
       return true;
    }
 
@@ -280,9 +276,10 @@
       return moveMatchingMessages(null, otherQueueName);
    }
 
-   public CompositeData listMessageCounter()
+   public Object[] listMessageCounter()
    {
-      return MessageCounterInfo.toCompositeData(counter);
+      //return MessageCounterInfo.toCompositeData(counter);
+      return new Object[0];
    }
 
    public String listMessageCounterAsHTML()
@@ -290,7 +287,7 @@
       return MessageCounterHelper.listMessageCounterAsHTML(new MessageCounter[] { counter });
    }
 
-   public TabularData listMessageCounterHistory() throws Exception
+   public Object[] listMessageCounterHistory() throws Exception
    {
       return MessageCounterHelper.listMessageCounterHistory(counter);
    }

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -25,21 +25,18 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.management.AddressControlMBean;
 import org.jboss.messaging.core.management.ManagementService;
-import org.jboss.messaging.core.management.MessageInfo;
 import org.jboss.messaging.core.management.MessagingServerControlMBean;
 import org.jboss.messaging.core.management.QueueControlMBean;
 import org.jboss.messaging.core.management.ResourceNames;
 import org.jboss.messaging.jms.JBossTopic;
+import org.jboss.messaging.jms.client.JBossMessage;
 import org.jboss.messaging.jms.client.SelectorTranslator;
-import org.jboss.messaging.jms.server.management.JMSMessageInfo;
-import org.jboss.messaging.jms.server.management.SubscriptionInfo;
 import org.jboss.messaging.jms.server.management.TopicControlMBean;
 import org.jboss.messaging.utils.Pair;
 
@@ -71,7 +68,7 @@
    {
       return (selectorStr == null) ? null : SelectorTranslator.convertToJBMFilterString(selectorStr);
    }
-   
+
    // Constructors --------------------------------------------------
 
    public TopicControl(final JBossTopic topic,
@@ -112,62 +109,65 @@
       return getMessageCount(DurabilityType.ALL);
    }
 
-   public int getDurableMessagesCount()
+   public int getDurableMessageCount()
    {
       return getMessageCount(DurabilityType.DURABLE);
    }
 
-   public int getNonDurableMessagesCount()
+   public int getNonDurableMessageCount()
    {
       return getMessageCount(DurabilityType.NON_DURABLE);
    }
 
-   public int getSubcriptionsCount()
+   public int getSubscriptionCount()
    {
       return getQueues(DurabilityType.ALL).size();
    }
 
-   public int getDurableSubcriptionsCount()
+   public int getDurableSubscriptionCount()
    {
       return getQueues(DurabilityType.DURABLE).size();
    }
 
-   public int getNonDurableSubcriptionsCount()
+   public int getNonDurableSubscriptionCount()
    {
       return getQueues(DurabilityType.NON_DURABLE).size();
    }
 
-   public TabularData listAllSubscriptions()
+   public Object[] listAllSubscriptions()
    {
-      return SubscriptionInfo.toTabularData(listSubscribersInfos(DurabilityType.ALL));
+      return listSubscribersInfos(DurabilityType.ALL);
    }
 
-   public TabularData listDurableSubscriptions()
+   public Object[] listDurableSubscriptions()
    {
-      return SubscriptionInfo.toTabularData(listSubscribersInfos(DurabilityType.DURABLE));
+      return listSubscribersInfos(DurabilityType.DURABLE);
    }
 
-   public TabularData listNonDurableSubscriptions()
+   public Object[] listNonDurableSubscriptions()
    {
-      return SubscriptionInfo.toTabularData(listSubscribersInfos(DurabilityType.NON_DURABLE));
+      return listSubscribersInfos(DurabilityType.NON_DURABLE);
    }
 
-   public TabularData listMessagesForSubscription(final String queueName) throws Exception
+   public Map<String, Object>[] listMessagesForSubscription(final String queueName) throws Exception
    {
       QueueControlMBean coreQueueControl = (QueueControlMBean)managementService.getResource(ResourceNames.CORE_QUEUE + queueName);
       if (coreQueueControl == null)
       {
          throw new IllegalArgumentException("No subscriptions with name " + queueName);
       }
-      TabularData coreMessages = coreQueueControl.listAllMessages();
-      List<JMSMessageInfo> infos = new ArrayList<JMSMessageInfo>(coreMessages.size());
-      MessageInfo[] coreMessageInfos = MessageInfo.from(coreMessages);
-      for (MessageInfo messageInfo : coreMessageInfos)
+
+      Map<String, Object>[] coreMessages = coreQueueControl.listAllMessages();
+
+      Map<String, Object>[] jmsMessages = new Map[coreMessages.length];
+
+      int i = 0;
+
+      for (Map<String, Object> coreMessage : coreMessages)
       {
-         JMSMessageInfo info = JMSMessageInfo.fromCoreMessage(messageInfo);
-         infos.add(info);
+         jmsMessages[i++] = JBossMessage.coreMaptoJMSMap(coreMessage);
       }
-      return JMSMessageInfo.toTabularData(infos);
+      return jmsMessages;
    }
 
    public int countMessagesForSubscription(final String clientID, final String subscriptionName, final String filterStr) throws Exception
@@ -179,7 +179,7 @@
          throw new IllegalArgumentException("No subscriptions with name " + queueName + " for clientID " + clientID);
       }
       String filter = createFilterFromJMSSelector(filterStr);
-      return coreQueueControl.listMessages(filter).size();
+      return coreQueueControl.listMessages(filter).length;
    }
 
    public int removeAllMessages() throws Exception
@@ -223,10 +223,10 @@
 
    // Private -------------------------------------------------------
 
-   private SubscriptionInfo[] listSubscribersInfos(final DurabilityType durability)
+   private Object[] listSubscribersInfos(final DurabilityType durability)
    {
       List<QueueControlMBean> queues = getQueues(durability);
-      List<SubscriptionInfo> subInfos = new ArrayList<SubscriptionInfo>(queues.size());
+      List<Object[]> subInfos = new ArrayList<Object[]>(queues.size());
 
       for (QueueControlMBean queue : queues)
       {
@@ -241,15 +241,17 @@
          }
 
          String filter = queue.getFilter() != null ? queue.getFilter() : null;
-         SubscriptionInfo info = new SubscriptionInfo(queue.getName(),
-                                                      clientID,
-                                                      subName,
-                                                      queue.isDurable(),
-                                                      filter,
-                                                      queue.getMessageCount());
-         subInfos.add(info);
+
+         Object[] subscriptionInfo = new Object[6];
+         subscriptionInfo[0] = queue.getName();
+         subscriptionInfo[1] = clientID;
+         subscriptionInfo[2] = subName;
+         subscriptionInfo[3] = queue.isDurable();
+         subscriptionInfo[4] = queue.getMessageCount();
+
+         subInfos.add(subscriptionInfo);
       }
-      return (SubscriptionInfo[])subInfos.toArray(new SubscriptionInfo[subInfos.size()]);
+      return subInfos.toArray(new Object[subInfos.size()]);
    }
 
    private int getMessageCount(final DurabilityType durability)
@@ -273,11 +275,11 @@
          {
             QueueControlMBean coreQueueControl = (QueueControlMBean)managementService.getResource(ResourceNames.CORE_QUEUE + queue);
 
-            //Ignore the "special" subscription
+            // Ignore the "special" subscription
             if (!coreQueueControl.getName().equals(addressControl.getAddress()))
             {
                if (durability == DurabilityType.ALL || (durability == DurabilityType.DURABLE && coreQueueControl.isDurable()) ||
-                        (durability == DurabilityType.NON_DURABLE && !coreQueueControl.isDurable()))
+                   (durability == DurabilityType.NON_DURABLE && !coreQueueControl.isDurable()))
                {
                   matchingQueues.add(coreQueueControl);
                }

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareJMSQueueControlWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareJMSQueueControlWrapper.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareJMSQueueControlWrapper.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,10 +22,11 @@
 
 package org.jboss.messaging.jms.server.management.jmx.impl;
 
+import java.util.Map;
+
 import javax.management.MBeanInfo;
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
 
+import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.management.ReplicationOperationInvoker;
 import org.jboss.messaging.core.management.ResourceNames;
 import org.jboss.messaging.core.management.impl.MBeanInfoHelper;
@@ -43,6 +44,8 @@
 {
 
    // Constants -----------------------------------------------------
+   
+   private static final Logger log = Logger.getLogger(ReplicationAwareJMSQueueControlWrapper.class);
 
    // Attributes ----------------------------------------------------
 
@@ -116,12 +119,12 @@
       return localControl.isTemporary();
    }
 
-   public TabularData listAllMessages() throws Exception
+   public Map<String, Object>[] listAllMessages() throws Exception
    {
       return localControl.listAllMessages();
    }
 
-   public CompositeData listMessageCounter()
+   public Object[] listMessageCounter()
    {
       return localControl.listMessageCounter();
    }
@@ -131,7 +134,7 @@
       return localControl.listMessageCounterAsHTML();
    }
 
-   public TabularData listMessageCounterHistory() throws Exception
+   public Object[] listMessageCounterHistory() throws Exception
    {
       return localControl.listMessageCounterHistory();
    }
@@ -141,7 +144,7 @@
       return localControl.listMessageCounterHistoryAsHTML();
    }
 
-   public TabularData listMessages(String filter) throws Exception
+   public Map<String, Object>[] listMessages(String filter) throws Exception
    {
       return localControl.listMessages(filter);
    }

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareTopicControlWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareTopicControlWrapper.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareTopicControlWrapper.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,8 +22,9 @@
 
 package org.jboss.messaging.jms.server.management.jmx.impl;
 
+import java.util.Map;
+
 import javax.management.MBeanInfo;
-import javax.management.openmbean.TabularData;
 
 import org.jboss.messaging.core.management.ReplicationOperationInvoker;
 import org.jboss.messaging.core.management.ResourceNames;
@@ -71,42 +72,42 @@
       replicationAwareInvoke("dropDurableSubscription", clientID, subscriptionName);
    }
 
-   public int getDurableMessagesCount()
+   public int getDurableMessageCount()
    {
-      return localControl.getDurableMessagesCount();
+      return localControl.getDurableMessageCount();
    }
 
-   public int getDurableSubcriptionsCount()
+   public int getDurableSubscriptionCount()
    {
-      return localControl.getDurableSubcriptionsCount();
+      return localControl.getDurableSubscriptionCount();
    }
 
-   public int getNonDurableMessagesCount()
+   public int getNonDurableMessageCount()
    {
-      return localControl.getNonDurableMessagesCount();
+      return localControl.getNonDurableMessageCount();
    }
 
-   public int getNonDurableSubcriptionsCount()
+   public int getNonDurableSubscriptionCount()
    {
-      return localControl.getNonDurableSubcriptionsCount();
+      return localControl.getNonDurableSubscriptionCount();
    }
 
-   public int getSubcriptionsCount()
+   public int getSubscriptionCount()
    {
-      return localControl.getSubcriptionsCount();
+      return localControl.getSubscriptionCount();
    }
 
-   public TabularData listAllSubscriptions()
+   public Object[] listAllSubscriptions()
    {
       return localControl.listAllSubscriptions();
    }
 
-   public TabularData listDurableSubscriptions()
+   public Object[] listDurableSubscriptions()
    {
       return localControl.listDurableSubscriptions();
    }
 
-   public TabularData listMessagesForSubscription(final String queueName) throws Exception
+   public Map<String, Object>[] listMessagesForSubscription(final String queueName) throws Exception
    {
       return localControl.listMessagesForSubscription(queueName);
    }
@@ -116,7 +117,7 @@
       return localControl.countMessagesForSubscription(clientID, subscriptionName, filterStr);
    }
 
-   public TabularData listNonDurableSubscriptions()
+   public Object[] listNonDurableSubscriptions()
    {
       return localControl.listNonDurableSubscriptions();
    }

Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -454,12 +454,12 @@
                                                                                                  objectName,
                                                                                                  TopicControlMBean.class,
                                                                                                  false);
-      TabularData subInfos = topic.listAllSubscriptions();
+      Object[] subInfos = topic.listAllSubscriptions();
       List<String> subs = new ArrayList<String>();
-      for (Object o : subInfos.values())
+      for (Object o : subInfos)
       {
-         CompositeData data = (CompositeData)o;
-         subs.add((String)data.get("name"));
+         Object[] data = (Object[])o;
+         subs.add((String)data[0]);
       }
       return subs;
    }

Modified: trunk/tests/joram-tests/src/org/jboss/test/jms/JBossMessagingAdmin.java
===================================================================
--- trunk/tests/joram-tests/src/org/jboss/test/jms/JBossMessagingAdmin.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/joram-tests/src/org/jboss/test/jms/JBossMessagingAdmin.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -219,7 +219,7 @@
 
    public void startServer() throws Exception
    {
-      serverProcess = SpawnedVMSupport.spawnVM(SpawnedJMSServer.class.getName(), false);
+      serverProcess = SpawnedVMSupport.spawnVM(SpawnedJMSServer.class.getName(), true);
       InputStreamReader isr = new InputStreamReader(serverProcess.getInputStream());
      
       final BufferedReader br = new BufferedReader(isr);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareAddressControlWrapperTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareAddressControlWrapperTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareAddressControlWrapperTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -62,13 +62,13 @@
       AddressControlMBean liveAddressControl = createAddressControl(address, liveMBeanServer);
       AddressControlMBean backupAddressControl = createAddressControl(address, backupMBeanServer);
 
-      TabularData roles = liveAddressControl.getRoles();
-      assertEquals(roles.size(), backupAddressControl.getRoles().size());
+      Object[] roles = liveAddressControl.getRoles();
+      assertEquals(roles.length, backupAddressControl.getRoles().length);
 
       // add a role
       liveAddressControl.addRole(randomString(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean());
 
-      assertEquals(roles.size() + 1, liveAddressControl.getRoles().size());
+      assertEquals(roles.length + 1, liveAddressControl.getRoles().length);
    }
 
    public void testRemoveRole() throws Exception
@@ -78,20 +78,20 @@
       AddressControlMBean liveAddressControl = createAddressControl(address, liveMBeanServer);
       AddressControlMBean backupAddressControl = createAddressControl(address, backupMBeanServer);
 
-      TabularData roles = liveAddressControl.getRoles();
-      assertEquals(roles.size(), backupAddressControl.getRoles().size());
+      Object[] roles = liveAddressControl.getRoles();
+      assertEquals(roles.length, backupAddressControl.getRoles().length);
 
       // add a role
       liveAddressControl.addRole(roleName, randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean());
 
-      assertEquals(roles.size() + 1, liveAddressControl.getRoles().size());
-      assertEquals(roles.size() + 1, backupAddressControl.getRoles().size());
+      assertEquals(roles.length + 1, liveAddressControl.getRoles().length);
+      assertEquals(roles.length + 1, backupAddressControl.getRoles().length);
 
       // and remove it
       liveAddressControl.removeRole(roleName);
 
-      assertEquals(roles.size(), liveAddressControl.getRoles().size());
-      assertEquals(roles.size(), backupAddressControl.getRoles().size());
+      assertEquals(roles.length, liveAddressControl.getRoles().length);
+      assertEquals(roles.length, backupAddressControl.getRoles().length);
    }
 
    // Package protected ---------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareMessagingServerControlWrapperTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareMessagingServerControlWrapperTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareMessagingServerControlWrapperTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -161,19 +161,23 @@
       Thread.sleep(liveServerControl.getMessageCounterSamplePeriod() * 2);
 
       // check the count is to 1 on both live & backup nodes
-      CompositeData counter = liveQueueControl.listMessageCounter();
-      assertEquals((long)1, counter.get("count"));
-      counter = backupQueueControl.listMessageCounter();
-      assertEquals((long)1, counter.get("count"));
-
-      liveServerControl.resetAllMessageCounters();
-      Thread.sleep(liveServerControl.getMessageCounterSamplePeriod() * 2);
-
-      // check the count has been reset to 0 on both live & backup nodes
-      counter = liveQueueControl.listMessageCounter();
-      assertEquals((long)0, counter.get("count"));
-      counter = backupQueueControl.listMessageCounter();
-      assertEquals((long)0, counter.get("count"));
+      Object[] counter = liveQueueControl.listMessageCounter();
+      
+      fail("re-enable test");
+//      assertEquals((long)1, counter.get("count"));
+//      counter = backupQueueControl.listMessageCounter();
+//      assertEquals((long)1, counter.get("count"));
+//
+//      liveServerControl.resetAllMessageCounters();
+//      Thread.sleep(liveServerControl.getMessageCounterSamplePeriod() * 2);
+//
+//      // check the count has been reset to 0 on both live & backup nodes
+//      counter = liveQueueControl.listMessageCounter();
+//      assertEquals((long)0, counter.get("count"));
+//      counter = backupQueueControl.listMessageCounter();
+//      assertEquals((long)0, counter.get("count"));
+      
+      //TODO re-enable test
    }
 
    public void testSetMessageCounterSamplePeriod() throws Exception

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareQueueControlWrapperTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareQueueControlWrapperTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareQueueControlWrapperTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,30 +22,12 @@
 
 package org.jboss.messaging.tests.integration.cluster.management;
 
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_PING_PERIOD;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE;
 import static org.jboss.messaging.tests.integration.management.ManagementControlHelper.createQueueControl;
 import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
 import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
-import javax.management.openmbean.TabularData;
+import java.util.Map;
 
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientProducer;
@@ -54,7 +36,6 @@
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryInternal;
 import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.logging.Logger;
-import org.jboss.messaging.core.management.MessageInfo;
 import org.jboss.messaging.core.management.QueueControlMBean;
 import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
 import org.jboss.messaging.tests.util.RandomUtil;
@@ -68,7 +49,7 @@
 public class ReplicationAwareQueueControlWrapperTest extends ReplicationAwareTestBase
 {
    // Constants -----------------------------------------------------
-   
+
    private static final Logger log = Logger.getLogger(ReplicationAwareQueueControlWrapperTest.class);
 
    // Attributes ----------------------------------------------------
@@ -87,7 +68,7 @@
    {
       byte oldPriority = (byte)1;
       byte newPriority = (byte)8;
-      
+
       QueueControlMBean liveQueueControl = createQueueControl(address, address, liveMBeanServer);
       QueueControlMBean backupQueueControl = createQueueControl(address, address, backupMBeanServer);
 
@@ -99,36 +80,32 @@
       ClientMessage message = session.createClientMessage(false);
       message.setPriority(oldPriority);
       producer.send(message);
-      
+
       // check it is on both live & backup nodes
       assertEquals(1, liveQueueControl.getMessageCount());
       assertEquals(1, backupQueueControl.getMessageCount());
 
-      TabularData messages = liveQueueControl.listAllMessages();
-      MessageInfo[] messageInfos = MessageInfo.from(messages);
-      assertEquals(1, messageInfos.length);
-      long messageID = messageInfos[0].getID();
-      assertEquals(oldPriority, messageInfos[0].getPriority());
-      
-       messages = backupQueueControl.listAllMessages();
-       messageInfos = MessageInfo.from(messages);
-      assertEquals(1, messageInfos.length);
-      assertEquals(oldPriority, messageInfos[0].getPriority());
-      
+      Map<String, Object>[] messages = liveQueueControl.listAllMessages();
+      assertEquals(1, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
+      assertEquals(oldPriority, messages[0].get("Priority"));
+
+      messages = backupQueueControl.listAllMessages();
+      assertEquals(1, messages.length);
+      assertEquals(oldPriority, messages[0].get("Priority"));
+
       assertTrue(liveQueueControl.changeMessagePriority(messageID, newPriority));
 
       // check the priority is changed on both live & backup nodes
       messages = liveQueueControl.listAllMessages();
-      messageInfos = MessageInfo.from(messages);
-      assertEquals(1, messageInfos.length);
-      assertEquals(newPriority, messageInfos[0].getPriority());
+      assertEquals(1, messages.length);
+      assertEquals(newPriority, messages[0].get("Priority"));
 
       messages = backupQueueControl.listAllMessages();
-      messageInfos = MessageInfo.from(messages);
-      assertEquals(1, messageInfos.length);
-      assertEquals(newPriority, messageInfos[0].getPriority());
+      assertEquals(1, messages.length);
+      assertEquals(newPriority, messages[0].get("Priority"));
    }
-   
+
    public void testExpireMessage() throws Exception
    {
       QueueControlMBean liveQueueControl = createQueueControl(address, address, liveMBeanServer);
@@ -140,23 +117,22 @@
       // send 1 message
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createClientMessage(false));
-      
+
       // check it is on both live & backup nodes
       assertEquals(1, liveQueueControl.getMessageCount());
       assertEquals(1, backupQueueControl.getMessageCount());
 
-      TabularData messages = liveQueueControl.listAllMessages();
-      MessageInfo[] messageInfos = MessageInfo.from(messages);
-      assertEquals(1, messageInfos.length);
-      long messageID = messageInfos[0].getID();
-      
+      Map<String, Object>[] messages = liveQueueControl.listAllMessages();
+      assertEquals(1, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
+
       assertTrue(liveQueueControl.expireMessage(messageID));
-      
+
       // check the message is no longer in the queue on both live & backup nodes
       assertEquals(0, liveQueueControl.getMessageCount());
       assertEquals(0, backupQueueControl.getMessageCount());
    }
-   
+
    public void testExpireMessagesWithFilter() throws Exception
    {
       SimpleString key = new SimpleString("key");
@@ -177,18 +153,18 @@
       ClientMessage matchingMessage = session.createClientMessage(false);
       matchingMessage.putLongProperty(key, matchingValue);
       producer.send(matchingMessage);
-      
+
       // check messages are on both live & backup nodes
       assertEquals(2, liveQueueControl.getMessageCount());
       assertEquals(2, backupQueueControl.getMessageCount());
 
       assertEquals(1, liveQueueControl.expireMessages(key + " =" + matchingValue));
-      
+
       // check there is only 1 message in the queue on both live & backup nodes
       assertEquals(1, liveQueueControl.getMessageCount());
       assertEquals(1, backupQueueControl.getMessageCount());
    }
-   
+
    public void testMoveAllMessages() throws Exception
    {
       SimpleString otherQueue = randomSimpleString();
@@ -221,16 +197,15 @@
       // moved all messages to otherQueue
       int movedMessagesCount = liveQueueControl.moveAllMessages(otherQueue.toString());
       assertEquals(1, movedMessagesCount);
-      
+
       assertEquals(0, liveQueueControl.getMessageCount());
       assertEquals(0, backupQueueControl.getMessageCount());
       assertEquals(1, liveOtherQueueControl.getMessageCount());
       assertEquals(1, backupOtherQueueControl.getMessageCount());
 
-
       session.deleteQueue(otherQueue);
    }
-   
+
    public void testMoveMatchingMessages() throws Exception
    {
       SimpleString key = new SimpleString("key");
@@ -261,7 +236,8 @@
       assertEquals(0, backupOtherQueueControl.getMessageCount());
 
       // moved matching messages to otherQueue
-      int movedMatchedMessagesCount = liveQueueControl.moveMatchingMessages(key + " =" + matchingValue, otherQueue.toString());
+      int movedMatchedMessagesCount = liveQueueControl.moveMatchingMessages(key + " =" + matchingValue,
+                                                                            otherQueue.toString());
       assertEquals(1, movedMatchedMessagesCount);
 
       assertEquals(1, liveQueueControl.getMessageCount());
@@ -271,7 +247,7 @@
 
       session.deleteQueue(otherQueue);
    }
-   
+
    public void testMoveMessage() throws Exception
    {
       SimpleString otherQueue = randomSimpleString();
@@ -289,20 +265,19 @@
       // send 1 message
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createClientMessage(false));
-      
+
       // check it is on both live & backup nodes
       assertEquals(1, liveQueueControl.getMessageCount());
       assertEquals(1, backupQueueControl.getMessageCount());
       assertEquals(0, liveOtherQueueControl.getMessageCount());
       assertEquals(0, backupOtherQueueControl.getMessageCount());
 
-      TabularData messages = liveQueueControl.listAllMessages();
-      MessageInfo[] messageInfos = MessageInfo.from(messages);
-      assertEquals(1, messageInfos.length);
-      long messageID = messageInfos[0].getID();
-            
+      Map<String, Object>[] messages = liveQueueControl.listAllMessages();
+      assertEquals(1, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
+
       assertTrue(liveQueueControl.moveMessage(messageID, otherQueue.toString()));
-      
+
       // check the message is no longer in the queue on both live & backup nodes
       assertEquals(0, liveQueueControl.getMessageCount());
       assertEquals(0, backupQueueControl.getMessageCount());
@@ -311,7 +286,7 @@
 
       session.deleteQueue(otherQueue);
    }
-   
+
    public void testRemoveAllMessages() throws Exception
    {
       QueueControlMBean liveQueueControl = createQueueControl(address, address, liveMBeanServer);
@@ -365,7 +340,7 @@
       assertEquals(1, liveQueueControl.getMessageCount());
       assertEquals(1, backupQueueControl.getMessageCount());
    }
-   
+
    public void testRemoveMessage() throws Exception
    {
       QueueControlMBean liveQueueControl = createQueueControl(address, address, liveMBeanServer);
@@ -377,23 +352,22 @@
       // send 1 message
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createClientMessage(false));
-      
+
       // check it is on both live & backup nodes
       assertEquals(1, liveQueueControl.getMessageCount());
       assertEquals(1, backupQueueControl.getMessageCount());
 
-      TabularData messages = liveQueueControl.listAllMessages();
-      MessageInfo[] messageInfos = MessageInfo.from(messages);
-      assertEquals(1, messageInfos.length);
-      long messageID = messageInfos[0].getID();
-      
+      Map<String, Object>[] messages = liveQueueControl.listAllMessages();
+      assertEquals(1, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
+
       assertTrue(liveQueueControl.removeMessage(messageID));
-      
+
       // check the message is no longer in the queue on both live & backup nodes
       assertEquals(0, liveQueueControl.getMessageCount());
       assertEquals(0, backupQueueControl.getMessageCount());
    }
-   
+
    public void testSendMessageToDeadLetterAddress() throws Exception
    {
       QueueControlMBean liveQueueControl = createQueueControl(address, address, liveMBeanServer);
@@ -405,27 +379,26 @@
       // send 1 message
       ClientProducer producer = session.createProducer(address);
       producer.send(session.createClientMessage(false));
-      
+
       // check it is on both live & backup nodes
       assertEquals(1, liveQueueControl.getMessageCount());
       assertEquals(1, backupQueueControl.getMessageCount());
 
-      TabularData messages = liveQueueControl.listAllMessages();
-      MessageInfo[] messageInfos = MessageInfo.from(messages);
-      assertEquals(1, messageInfos.length);
-      long messageID = messageInfos[0].getID();
-      
+      Map<String, Object>[] messages = liveQueueControl.listAllMessages();
+      assertEquals(1, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
+
       assertTrue(liveQueueControl.sendMessageToDeadLetterAddress(messageID));
-      
+
       // check the message is no longer in the queue on both live & backup nodes
       assertEquals(0, liveQueueControl.getMessageCount());
       assertEquals(0, backupQueueControl.getMessageCount());
    }
-   
+
    public void testSetDeadLetterAddress() throws Exception
    {
       String deadLetterAddress = randomString();
-      
+
       QueueControlMBean liveQueueControl = createQueueControl(address, address, liveMBeanServer);
       QueueControlMBean backupQueueControl = createQueueControl(address, address, backupMBeanServer);
 
@@ -434,17 +407,17 @@
 
       assertNull(liveQueueControl.getDeadLetterAddress());
       assertNull(backupQueueControl.getDeadLetterAddress());
-      
+
       liveQueueControl.setDeadLetterAddress(deadLetterAddress);
-      
+
       assertEquals(deadLetterAddress, liveQueueControl.getDeadLetterAddress());
       assertEquals(deadLetterAddress, backupQueueControl.getDeadLetterAddress());
    }
-   
+
    public void testSetExpiryAddress() throws Exception
    {
       String expiryAddress = randomString();
-      
+
       QueueControlMBean liveQueueControl = createQueueControl(address, address, liveMBeanServer);
       QueueControlMBean backupQueueControl = createQueueControl(address, address, backupMBeanServer);
 
@@ -453,9 +426,9 @@
 
       assertNull(liveQueueControl.getExpiryAddress());
       assertNull(backupQueueControl.getExpiryAddress());
-      
+
       liveQueueControl.setExpiryAddress(expiryAddress);
-      
+
       assertEquals(expiryAddress, liveQueueControl.getExpiryAddress());
       assertEquals(expiryAddress, backupQueueControl.getExpiryAddress());
    }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/jms/bridge/BridgeTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/bridge/BridgeTestBase.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/bridge/BridgeTestBase.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -479,7 +479,7 @@
          managementService = server1.getManagementService();
       }
       TopicControlMBean topicControl = (TopicControlMBean)managementService.getResource(ResourceNames.JMS_TOPIC + topic.getTopicName());
-      assertEquals(0, topicControl.getSubcriptionsCount());
+      assertEquals(0, topicControl.getSubscriptionCount());
 
    }
 

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSMessagingProxy.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSMessagingProxy.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSMessagingProxy.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,6 +22,8 @@
 
 package org.jboss.messaging.tests.integration.jms.server.management;
 
+import java.util.Map;
+
 import javax.jms.Message;
 import javax.jms.Queue;
 import javax.jms.QueueRequestor;

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSQueueControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSQueueControlTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSQueueControlTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,38 +22,19 @@
 
 package org.jboss.messaging.tests.integration.jms.server.management;
 
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_PERSISTENT_SEND;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MAX_CONNECTIONS;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_PING_PERIOD;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
-import static org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE;
 import static org.jboss.messaging.tests.integration.management.ManagementControlHelper.createJMSQueueControl;
 import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
 import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
+import java.util.Map;
+
 import javax.jms.Connection;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.MessageConsumer;
 import javax.jms.MessageProducer;
 import javax.jms.Session;
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
 import javax.naming.Context;
 
 import org.jboss.messaging.core.config.Configuration;
@@ -153,12 +134,11 @@
 
       assertEquals(2, queueControl.getMessageCount());
 
-      TabularData data = queueControl.listAllMessages();
-      assertEquals(2, data.size());
+      Map<String, Object>[] data = queueControl.listAllMessages();
+      assertEquals(2, data.length);
 
-      // retrieve the first message info
-      CompositeData compositeData = (CompositeData)data.values().iterator().next();
-      String messageID = (String)compositeData.get("JMSMessageID");
+      // retrieve the first message info      
+      String messageID = (String)data[0].get("JMSMessageID");
 
       queueControl.removeMessage(messageID);
 
@@ -249,11 +229,10 @@
 
       assertEquals(1, queueControl.getMessageCount());
 
-      TabularData data = queueControl.listAllMessages();
-      // retrieve the first message info
-      CompositeData compositeData = (CompositeData)data.values().iterator().next();
-      String messageID = (String)compositeData.get("JMSMessageID");
-      int currentPriority = (Integer)compositeData.get("JMSPriority");
+      Map<String, Object>[] data = queueControl.listAllMessages();
+      // retrieve the first message info     
+      String messageID = (String)data[0].get("JMSMessageID");
+      int currentPriority = (Integer)data[0].get("JMSPriority");
       int newPriority = 9;
 
       assertTrue(newPriority != currentPriority);

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,6 +1,6 @@
 /*
  * JBoss, Home of Professional Open Source
- * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  *
@@ -23,240 +23,708 @@
 package org.jboss.messaging.tests.integration.jms.server.management;
 
 import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MANAGEMENT_ADDRESS;
+import static org.jboss.messaging.tests.integration.management.ManagementControlHelper.createJMSQueueControl;
+import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
+import java.util.Map;
+
+import javax.jms.Connection;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
 import javax.jms.QueueConnection;
 import javax.jms.QueueSession;
 import javax.jms.Session;
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
+import javax.naming.Context;
 
+import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.management.ResourceNames;
+import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
+import org.jboss.messaging.core.server.Messaging;
+import org.jboss.messaging.core.server.MessagingServer;
+import org.jboss.messaging.core.settings.impl.AddressSettings;
 import org.jboss.messaging.jms.JBossQueue;
 import org.jboss.messaging.jms.client.JBossConnectionFactory;
+import org.jboss.messaging.jms.server.impl.JMSServerManagerImpl;
 import org.jboss.messaging.jms.server.management.JMSQueueControlMBean;
+import org.jboss.messaging.tests.integration.management.ManagementControlHelper;
+import org.jboss.messaging.tests.integration.management.ManagementTestBase;
+import org.jboss.messaging.tests.unit.util.InVMContext;
+import org.jboss.messaging.utils.SimpleString;
 
 /**
+ * 
  * A JMSQueueControlUsingJMSTest
  *
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ *
  */
-public class JMSQueueControlUsingJMSTest extends JMSQueueControlTest
+public class JMSQueueControlUsingJMSTest extends ManagementTestBase
 {
-
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
+   private MessagingServer server;
+
+   private JMSServerManagerImpl serverManager;
+
+   protected JBossQueue queue;
+
+   protected Context context;
+   
+   protected JMSMessagingProxy proxy;
+   
    private QueueConnection connection;
 
    private QueueSession session;
+   
+   protected JBossQueue expiryQueue;
+   
+   protected JMSMessagingProxy expiryProxy;
 
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   // JMSServerControlTest overrides --------------------------------
+   // Public --------------------------------------------------------
 
-   @Override
-   protected void setUp() throws Exception
+   public void testGetAttributes() throws Exception
+   {     
+      assertEquals(queue.getName(), proxy.retrieveAttributeValue("Name"));
+      assertEquals(queue.getAddress(), proxy.retrieveAttributeValue("Address"));
+      assertEquals(queue.isTemporary(), proxy.retrieveAttributeValue("Temporary"));
+   }
+
+   public void testGetXXXCount() throws Exception
+   {      
+
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+      assertEquals(0, proxy.retrieveAttributeValue("ConsumerCount"));
+
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+      MessageConsumer consumer = JMSUtil.createConsumer(connection, queue);
+
+      assertEquals(1, proxy.retrieveAttributeValue("ConsumerCount"));
+
+      JMSUtil.sendMessages(queue, 2);
+
+      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
+      assertEquals(2, proxy.retrieveAttributeValue("MessagesAdded"));
+
+      connection.start();
+
+      assertNotNull(consumer.receive(500));
+      assertNotNull(consumer.receive(500));
+
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+      assertEquals(2, proxy.retrieveAttributeValue("MessagesAdded"));
+
+      consumer.close();
+
+      assertEquals(0, proxy.retrieveAttributeValue("ConsumerCount"));
+      
+      connection.close();
+   }
+
+   public void testRemoveMessage() throws Exception
    {
-      super.setUp();
+      
 
-      JBossConnectionFactory cf = new JBossConnectionFactory(new TransportConfiguration(InVMConnectorFactory.class.getName()));
-      connection = cf.createQueueConnection();
-      session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+
+      JMSUtil.sendMessages(queue, 2);
+
+      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
+
+      Object[] maps = (Object[])proxy.invokeOperation("listAllMessages", null);
+      assertEquals(2, maps.length);
+
+      // retrieve the first message info
+      Map map = (Map)maps[0];
+      String messageID = (String)map.get("JMSMessageID");
+
+      proxy.invokeOperation("removeMessage", messageID);
+
+      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
+   }
+
+   public void testRemoveMessageWithUnknownMessage() throws Exception
+   {
+      String unknownMessageID = randomString();
+      
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+
+      try
+      {
+         proxy.invokeOperation("removeMessage", unknownMessageID);
+         fail("should throw an exception is the message ID is unknown");
+      }
+      catch (Exception e)
+      {
+      }
+   }
+
+   public void testRemoveAllMessages() throws Exception
+   {
+      
+
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+
+      JMSUtil.sendMessages(queue, 2);
+
+      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
+
+      proxy.invokeOperation("removeAllMessages");
+
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
       connection.start();
+      
+      MessageConsumer consumer = JMSUtil.createConsumer(connection, queue);
+      assertNull(consumer.receive(500));
+      
+      connection.close();
    }
 
-   @Override
-   protected void tearDown() throws Exception
+   public void testRemoveMatchingMessages() throws Exception
    {
+      
+
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+
+      Connection conn = createConnection();
+
+      Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+      MessageProducer producer = s.createProducer(queue);
+
+      Message message = s.createMessage();
+      message.setStringProperty("foo", "bar");
+      producer.send(message);
+
+      message = s.createMessage();
+      message.setStringProperty("foo", "baz");
+      producer.send(message);
+
+      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
+
+      int removedMatchingMessagesCount = (Integer)proxy.invokeOperation("removeMatchingMessages", new Object[] {"foo = 'bar'"});
+      assertEquals(1, removedMatchingMessagesCount);
+
+      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
+
+      conn.start();
+      MessageConsumer consumer = JMSUtil.createConsumer(conn, queue);
+      Message msg = consumer.receive(500);
+      assertNotNull(msg);
+      assertEquals("baz", msg.getStringProperty("foo"));
+      
+      conn.close();
+   }
+
+   public void testChangeMessagePriority() throws Exception
+   {
+      
+
+      JMSUtil.sendMessages(queue, 1);
+
+      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
+
+      Object[] maps = (Object[])proxy.invokeOperation("listAllMessages", null);
+      // retrieve the first message info
+      Map map = (Map)maps[0];
+      String messageID = (String)map.get("JMSMessageID");
+      int currentPriority = (Integer)map.get("JMSPriority");
+      int newPriority = 9;
+
+      assertTrue(newPriority != currentPriority);
+
+      proxy.invokeOperation("changeMessagePriority", messageID, newPriority);
+
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+      connection.start();
+      MessageConsumer consumer = JMSUtil.createConsumer(connection, queue);
+      Message message = consumer.receive(500);
+      assertNotNull(message);
+      assertEquals(newPriority, message.getJMSPriority());
+      
       connection.close();
+   }
 
-      super.tearDown();
+   public void testChangeMessagePriorityWithInvalidPriority() throws Exception
+   {
+      byte invalidPriority = (byte)23;
+
+      
+
+      String[] messageIDs = JMSUtil.sendMessages(queue, 1);
+
+      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
+
+      try
+      {
+         proxy.invokeOperation("changeMessagePriority", messageIDs[0], invalidPriority);
+         fail("must throw an exception if the new priority is not a valid value");
+      }
+      catch (Exception e)
+      {
+      }
+
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+      connection.start();
+      MessageConsumer consumer = JMSUtil.createConsumer(connection, queue);
+      Message message = consumer.receive(500);
+      assertNotNull(message);
+      assertTrue(message.getJMSPriority() != invalidPriority);
+      
+      connection.close();
    }
 
-   @Override
-   protected JMSQueueControlMBean createManagementControl() throws Exception
+   public void testChangeMessagePriorityWithUnknownMessageID() throws Exception
    {
-      JBossQueue managementQueue = new JBossQueue(DEFAULT_MANAGEMENT_ADDRESS.toString(),
-                     DEFAULT_MANAGEMENT_ADDRESS.toString());
-      final JMSMessagingProxy proxy = new JMSMessagingProxy(session,
-                                                            managementQueue,
-                                                            ResourceNames.JMS_QUEUE + queue.getQueueName());
+      String unkownMessageID = randomString();
+
       
-      return new JMSQueueControlMBean()
+
+      try
       {
+         proxy.invokeOperation("changeMessagePriority", unkownMessageID, 7);
+         fail();
+      }
+      catch (Exception e)
+      {
+      }
+   }
 
-         public boolean changeMessagePriority(String messageID, int newPriority) throws Exception
-         {
-            return (Boolean)proxy.invokeOperation("changeMessagePriority", messageID, newPriority);
-         }
+   public void testGetExpiryAddress() throws Exception
+   {
+      final SimpleString expiryAddress = randomSimpleString();
 
-         public int countMessages(String filter) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("countMessages", filter);
-         }
+     
+      assertNull(proxy.retrieveAttributeValue("ExpiryAddress"));
 
-         public boolean expireMessage(String messageID) throws Exception
+      server.getAddressSettingsRepository().addMatch(queue.getAddress(), new AddressSettings()
+      {
+         @Override
+         public SimpleString getExpiryAddress()
          {
-            return (Boolean)proxy.invokeOperation("expireMessage", messageID);
+            return expiryAddress;
          }
+      });
 
-         public int expireMessages(String filter) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("expireMessages", filter);
-         }
+      assertEquals(expiryAddress.toString(), proxy.retrieveAttributeValue("ExpiryAddress"));
+   }
 
-         public int getConsumerCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("ConsumerCount");
-         }
+   public void testSetExpiryAddress() throws Exception
+   {
+      final String expiryAddress = randomString();
 
-         public String getDeadLetterAddress()
-         {
-            return (String)proxy.retrieveAttributeValue("DeadLetterAddress");
-         }
+      
 
-         public int getDeliveringCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("DeliveringCount");
-         }
+      assertNull(proxy.retrieveAttributeValue("ExpiryAddress"));
 
-         public String getExpiryAddress()
-         {
-            return (String)proxy.retrieveAttributeValue("ExpiryAddress");
-         }
+      proxy.invokeOperation("setExpiryAddress", expiryAddress);
+      assertEquals(expiryAddress, proxy.retrieveAttributeValue("ExpiryAddress"));
+   }
 
-         public int getMessageCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("MessageCount");
-         }
+   public void testExpireMessage() throws Exception
+   {            
+      proxy.invokeOperation("setExpiryAddress", expiryQueue.getAddress());
 
-         public int getMessagesAdded()
-         {
-            return (Integer)proxy.retrieveAttributeValue("MessagesAdded");
-         }
+      String[] messageIDs = JMSUtil.sendMessages(queue, 1);
 
-         public String getName()
-         {
-            return (String)proxy.retrieveAttributeValue("Name");
-         }
+      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
+      assertEquals(0, expiryProxy.retrieveAttributeValue("MessageCount"));
 
-         public long getScheduledCount()
-         {
-            return (Long)proxy.retrieveAttributeValue("ScheduledCount");
-         }
+      assertTrue((Boolean)proxy.invokeOperation("expireMessage", messageIDs[0]));
 
-         public boolean isDurable()
-         {
-            return (Boolean)proxy.retrieveAttributeValue("Durable");
-         }
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+      assertEquals(1, expiryProxy.retrieveAttributeValue("MessageCount"));
 
-         public boolean isTemporary()
-         {
-            return (Boolean)proxy.retrieveAttributeValue("Temporary");
-         }
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+      connection.start();
 
-         public TabularData listAllMessages() throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listAllMessages");
-         }
+      MessageConsumer consumer = JMSUtil.createConsumer(connection, expiryQueue);
+      Message message = consumer.receive(500);
+      assertNotNull(message);
+      assertEquals(messageIDs[0], message.getJMSMessageID());
+      
+      connection.close();
+   }
 
-         public CompositeData listMessageCounter() throws Exception
-         {
-            return (CompositeData)proxy.invokeOperation("listMessageCounter");
-         }
+   public void testExpireMessageWithUnknownMessageID() throws Exception
+   {
+      String unknownMessageID = randomString();
 
-         public String listMessageCounterAsHTML() throws Exception
-         {
-            return (String)proxy.invokeOperation("listMessageCounterAsHTML");
-         }
+      
 
-         public TabularData listMessageCounterHistory() throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listMessageCounterHistory");
-         }
+      try
+      {
+         proxy.invokeOperation("ExpireMessage", unknownMessageID);
+         fail();
+      }
+      catch (Exception e)
+      {
+      }
+   }
 
-         public String listMessageCounterHistoryAsHTML() throws Exception
-         {
-            return (String)proxy.invokeOperation("listMessageCounterHistoryAsHTML");
-         }
+   public void testExpireMessagesWithFilter() throws Exception
+   {
+      String key = new String("key");
+      long matchingValue = randomLong();
+      long unmatchingValue = matchingValue + 1;
+      String filter = key + " =" + matchingValue;
 
-         public TabularData listMessages(String filter) throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listMessages", filter);
-         }
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
 
-         public int moveAllMessages(String otherQueueName) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("moveAllMessages", otherQueueName);
-         }
+      // send on queue
+      JMSUtil.sendMessageWithProperty(session, queue, key, matchingValue);
+      JMSUtil.sendMessageWithProperty(session, queue, key, unmatchingValue);
 
-         public int moveMatchingMessages(String filter, String otherQueueName) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("moveMatchingMessages", filter, otherQueueName);
-         }
+      connection.close();
 
-         public boolean moveMessage(String messageID, String otherQueueName) throws Exception
-         {
-            return (Boolean)proxy.invokeOperation("moveMessage", messageID, otherQueueName);
-         }
+      
+      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
 
-         public int removeMatchingMessages(String filter) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("removeMatchingMessages", filter);
-         }
+      int expiredMessagesCount = (Integer)proxy.invokeOperation("expireMessages", filter);
+      assertEquals(1, expiredMessagesCount);
+      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
 
-         public boolean removeMessage(String messageID) throws Exception
-         {
-            return (Boolean)proxy.invokeOperation("removeMessage", messageID);
-         }
+      // consume the unmatched message from queue
+      JMSUtil.consumeMessages(1, queue);
+   }
 
-         public boolean sendMessageToDLQ(String messageID) throws Exception
-         {
-            return (Boolean)proxy.invokeOperation("sendMessageToDLQ", messageID);
-         }
+   public void testCountMessagesWithFilter() throws Exception
+   {
+      String key = "key";
+      long matchingValue = randomLong();
+      long unmatchingValue = matchingValue + 1;
 
-         public void setDeadLetterAddress(String deadLetterAddress) throws Exception
-         {
-            proxy.invokeOperation("setDeadLetterAddress", deadLetterAddress);
-         }
+      
 
-         public void setExpiryAddress(String expiryAddress) throws Exception
-         {
-            proxy.invokeOperation("setExpiryAddress", expiryAddress);
-         }
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
 
-         public String getAddress()
-         {
-            return (String)proxy.retrieveAttributeValue("Address");
-         }
+      JMSUtil.sendMessageWithProperty(session, queue, key, matchingValue);
+      JMSUtil.sendMessageWithProperty(session, queue, key, unmatchingValue);
+      JMSUtil.sendMessageWithProperty(session, queue, key, matchingValue);
 
-         public String getJNDIBinding()
-         {
-            return (String)proxy.retrieveAttributeValue("JNDIBinding");
-         }
+      assertEquals(3, proxy.retrieveAttributeValue("MessageCount"));
 
-         public int removeAllMessages() throws Exception
+      assertEquals(2, proxy.invokeOperation("countMessages", key + " =" + matchingValue));
+      assertEquals(1, proxy.invokeOperation("countMessages", key + " =" + unmatchingValue));
+
+      session.close();
+   }
+
+   public void testGetDeadLetterAddress() throws Exception
+   {
+      final SimpleString deadLetterAddress = randomSimpleString();
+      
+      assertNull(proxy.retrieveAttributeValue("DeadLetterAddress"));
+
+      server.getAddressSettingsRepository().addMatch(queue.getAddress(), new AddressSettings()
+      {
+         @Override
+         public SimpleString getDeadLetterAddress()
          {
-            return (Integer)proxy.invokeOperation("removeAllMessages");
+            return deadLetterAddress;
          }
-         
-      };
+      });
 
-     
+      assertEquals(deadLetterAddress.toString(), proxy.retrieveAttributeValue("DeadLetterAddress"));
    }
-   // Public --------------------------------------------------------
 
+   public void testSetDeadLetterAddress() throws Exception
+   {
+      final String deadLetterAddress = randomString();
+      
+      assertNull(proxy.retrieveAttributeValue("DeadLetterAddress"));
+
+      proxy.invokeOperation("setDeadLetterAddress", deadLetterAddress);
+      assertEquals(deadLetterAddress, proxy.retrieveAttributeValue("DeadLetterAddress"));
+   }
+
+   public void testSendMessageToDLQ() throws Exception
+   {
+      String deadLetterQueue = randomString();
+      serverManager.createQueue(deadLetterQueue, deadLetterQueue);
+      JBossQueue dlq = new JBossQueue(deadLetterQueue);
+
+      Connection conn = createConnection();
+      Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+      MessageProducer producer = sess.createProducer(queue);
+
+      // send 2 messages on queue
+      Message message = sess.createMessage();
+      producer.send(message);
+      producer.send(sess.createMessage());
+
+      conn.close();
+
+      
+      JMSQueueControlMBean dlqControl = ManagementControlHelper.createJMSQueueControl(dlq, mbeanServer);
+
+      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
+      assertEquals(0, dlqControl.getMessageCount());
+
+      proxy.invokeOperation("setDeadLetterAddress", dlq.getAddress());
+
+      boolean movedToDeadLetterAddress = (Boolean)proxy.invokeOperation("sendMessageToDLQ", message.getJMSMessageID());
+      assertTrue(movedToDeadLetterAddress);
+      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
+      assertEquals(1, dlqControl.getMessageCount());
+
+      // check there is a single message to consume from queue
+      JMSUtil.consumeMessages(1, queue);
+
+      // check there is a single message to consume from deadletter queue
+      JMSUtil.consumeMessages(1, dlq);
+
+      serverManager.destroyQueue(deadLetterQueue);
+   }
+
+   public void testSendMessageToDLQWithUnknownMessageID() throws Exception
+   {
+      String unknownMessageID = randomString();
+
+      
+
+      try
+      {
+         proxy.invokeOperation("sendMessageToDLQ", unknownMessageID);
+         fail();
+      }
+      catch (Exception e)
+      {
+      }
+
+   }
+
+   public void testMoveAllMessages() throws Exception
+   {
+      String otherQueueName = randomString();
+
+      serverManager.createQueue(otherQueueName, otherQueueName);
+      JBossQueue otherQueue = new JBossQueue(otherQueueName);
+
+      // send on queue
+      JMSUtil.sendMessages(queue, 2);
+
+      
+      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
+
+      // moved all messages to otherQueue
+      int movedMessagesCount = (Integer)proxy.invokeOperation("moveAllMessages", otherQueueName);
+      assertEquals(2, movedMessagesCount);
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+
+      // check there is no message to consume from queue
+      JMSUtil.consumeMessages(0, queue);
+
+      // consume the message from otherQueue
+      JMSUtil.consumeMessages(2, otherQueue);
+
+      serverManager.destroyQueue(otherQueueName);
+   }
+
+   public void testMoveAllMessagesToUknownQueue() throws Exception
+   {
+      String unknownQueue = randomString();
+
+      
+      try
+      {
+         proxy.invokeOperation("moveAllMessages", unknownQueue);
+         fail();
+      }
+      catch (Exception e)
+      {
+      }
+   }
+
+   public void testMoveMatchingMessages() throws Exception
+   {
+      String key = "key";
+      long matchingValue = randomLong();
+      long unmatchingValue = matchingValue + 1;
+      String filter = "key = " + matchingValue;
+      String otherQueueName = randomString();
+
+      serverManager.createQueue(otherQueueName, otherQueueName);
+      JBossQueue otherQueue = new JBossQueue(otherQueueName);
+
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+      // send on queue
+      JMSUtil.sendMessageWithProperty(session, queue, key, matchingValue);
+      JMSUtil.sendMessageWithProperty(session, queue, key, unmatchingValue);
+
+      
+      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
+
+      // moved matching messages to otherQueue
+      int movedMessagesCount = (Integer)proxy.invokeOperation("moveMatchingMessages", filter, otherQueueName);
+      assertEquals(1, movedMessagesCount);
+      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
+
+      connection.start();
+      MessageConsumer consumer = session.createConsumer(queue);
+      Message message = consumer.receive(500);
+      assertNotNull(message);
+      assertEquals(unmatchingValue, message.getLongProperty(key));
+      assertNull(consumer.receive(500));
+
+      JMSUtil.consumeMessages(1, otherQueue);
+
+      serverManager.destroyQueue(otherQueueName);
+
+      connection.close();
+   }
+
+   public void testMoveMessage() throws Exception
+   {
+      String otherQueueName = randomString();
+
+      serverManager.createQueue(otherQueueName, otherQueueName);
+      JBossQueue otherQueue = new JBossQueue(otherQueueName);
+
+      String[] messageIDs = JMSUtil.sendMessages(queue, 1);
+      
+      
+      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
+
+      boolean moved = (Boolean)proxy.invokeOperation("moveMessage", messageIDs[0], otherQueueName);
+      assertTrue(moved);
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+
+      JMSUtil.consumeMessages(0, queue);
+      JMSUtil.consumeMessages(1, otherQueue);
+
+      serverManager.destroyQueue(otherQueueName);
+   }
+   
+   public void testMoveMessageWithUnknownMessageID() throws Exception
+   {
+      String unknownMessageID = randomString();
+      String otherQueueName = randomString();
+
+      serverManager.createQueue(otherQueueName, otherQueueName);
+
+      
+      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+
+      try
+      {
+         proxy.invokeOperation("moveMessage", unknownMessageID, otherQueueName);
+         fail();
+      }
+      catch (Exception e)
+      {
+      }
+
+      serverManager.destroyQueue(otherQueueName);
+   }
+   
+   public void testMoveMessageToUnknownQueue() throws Exception
+   {
+      String unknwonQueue = randomString();
+
+      String[] messageIDs = JMSUtil.sendMessages(queue, 1);
+      
+      
+      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
+
+      try
+      {
+         proxy.invokeOperation("moveMessage", messageIDs[0], unknwonQueue);
+         fail();
+      }
+      catch (Exception e)
+      {
+      }
+
+      JMSUtil.consumeMessages(1, queue);
+   }
+   
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------
 
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+
+      Configuration conf = new ConfigurationImpl();
+      conf.setSecurityEnabled(false);
+      conf.setJMXManagementEnabled(true);
+      conf.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));
+      server = Messaging.newMessagingServer(conf, mbeanServer, false);
+      server.start();
+
+      serverManager = new JMSServerManagerImpl(server);
+      serverManager.start();
+      serverManager.activated();
+      context = new InVMContext();
+      serverManager.setContext(context);
+
+      String queueName = randomString();
+      serverManager.createQueue(queueName, queueName);
+      queue = new JBossQueue(queueName);
+      
+      JBossConnectionFactory cf = new JBossConnectionFactory(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+      connection = cf.createQueueConnection();
+      session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
+      connection.start();
+      
+      JBossQueue managementQueue = new JBossQueue(DEFAULT_MANAGEMENT_ADDRESS.toString(),
+                                                  DEFAULT_MANAGEMENT_ADDRESS.toString());
+      proxy = new JMSMessagingProxy(session,
+                                    managementQueue,
+                                    ResourceNames.JMS_QUEUE + queue.getQueueName());
+      
+      String expiryQueueName = randomString();
+      serverManager.createQueue(expiryQueueName, expiryQueueName);
+      expiryQueue = new JBossQueue(expiryQueueName);
+      
+      
+      expiryProxy = new JMSMessagingProxy(session,
+                                          managementQueue,
+                                          ResourceNames.JMS_QUEUE + expiryQueue.getQueueName());
+                                   
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      connection.close();
+      
+      server.stop();
+
+      super.tearDown();
+   }
+
    // Private -------------------------------------------------------
 
+   private Connection createConnection() throws JMSException
+   {
+      JBossConnectionFactory cf = new JBossConnectionFactory(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+      
+      cf.setBlockOnPersistentSend(true);
+                
+      return cf.createConnection();
+   }
+
    // Inner classes -------------------------------------------------
 
-}
+}
\ No newline at end of file

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/TopicControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/TopicControlTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/TopicControlTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -26,10 +26,11 @@
 import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
+import java.util.Map;
+
 import javax.jms.Connection;
 import javax.jms.Session;
 import javax.jms.TopicSubscriber;
-import javax.management.openmbean.TabularData;
 
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.TransportConfiguration;
@@ -83,24 +84,24 @@
       assertEquals(topic.isTemporary(), topicControl.isTemporary());
       assertEquals(topic.getName(), topicControl.getJNDIBinding());
    }
-   
+
    public void testGetXXXSubscriptionsCount() throws Exception
    {
       Connection connection_1 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
 
       // 1 non-durable subscriber, 2 durable subscribers
       JMSUtil.createConsumer(connection_1, topic);
-      
+
       Connection connection_2 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
       JMSUtil.createDurableSubscriber(connection_2, topic, clientID, subscriptionName);
       Connection connection_3 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
       JMSUtil.createDurableSubscriber(connection_3, topic, clientID, subscriptionName + "2");
 
       TopicControlMBean topicControl = createManagementControl();
-      assertEquals(3, topicControl.getSubcriptionsCount());
-      assertEquals(1, topicControl.getNonDurableSubcriptionsCount());
-      assertEquals(2, topicControl.getDurableSubcriptionsCount());
-      
+      assertEquals(3, topicControl.getSubscriptionCount());
+      assertEquals(1, topicControl.getNonDurableSubscriptionCount());
+      assertEquals(2, topicControl.getDurableSubscriptionCount());
+
       connection_1.close();
       connection_2.close();
       connection_3.close();
@@ -119,15 +120,15 @@
       TopicControlMBean topicControl = createManagementControl();
 
       assertEquals(0, topicControl.getMessageCount());
-      assertEquals(0, topicControl.getNonDurableMessagesCount());
-      assertEquals(0, topicControl.getDurableMessagesCount());
+      assertEquals(0, topicControl.getNonDurableMessageCount());
+      assertEquals(0, topicControl.getDurableMessageCount());
 
       JMSUtil.sendMessages(topic, 2);
 
       assertEquals(3 * 2, topicControl.getMessageCount());
-      assertEquals(1 * 2, topicControl.getNonDurableMessagesCount());
-      assertEquals(2 * 2, topicControl.getDurableMessagesCount());
-      
+      assertEquals(1 * 2, topicControl.getNonDurableMessageCount());
+      assertEquals(2 * 2, topicControl.getDurableMessageCount());
+
       connection_1.close();
       connection_2.close();
       connection_3.close();
@@ -144,15 +145,15 @@
       JMSUtil.createDurableSubscriber(connection_3, topic, clientID, subscriptionName + "2");
 
       TopicControlMBean topicControl = createManagementControl();
-      assertEquals(3, topicControl.listAllSubscriptions().size());
-      assertEquals(1, topicControl.listNonDurableSubscriptions().size());
-      assertEquals(2, topicControl.listDurableSubscriptions().size());
-      
+      assertEquals(3, topicControl.listAllSubscriptions().length);
+      assertEquals(1, topicControl.listNonDurableSubscriptions().length);
+      assertEquals(2, topicControl.listDurableSubscriptions().length);
+
       connection_1.close();
       connection_2.close();
       connection_3.close();
    }
-   
+
    public void testCountMessagesForSubscription() throws Exception
    {
       String key = "key";
@@ -161,20 +162,21 @@
 
       Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
       JMSUtil.createDurableSubscriber(connection, topic, clientID, subscriptionName);
-      
+
       Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
 
       JMSUtil.sendMessageWithProperty(session, topic, key, matchingValue);
       JMSUtil.sendMessageWithProperty(session, topic, key, unmatchingValue);
       JMSUtil.sendMessageWithProperty(session, topic, key, matchingValue);
-      
+
       TopicControlMBean topicControl = createManagementControl();
 
       assertEquals(3, topicControl.getMessageCount());
 
       assertEquals(2, topicControl.countMessagesForSubscription(clientID, subscriptionName, key + " =" + matchingValue));
-      assertEquals(1, topicControl.countMessagesForSubscription(clientID, subscriptionName, key + " =" + unmatchingValue));
-      
+      assertEquals(1, topicControl.countMessagesForSubscription(clientID, subscriptionName, key + " =" +
+                                                                                            unmatchingValue));
+
       connection.close();
    }
 
@@ -193,7 +195,7 @@
       {
       }
    }
-   
+
    public void testCountMessagesForUnknownClientID() throws Exception
    {
       String unknownClientID = randomString();
@@ -215,15 +217,15 @@
       Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
 
       JMSUtil.createDurableSubscriber(connection, topic, clientID, subscriptionName);
-      
+
       TopicControlMBean topicControl = createManagementControl();
-      assertEquals(1, topicControl.getDurableSubcriptionsCount());
-      
+      assertEquals(1, topicControl.getDurableSubscriptionCount());
+
       connection.close();
 
       topicControl.dropDurableSubscription(clientID, subscriptionName);
 
-      assertEquals(0, topicControl.getDurableSubcriptionsCount());            
+      assertEquals(0, topicControl.getDurableSubscriptionCount());
    }
 
    public void testDropDurableSubscriptionWithUnknownSubscription() throws Exception
@@ -233,7 +235,7 @@
       JMSUtil.createDurableSubscriber(connection, topic, clientID, subscriptionName);
 
       TopicControlMBean topicControl = createManagementControl();
-      assertEquals(1, topicControl.getDurableSubcriptionsCount());
+      assertEquals(1, topicControl.getDurableSubscriptionCount());
 
       try
       {
@@ -245,53 +247,59 @@
 
       }
 
-      assertEquals(1, topicControl.getDurableSubcriptionsCount());
-      
+      assertEquals(1, topicControl.getDurableSubscriptionCount());
+
       connection.close();
    }
 
    public void testDropAllSubscriptions() throws Exception
    {
       Connection connection_1 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
-      TopicSubscriber durableSubscriber_1 = JMSUtil.createDurableSubscriber(connection_1, topic, clientID, subscriptionName);
+      TopicSubscriber durableSubscriber_1 = JMSUtil.createDurableSubscriber(connection_1,
+                                                                            topic,
+                                                                            clientID,
+                                                                            subscriptionName);
       Connection connection_2 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
-      TopicSubscriber durableSubscriber_2 = JMSUtil.createDurableSubscriber(connection_2, topic, clientID, subscriptionName + "2");
+      TopicSubscriber durableSubscriber_2 = JMSUtil.createDurableSubscriber(connection_2,
+                                                                            topic,
+                                                                            clientID,
+                                                                            subscriptionName + "2");
 
       TopicControlMBean topicControl = createManagementControl();
-      assertEquals(2, topicControl.getSubcriptionsCount());
+      assertEquals(2, topicControl.getSubscriptionCount());
 
       durableSubscriber_1.close();
       durableSubscriber_2.close();
-      
-      assertEquals(2, topicControl.getSubcriptionsCount());
+
+      assertEquals(2, topicControl.getSubscriptionCount());
       topicControl.dropAllSubscriptions();
 
-      assertEquals(0, topicControl.getSubcriptionsCount());
-      
+      assertEquals(0, topicControl.getSubscriptionCount());
+
       connection_1.close();
       connection_2.close();
    }
-   
+
    public void testRemoveAllMessages() throws Exception
    {
       Connection connection_1 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
       JMSUtil.createDurableSubscriber(connection_1, topic, clientID, subscriptionName);
       Connection connection_2 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
       JMSUtil.createDurableSubscriber(connection_2, topic, clientID, subscriptionName + "2");
-      
+
       JMSUtil.sendMessages(topic, 3);
-      
+
       TopicControlMBean topicControl = createManagementControl();
-      assertEquals(3  * 2, topicControl.getMessageCount());
+      assertEquals(3 * 2, topicControl.getMessageCount());
 
       int removedCount = topicControl.removeAllMessages();
       assertEquals(3 * 2, removedCount);
       assertEquals(0, topicControl.getMessageCount());
-      
+
       connection_1.close();
-      connection_2.close();      
+      connection_2.close();
    }
-   
+
    public void testListMessagesForSubscription() throws Exception
    {
       Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
@@ -300,20 +308,22 @@
 
       JMSUtil.sendMessages(topic, 3);
 
-      TopicControlMBean topicControl = createManagementControl();      
-      TabularData tabularData = topicControl.listMessagesForSubscription(JBossTopic.createQueueNameForDurableSubscription(clientID, subscriptionName));
-      assertEquals(3, tabularData.size());
+      TopicControlMBean topicControl = createManagementControl();
+      Map<String, Object>[] messages = topicControl.listMessagesForSubscription(JBossTopic.createQueueNameForDurableSubscription(clientID,
+                                                                                                                                 subscriptionName));
+      assertEquals(3, messages.length);
    }
-   
+
    public void testListMessagesForSubscriptionWithUnknownClientID() throws Exception
    {
       String unknownClientID = randomString();
-      
-      TopicControlMBean topicControl = createManagementControl();      
 
+      TopicControlMBean topicControl = createManagementControl();
+
       try
       {
-         topicControl.listMessagesForSubscription(JBossTopic.createQueueNameForDurableSubscription(unknownClientID, subscriptionName));
+         topicControl.listMessagesForSubscription(JBossTopic.createQueueNameForDurableSubscription(unknownClientID,
+                                                                                                   subscriptionName));
          fail();
       }
       catch (Exception e)
@@ -324,12 +334,13 @@
    public void testListMessagesForSubscriptionWithUnknownSubscription() throws Exception
    {
       String unknownSubscription = randomString();
-      
-      TopicControlMBean topicControl = createManagementControl();      
 
+      TopicControlMBean topicControl = createManagementControl();
+
       try
       {
-         topicControl.listMessagesForSubscription(JBossTopic.createQueueNameForDurableSubscription(clientID, unknownSubscription));
+         topicControl.listMessagesForSubscription(JBossTopic.createQueueNameForDurableSubscription(clientID,
+                                                                                                   unknownSubscription));
          fail();
       }
       catch (Exception e)
@@ -345,7 +356,7 @@
    protected void setUp() throws Exception
    {
       super.setUp();
-      
+
       Configuration conf = new ConfigurationImpl();
       conf.setSecurityEnabled(false);
       conf.setJMXManagementEnabled(true);
@@ -374,13 +385,12 @@
 
       super.tearDown();
    }
-   
+
    protected TopicControlMBean createManagementControl() throws Exception
    {
       return createTopicControl(topic, mbeanServer);
    }
 
-
    // Private -------------------------------------------------------
 
    // Inner classes -------------------------------------------------

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/TopicControlUsingJMSTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/TopicControlUsingJMSTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/TopicControlUsingJMSTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,193 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.tests.integration.jms.server.management;
-
-import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MANAGEMENT_ADDRESS;
-
-import javax.jms.QueueConnection;
-import javax.jms.QueueSession;
-import javax.jms.Session;
-import javax.management.openmbean.TabularData;
-
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.management.ResourceNames;
-import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
-import org.jboss.messaging.jms.JBossQueue;
-import org.jboss.messaging.jms.client.JBossConnectionFactory;
-import org.jboss.messaging.jms.server.management.TopicControlMBean;
-
-/**
- * A JMSQueueControlUsingJMSTest
- *
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- */
-public class TopicControlUsingJMSTest extends TopicControlTest
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   private QueueConnection connection;
-
-   private QueueSession session;
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // JMSServerControlTest overrides --------------------------------
-
-   @Override
-   protected void setUp() throws Exception
-   {
-      super.setUp();
-
-      JBossConnectionFactory cf = new JBossConnectionFactory(new TransportConfiguration(InVMConnectorFactory.class.getName()));
-      connection = cf.createQueueConnection();
-      session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
-      connection.start();
-   }
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      connection.close();
-
-      super.tearDown();
-   }
-
-   @Override
-   protected TopicControlMBean createManagementControl() throws Exception
-   {
-      JBossQueue managementQueue = new JBossQueue(DEFAULT_MANAGEMENT_ADDRESS.toString(),
-                                                  DEFAULT_MANAGEMENT_ADDRESS.toString());
-      final JMSMessagingProxy proxy = new JMSMessagingProxy(session,
-                                                            managementQueue,
-                                                            ResourceNames.JMS_TOPIC + topic.getTopicName());
-
-      return new TopicControlMBean()
-      {
-         public int countMessagesForSubscription(String clientID, String subscriptionName, String filter) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("countMessagesForSubscription", clientID, subscriptionName, filter);
-         }
-
-         public void dropAllSubscriptions() throws Exception
-         {
-            proxy.invokeOperation("dropAllSubscriptions");
-         }
-
-         public void dropDurableSubscription(String clientID, String subscriptionName) throws Exception
-         {
-            proxy.invokeOperation("dropDurableSubscription", clientID, subscriptionName);
-         }
-
-         public int getDurableMessagesCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("DurableMessagesCount");
-         }
-
-         public int getDurableSubcriptionsCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("DurableSubcriptionsCount");
-         }
-
-         public int getNonDurableMessagesCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("NonDurableMessagesCount");
-         }
-
-         public int getNonDurableSubcriptionsCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("NonDurableSubcriptionsCount");
-         }
-
-         public int getSubcriptionsCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("SubcriptionsCount");
-         }
-
-         public TabularData listAllSubscriptions() throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listAllSubscriptions");
-         }
-
-         public TabularData listDurableSubscriptions() throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listDurableSubscriptions");
-         }
-
-         public TabularData listMessagesForSubscription(String queueName) throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listMessagesForSubscription", queueName);
-         }
-
-         public TabularData listNonDurableSubscriptions() throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listNonDurableSubscriptions");
-         }
-
-         public String getAddress()
-         {
-            return (String)proxy.retrieveAttributeValue("Address");
-         }
-
-         public String getJNDIBinding()
-         {
-            return (String)proxy.retrieveAttributeValue("JNDIBinding");
-         }
-
-         public int getMessageCount() throws Exception
-         {
-            return (Integer)proxy.retrieveAttributeValue("MessageCount");
-         }
-
-         public String getName()
-         {
-            return (String)proxy.retrieveAttributeValue("Name");
-         }
-
-         public boolean isTemporary()
-         {
-            return (Boolean)proxy.retrieveAttributeValue("Temporary");
-         }
-
-         public int removeAllMessages() throws Exception
-         {
-            return (Integer)proxy.invokeOperation("removeAllMessages");
-         }
-
-      };
-   }
-   // Public --------------------------------------------------------
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-
-}

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/AcceptorControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/AcceptorControlUsingCoreTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/AcceptorControlUsingCoreTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,7 +22,7 @@
 
 package org.jboss.messaging.tests.integration.management;
 
-import javax.management.openmbean.TabularData;
+import java.util.Map;
 
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
@@ -64,8 +64,7 @@
       return new AcceptorControlMBean()
       {
 
-         private final CoreMessagingProxy proxy = new CoreMessagingProxy(session,
-                                                                         ResourceNames.CORE_ACCEPTOR + name);
+         private final CoreMessagingProxy proxy = new CoreMessagingProxy(session, ResourceNames.CORE_ACCEPTOR + name);
 
          public String getFactoryClassName()
          {
@@ -77,9 +76,9 @@
             return (String)proxy.retrieveAttributeValue("Name");
          }
 
-         public TabularData getParameters()
+         public Map<String, Object> getParameters()
          {
-            return (TabularData)proxy.retrieveAttributeValue("Parameters");
+            return (Map<String, Object>)proxy.retrieveAttributeValue("Parameters");
          }
 
          public void pause() throws Exception

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,6 +22,13 @@
 
 package org.jboss.messaging.tests.integration.management;
 
+import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+
+import java.util.HashSet;
+import java.util.Set;
+
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
@@ -36,15 +43,8 @@
 import org.jboss.messaging.core.security.Role;
 import org.jboss.messaging.core.server.Messaging;
 import org.jboss.messaging.core.server.MessagingServer;
-import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
-import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
-import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 import org.jboss.messaging.utils.SimpleString;
 
-import javax.management.openmbean.TabularData;
-import java.util.HashSet;
-import java.util.Set;
-
 /**
  * A QueueControlTest
  *
@@ -112,20 +112,27 @@
    {
       SimpleString address = randomSimpleString();
       SimpleString queue = randomSimpleString();
-      Role role = new Role(randomString(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean());
+      Role role = new Role(randomString(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean());
 
       session.createQueue(address, queue, true);
 
       AddressControlMBean addressControl = createManagementControl(address);
-      TabularData tabularData = addressControl.getRoles();
-      assertEquals(0, tabularData.size());
+      Object[] tabularData = addressControl.getRoles();
+      assertEquals(0, tabularData.length);
 
       Set<Role> newRoles = new HashSet<Role>();
       newRoles.add(role);
       server.getSecurityRepository().addMatch(address.toString(), newRoles);
 
       tabularData = addressControl.getRoles();
-      assertEquals(1, tabularData.size());
+      assertEquals(1, tabularData.length);
       RoleInfo[] roleInfos = RoleInfo.from(tabularData);
       assertEquals(role.getName(), roleInfos[0].getName());
       assertEquals(CheckType.CONSUME.hasRole(role), roleInfos[0].isConsume());
@@ -143,13 +150,20 @@
    {
       SimpleString address = randomSimpleString();
       SimpleString queue = randomSimpleString();
-      Role role = new Role(randomString(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean());
+      Role role = new Role(randomString(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean());
 
       session.createQueue(address, queue, true);
 
       AddressControlMBean addressControl = createManagementControl(address);
-      TabularData tabularData = addressControl.getRoles();
-      assertEquals(0, tabularData.size());
+      Object[] tabularData = addressControl.getRoles();
+      assertEquals(0, tabularData.length);
 
       addressControl.addRole(role.getName(),
                              CheckType.SEND.hasRole(role),
@@ -161,7 +175,7 @@
                              CheckType.MANAGE.hasRole(role));
 
       tabularData = addressControl.getRoles();
-      assertEquals(1, tabularData.size());
+      assertEquals(1, tabularData.length);
       RoleInfo[] roleInfos = RoleInfo.from(tabularData);
       assertEquals(role.getName(), roleInfos[0].getName());
       assertEquals(CheckType.CONSUME.hasRole(role), roleInfos[0].isConsume());
@@ -172,7 +186,6 @@
       assertEquals(CheckType.MANAGE.hasRole(role), roleInfos[0].isManage());
       assertEquals(CheckType.SEND.hasRole(role), roleInfos[0].isSend());
 
-
       session.deleteQueue(queue);
    }
 
@@ -180,13 +193,20 @@
    {
       SimpleString address = randomSimpleString();
       SimpleString queue = randomSimpleString();
-      Role role = new Role(randomString(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean());
+      Role role = new Role(randomString(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean(),
+                           randomBoolean());
 
       session.createQueue(address, queue, true);
 
       AddressControlMBean addressControl = createManagementControl(address);
-      TabularData tabularData = addressControl.getRoles();
-      assertEquals(0, tabularData.size());
+      Object[] tabularData = addressControl.getRoles();
+      assertEquals(0, tabularData.length);
 
       addressControl.addRole(role.getName(),
                              CheckType.SEND.hasRole(role),
@@ -198,18 +218,18 @@
                              CheckType.MANAGE.hasRole(role));
 
       tabularData = addressControl.getRoles();
-      assertEquals(1, tabularData.size());
+      assertEquals(1, tabularData.length);
 
       try
       {
          addressControl.addRole(role.getName(),
-                             CheckType.SEND.hasRole(role),
-                             CheckType.CONSUME.hasRole(role),
-                             CheckType.CREATE_DURABLE_QUEUE.hasRole(role),
-                             CheckType.DELETE_DURABLE_QUEUE.hasRole(role),
-                             CheckType.CREATE_NON_DURABLE_QUEUE.hasRole(role),
-                             CheckType.DELETE_NON_DURABLE_QUEUE.hasRole(role),
-                             CheckType.MANAGE.hasRole(role));
+                                CheckType.SEND.hasRole(role),
+                                CheckType.CONSUME.hasRole(role),
+                                CheckType.CREATE_DURABLE_QUEUE.hasRole(role),
+                                CheckType.DELETE_DURABLE_QUEUE.hasRole(role),
+                                CheckType.CREATE_NON_DURABLE_QUEUE.hasRole(role),
+                                CheckType.DELETE_NON_DURABLE_QUEUE.hasRole(role),
+                                CheckType.MANAGE.hasRole(role));
          fail("can not add a role which already exists");
       }
       catch (Exception e)
@@ -217,7 +237,7 @@
       }
 
       tabularData = addressControl.getRoles();
-      assertEquals(1, tabularData.size());
+      assertEquals(1, tabularData.length);
 
       session.deleteQueue(queue);
    }
@@ -231,18 +251,25 @@
       session.createQueue(address, queue, true);
 
       AddressControlMBean addressControl = createManagementControl(address);
-      TabularData tabularData = addressControl.getRoles();
-      assertEquals(0, tabularData.size());
+      Object[] tabularData = addressControl.getRoles();
+      assertEquals(0, tabularData.length);
 
-      addressControl.addRole(roleName, randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean());
+      addressControl.addRole(roleName,
+                             randomBoolean(),
+                             randomBoolean(),
+                             randomBoolean(),
+                             randomBoolean(),
+                             randomBoolean(),
+                             randomBoolean(),
+                             randomBoolean());
 
       tabularData = addressControl.getRoles();
-      assertEquals(1, tabularData.size());
+      assertEquals(1, tabularData.length);
 
       addressControl.removeRole(roleName);
 
       tabularData = addressControl.getRoles();
-      assertEquals(0, tabularData.size());
+      assertEquals(0, tabularData.length);
 
       session.deleteQueue(queue);
    }
@@ -256,8 +283,8 @@
       session.createQueue(address, queue, true);
 
       AddressControlMBean addressControl = createManagementControl(address);
-      TabularData tabularData = addressControl.getRoles();
-      assertEquals(0, tabularData.size());
+      Object[] tabularData = addressControl.getRoles();
+      assertEquals(0, tabularData.length);
 
       try
       {

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlUsingCoreTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlUsingCoreTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,6 +1,6 @@
 /*
  * JBoss, Home of Professional Open Source
- * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
+ * Copyright 2005-2008, Red Hat Middleware LLC, and individual contributors
  * by the @authors tag. See the copyright.txt in the distribution for a
  * full listing of individual contributors.
  *
@@ -22,86 +22,304 @@
 
 package org.jboss.messaging.tests.integration.management;
 
-import javax.management.openmbean.TabularData;
+import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
+import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
+import java.util.HashSet;
+import java.util.Set;
+
+import org.jboss.messaging.core.client.ClientSession;
+import org.jboss.messaging.core.client.ClientSessionFactory;
+import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
+import org.jboss.messaging.core.config.Configuration;
+import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.management.AddressControlMBean;
 import org.jboss.messaging.core.management.ResourceNames;
+import org.jboss.messaging.core.management.RoleInfo;
+import org.jboss.messaging.core.remoting.impl.invm.InVMAcceptorFactory;
+import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
+import org.jboss.messaging.core.security.CheckType;
+import org.jboss.messaging.core.security.Role;
+import org.jboss.messaging.core.server.Messaging;
+import org.jboss.messaging.core.server.MessagingServer;
 import org.jboss.messaging.utils.SimpleString;
 
 /**
- * A JMXQueueControlTest
+ * 
+ * A AddressControlUsingCoreTest
  *
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
  *
  *
  */
-public class AddressControlUsingCoreTest extends AddressControlTest
+public class AddressControlUsingCoreTest extends ManagementTestBase
 {
 
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
 
+   private MessagingServer server;
+
+   protected ClientSession session;
+   
    // Static --------------------------------------------------------
 
    // Constructors --------------------------------------------------
 
-   // AddressControlTest overrides --------------------------------
+   // Public --------------------------------------------------------
 
-   @Override
-   protected AddressControlMBean createManagementControl(final SimpleString address) throws Exception
+   public void testGetAddress() throws Exception
    {
-      return new AddressControlMBean()
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+
+      session.createQueue(address, queue, false);
+
+      CoreMessagingProxy proxy = createProxy(address);
+
+      assertEquals(address.toString(), proxy.retrieveAttributeValue("Address"));
+
+      session.deleteQueue(queue);
+   }
+
+   public void testGetQueueNames() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      SimpleString anotherQueue = randomSimpleString();
+
+      session.createQueue(address, queue, true);
+
+      CoreMessagingProxy proxy = createProxy(address);
+      Object[] queueNames = (Object[])proxy.retrieveAttributeValue("QueueNames");
+      assertEquals(1, queueNames.length);
+      assertEquals(queue.toString(), queueNames[0]);
+
+      session.createQueue(address, anotherQueue, false);
+      queueNames = (Object[])proxy.retrieveAttributeValue("QueueNames");
+      assertEquals(2, queueNames.length);
+
+      session.deleteQueue(queue);
+
+      queueNames = (Object[])proxy.retrieveAttributeValue("QueueNames");
+      assertEquals(1, queueNames.length);
+      assertEquals(anotherQueue.toString(), queueNames[0]);
+
+      session.deleteQueue(anotherQueue);
+   }
+
+   public void testGetRoles() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      Role role = new Role(randomString(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean());
+
+      session.createQueue(address, queue, true);
+
+      CoreMessagingProxy proxy = createProxy(address);
+      Object[] data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(0, data.length);
+
+      Set<Role> newRoles = new HashSet<Role>();
+      newRoles.add(role);
+      server.getSecurityRepository().addMatch(address.toString(), newRoles);
+
+      data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(1, data.length);
+      RoleInfo[] roleInfos = RoleInfo.from(data);
+      assertEquals(role.getName(), roleInfos[0].getName());
+      assertEquals(CheckType.CONSUME.hasRole(role), roleInfos[0].isConsume());
+      assertEquals(CheckType.CREATE_DURABLE_QUEUE.hasRole(role), roleInfos[0].isCreateDurableQueue());
+      assertEquals(CheckType.CREATE_NON_DURABLE_QUEUE.hasRole(role), roleInfos[0].isCreateNonDurableQueue());
+      assertEquals(CheckType.DELETE_DURABLE_QUEUE.hasRole(role), roleInfos[0].isDeleteDurableQueue());
+      assertEquals(CheckType.DELETE_NON_DURABLE_QUEUE.hasRole(role), roleInfos[0].isDeleteNonDurableQueue());
+      assertEquals(CheckType.MANAGE.hasRole(role), roleInfos[0].isManage());
+      assertEquals(CheckType.SEND.hasRole(role), roleInfos[0].isSend());
+
+      session.deleteQueue(queue);
+   }
+
+   public void testAddRole() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      Role role = new Role(randomString(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean());
+
+      session.createQueue(address, queue, true);
+
+      CoreMessagingProxy proxy = createProxy(address);
+      Object[] data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(0, data.length);
+
+      proxy.invokeOperation("addRole", role.getName(),
+                             CheckType.SEND.hasRole(role),
+                             CheckType.CONSUME.hasRole(role),
+                             CheckType.CREATE_DURABLE_QUEUE.hasRole(role),
+                             CheckType.DELETE_DURABLE_QUEUE.hasRole(role),
+                             CheckType.CREATE_NON_DURABLE_QUEUE.hasRole(role),
+                             CheckType.DELETE_NON_DURABLE_QUEUE.hasRole(role),
+                             CheckType.MANAGE.hasRole(role));
+
+      data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(1, data.length);
+      RoleInfo[] roleInfos = RoleInfo.from(data);
+      assertEquals(role.getName(), roleInfos[0].getName());
+      assertEquals(CheckType.CONSUME.hasRole(role), roleInfos[0].isConsume());
+      assertEquals(CheckType.CREATE_DURABLE_QUEUE.hasRole(role), roleInfos[0].isCreateDurableQueue());
+      assertEquals(CheckType.CREATE_NON_DURABLE_QUEUE.hasRole(role), roleInfos[0].isCreateNonDurableQueue());
+      assertEquals(CheckType.DELETE_DURABLE_QUEUE.hasRole(role), roleInfos[0].isDeleteDurableQueue());
+      assertEquals(CheckType.DELETE_NON_DURABLE_QUEUE.hasRole(role), roleInfos[0].isDeleteNonDurableQueue());
+      assertEquals(CheckType.MANAGE.hasRole(role), roleInfos[0].isManage());
+      assertEquals(CheckType.SEND.hasRole(role), roleInfos[0].isSend());
+
+
+      session.deleteQueue(queue);
+   }
+
+   public void testAddRoleWhichAlreadyExists() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      Role role = new Role(randomString(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean());
+
+      session.createQueue(address, queue, true);
+
+      CoreMessagingProxy proxy = createProxy(address);
+      Object[] data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(0, data.length);
+
+      proxy.invokeOperation("addRole", role.getName(),
+                             CheckType.SEND.hasRole(role),
+                             CheckType.CONSUME.hasRole(role),
+                             CheckType.CREATE_DURABLE_QUEUE.hasRole(role),
+                             CheckType.DELETE_DURABLE_QUEUE.hasRole(role),
+                             CheckType.CREATE_NON_DURABLE_QUEUE.hasRole(role),
+                             CheckType.DELETE_NON_DURABLE_QUEUE.hasRole(role),
+                             CheckType.MANAGE.hasRole(role));
+
+      data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(1, data.length);
+
+      try
       {
-         private final CoreMessagingProxy proxy = new CoreMessagingProxy(session, ResourceNames.CORE_ADDRESS + address);
+         proxy.invokeOperation("addRole", role.getName(),
+                             CheckType.SEND.hasRole(role),
+                             CheckType.CONSUME.hasRole(role),
+                             CheckType.CREATE_DURABLE_QUEUE.hasRole(role),
+                             CheckType.DELETE_DURABLE_QUEUE.hasRole(role),
+                             CheckType.CREATE_NON_DURABLE_QUEUE.hasRole(role),
+                             CheckType.DELETE_NON_DURABLE_QUEUE.hasRole(role),
+                             CheckType.MANAGE.hasRole(role));
+         fail("can not add a role which already exists");
+      }
+      catch (Exception e)
+      {
+      }
 
-         public void addRole(String name,
-                             boolean send,
-                             boolean consume,
-                             boolean createDurableQueue,
-                             boolean deleteDurableQueue,
-                             boolean createNonDurableQueue,
-                             boolean deleteNonDurableQueue,
-                             boolean manage) throws Exception
-         {
-            proxy.invokeOperation("addRole",
-                                  name,
-                                  send,
-                                  consume,
-                                  createDurableQueue,
-                                  deleteDurableQueue,
-                                  createNonDurableQueue,
-                                  deleteNonDurableQueue,
-                                  manage);
-         }
+      data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(1, data.length);
 
-         public String getAddress()
-         {
-            return (String)proxy.retrieveAttributeValue("Address");
-         }
+      session.deleteQueue(queue);
+   }
 
-         public String[] getQueueNames() throws Exception
-         {
-            return (String[])proxy.retrieveAttributeValue("QueueNames");
-         }
+   public void testRemoveRole() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      String roleName = randomString();
 
-         public TabularData getRoles() throws Exception
-         {
-            return (TabularData)proxy.retrieveAttributeValue("Roles");
-         }
+      session.createQueue(address, queue, true);
 
-         public void removeRole(String name) throws Exception
-         {
-            proxy.invokeOperation("removeRole", name);
-         }
-      };
+      CoreMessagingProxy proxy = createProxy(address);
+      Object[] data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(0, data.length);
+
+      proxy.invokeOperation("addRole", roleName, randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean());
+
+      data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(1, data.length);
+
+      proxy.invokeOperation("removeRole", roleName);  
+
+      data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(0, data.length);
+
+      session.deleteQueue(queue);
    }
-   // Public --------------------------------------------------------
 
+   public void testRemoveRoleWhichDoesNotExist() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      String roleName = randomString();
+
+      session.createQueue(address, queue, true);
+
+      CoreMessagingProxy proxy = createProxy(address);
+      Object[] data = (Object[])proxy.retrieveAttributeValue("Roles");
+      assertEquals(0, data.length);
+
+      try
+      {
+         proxy.invokeOperation("removeRole", roleName);  
+         fail("can not remove a role which does not exist");
+      }
+      catch (Exception e)
+      {
+      }
+
+      session.deleteQueue(queue);
+   }
+
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------
 
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+
+      Configuration conf = new ConfigurationImpl();
+      conf.setSecurityEnabled(false);
+      conf.setJMXManagementEnabled(true);
+      conf.getAcceptorConfigurations().add(new TransportConfiguration(InVMAcceptorFactory.class.getName()));
+      server = Messaging.newMessagingServer(conf, mbeanServer, false);
+      server.start();
+
+      ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+      sf.setBlockOnNonPersistentSend(true);
+      sf.setBlockOnNonPersistentSend(true);
+      session = sf.createSession(false, true, false);
+      session.start();
+   }
+      
+   
+   protected CoreMessagingProxy createProxy(final SimpleString address) throws Exception
+   {
+      CoreMessagingProxy proxy = new CoreMessagingProxy(session, ResourceNames.CORE_ADDRESS + address);
+      
+      return proxy;
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      session.close();
+
+      server.stop();
+
+      super.tearDown();
+   }
+
+   protected AddressControlMBean createManagementControl(SimpleString address) throws Exception
+   {
+      return ManagementControlHelper.createAddressControl(address, mbeanServer);
+   }
+
    // Private -------------------------------------------------------
 
    // Inner classes -------------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -90,9 +90,9 @@
       assertEquals(bridgeConfig.isFailoverOnServerShutdown(), bridgeControl.isFailoverOnServerShutdown());
       assertEquals(bridgeConfig.isUseDuplicateDetection(), bridgeControl.isUseDuplicateDetection());
 
-      CompositeData connectorPairData = bridgeControl.getConnectorPair();
-      assertEquals(bridgeConfig.getConnectorPair().a, connectorPairData.get("a"));
-      assertEquals(bridgeConfig.getConnectorPair().b, connectorPairData.get("b"));
+      String[] connectorPairData = bridgeControl.getConnectorPair();
+      assertEquals(bridgeConfig.getConnectorPair().a, connectorPairData[0]);
+      assertEquals(bridgeConfig.getConnectorPair().b, connectorPairData[1]);
 
       assertTrue(bridgeControl.isStarted());
    }

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlUsingCoreTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/BridgeControlUsingCoreTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,168 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.tests.integration.management;
-
-import javax.management.MBeanServer;
-import javax.management.openmbean.CompositeData;
-
-import org.jboss.messaging.core.client.ClientSession;
-import org.jboss.messaging.core.client.ClientSessionFactory;
-import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.management.BridgeControlMBean;
-import org.jboss.messaging.core.management.ResourceNames;
-import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
-
-/**
- * A BridgeControlUsingCoreTest
- *
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- *
- */
-public class BridgeControlUsingCoreTest extends BridgeControlTest
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   private ClientSession session;
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // BridgeControlTest overrides --------------------------------
-
-   @Override
-   protected BridgeControlMBean createBridgeControl(final String name, MBeanServer mbeanServer) throws Exception
-   {
-      ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
-      session = sf.createSession(false, true, true);
-      session.start();
-
-      return new BridgeControlMBean()
-      {
-         private final CoreMessagingProxy proxy = new CoreMessagingProxy(session,
-                                                                         ResourceNames.CORE_BRIDGE + name);
-         
-         public CompositeData getConnectorPair() throws Exception
-         {
-            return (CompositeData)proxy.retrieveAttributeValue("ConnectorPair");
-         }
-
-         public String getDiscoveryGroupName()
-         {
-            return (String)proxy.retrieveAttributeValue("DiscoveryGroupName");
-         }
-
-         public String getFilterString()
-         {
-            return (String)proxy.retrieveAttributeValue("FilterString");
-         }
-
-         public String getForwardingAddress()
-         {
-            return (String)proxy.retrieveAttributeValue("ForwardingAddress");
-         }
-
-         public String getName()
-         {
-            return (String)proxy.retrieveAttributeValue("Name");
-         }
-
-         public String getQueueName()
-         {
-            return (String)proxy.retrieveAttributeValue("QueueName");
-         }
-
-         public int getReconnectAttempts()
-         {
-            return (Integer)proxy.retrieveAttributeValue("ReconnectAttempts");
-         }
-
-         public long getRetryInterval()
-         {
-            return (Long)proxy.retrieveAttributeValue("RetryInterval");
-         }
-
-         public double getRetryIntervalMultiplier()
-         {
-            return (Double)proxy.retrieveAttributeValue("RetryIntervalMultiplier");
-         }
-
-         public String getTransformerClassName()
-         {
-            return (String)proxy.retrieveAttributeValue("TransformerClassName");
-         }
-
-         public boolean isFailoverOnServerShutdown()
-         {
-            return (Boolean)proxy.retrieveAttributeValue("FailoverOnServerShutdown");
-         }
-
-         public boolean isUseDuplicateDetection()
-         {
-            return (Boolean)proxy.retrieveAttributeValue("UseDuplicateDetection");
-         }
-
-         public boolean isStarted()
-         {
-            return (Boolean)proxy.retrieveAttributeValue("Started");
-         }
-
-         public void start() throws Exception
-         {
-            proxy.invokeOperation("start");
-         }
-
-         public void stop() throws Exception
-         {
-            proxy.invokeOperation("stop");
-         }
-      };
-   }
-
-   // Public --------------------------------------------------------
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   @Override
-   protected void tearDown() throws Exception
-   {
-      if (session != null)
-      {
-         session.close();
-      }
-
-      super.tearDown();
-   }
-   
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-
-}

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -104,11 +104,11 @@
       assertEquals(broadcastGroupConfig.getLocalBindPort(), broadcastGroupControl.getLocalBindPort());
       assertEquals(broadcastGroupConfig.getBroadcastPeriod(), broadcastGroupControl.getBroadcastPeriod());
       
-      TabularData connectorPairs = broadcastGroupControl.getConnectorPairs();
-      assertEquals(1, connectorPairs.size());
-      CompositeData connectorPairData = (CompositeData)connectorPairs.values().iterator().next();
-      assertEquals(broadcastGroupConfig.getConnectorInfos().get(0).a, connectorPairData.get("a"));
-      assertEquals(broadcastGroupConfig.getConnectorInfos().get(0).b, connectorPairData.get("b"));
+      Object[] connectorPairs = broadcastGroupControl.getConnectorPairs();
+      assertEquals(1, connectorPairs.length);
+      String[] connectorPairData = (String[])connectorPairs[0];
+      assertEquals(broadcastGroupConfig.getConnectorInfos().get(0).a, connectorPairData[0]);
+      assertEquals(broadcastGroupConfig.getConnectorInfos().get(0).b, connectorPairData[1]);
       
       assertTrue(broadcastGroupControl.isStarted());
    }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlUsingCoreTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlUsingCoreTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,8 +22,6 @@
 
 package org.jboss.messaging.tests.integration.management;
 
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
@@ -71,9 +69,9 @@
             return (Long)proxy.retrieveAttributeValue("BroadcastPeriod");
          }
 
-         public TabularData getConnectorPairs()
+         public Object[] getConnectorPairs()
          {
-            return (TabularData)proxy.retrieveAttributeValue("ConnectorPairs");
+            return (Object[])proxy.retrieveAttributeValue("ConnectorPairs");
          }
 
          public String getGroupAddress()

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/ClusterConnectionControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/ClusterConnectionControlTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/ClusterConnectionControlTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -90,11 +90,11 @@
                    clusterConnectionControl.isForwardWhenNoConsumers());
       assertEquals(clusterConnectionConfig.getMaxHops(), clusterConnectionControl.getMaxHops());
 
-      TabularData connectorPairs = clusterConnectionControl.getStaticConnectorNamePairs();
-      assertEquals(1, connectorPairs.size());
-      CompositeData connectorPairData = (CompositeData)connectorPairs.values().iterator().next();
-      assertEquals(clusterConnectionConfig.getStaticConnectorNamePairs().get(0).a, connectorPairData.get("a"));
-      assertEquals(clusterConnectionConfig.getStaticConnectorNamePairs().get(0).b, connectorPairData.get("b"));
+      Object[] connectorPairs = clusterConnectionControl.getStaticConnectorNamePairs();
+      assertEquals(1, connectorPairs.length);
+      String[] connectorPairData = (String[])connectorPairs[0];
+      assertEquals(clusterConnectionConfig.getStaticConnectorNamePairs().get(0).a, connectorPairData[0]);
+      assertEquals(clusterConnectionConfig.getStaticConnectorNamePairs().get(0).b, connectorPairData[1]);
 
       assertTrue(clusterConnectionControl.isStarted());
    }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/ClusterConnectionControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/ClusterConnectionControlUsingCoreTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/ClusterConnectionControlUsingCoreTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,8 +22,6 @@
 
 package org.jboss.messaging.tests.integration.management;
 
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
@@ -86,9 +84,9 @@
             return (Long)proxy.retrieveAttributeValue("RetryInterval");
          }
 
-         public TabularData getStaticConnectorNamePairs()
+         public Object[] getStaticConnectorNamePairs()
          {
-            return (TabularData)proxy.retrieveAttributeValue("StaticConnectorNamePairs");
+            return (Object[])proxy.retrieveAttributeValue("StaticConnectorNamePairs");
          }
 
          public boolean isDuplicateDetection()

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementHelperTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementHelperTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/ManagementHelperTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -199,10 +199,55 @@
       assertEquals(value3_3, mapRes3.get(key3_3));
       assertEquals(value3_4, mapRes3.get(key3_4));
       assertEquals(value3_5, mapRes3.get(key3_5));
+   }
+   
+   public void testMapWithArrayValues() throws Exception
+   {
+      String resource = randomString();
+      String operationName = randomString();
 
+      Map<String, Object> map = new HashMap<String, Object>();
+      String key1 = randomString();
+      String[] val1 = new String[] { "a", "b", "c" };
+      
+      log.info("val1 type is " + val1);
+      
+      String key2 = randomString();
+      Integer[] val2 = new Integer[] { 1, 2, 3, 4, 5 };
+      
+      log.info("val2 type is " + val2);
+      
+      map.put(key1, val1);
+      map.put(key2, val2);
+      
+      Object[] params = new Object[] { "hello", map };
 
+      Message msg = new ClientMessageImpl(false, ChannelBuffers.dynamicBuffer(1024));
+      ManagementHelper.putOperationInvocation(msg, resource, operationName, params);
 
+      Object[] parameters = ManagementHelper.retrieveOperationParameters(msg);
+
+      assertEquals(params.length, parameters.length);
+      
+      assertEquals("hello", parameters[0]);
+      
+      Map map2 = (Map)parameters[1];
+      assertEquals(2, map2.size());
+      
+      Object[] arr1 = (Object[])map2.get(key1);
+      assertEquals(val1.length, arr1.length);
+      assertEquals(arr1[0], val1[0]);
+      assertEquals(arr1[1], val1[1]);
+      assertEquals(arr1[2], val1[2]);
+      
+      Object[] arr2 = (Object[])map2.get(key2);
+      assertEquals(val2.length, arr2.length);
+      assertEquals(arr2[0], val2[0]);
+      assertEquals(arr2[1], val2[1]);
+      assertEquals(arr2[2], val2[2]);
+      
    }
+   
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -26,15 +26,12 @@
 
 import java.util.HashMap;
 
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.management.MessagingServerControlMBean;
 import org.jboss.messaging.core.management.ObjectNames;
 import org.jboss.messaging.core.management.QueueControlMBean;
-import org.jboss.messaging.core.management.TransportConfigurationInfo;
 import org.jboss.messaging.core.messagecounter.impl.MessageCounterManagerImpl;
 import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
 import org.jboss.messaging.core.server.Messaging;
@@ -120,14 +117,13 @@
    {
       MessagingServerControlMBean serverControl = createManagementControl();
 
-      TabularData connectorData = serverControl.getConnectors();
+      Object[] connectorData = serverControl.getConnectors();
       assertNotNull(connectorData);
-      assertEquals(1, connectorData.size());
+      assertEquals(1, connectorData.length);
 
-      TransportConfiguration[] connectorConfigurations = TransportConfigurationInfo.from(connectorData);
-      assertEquals(1, connectorConfigurations.length);
+      Object[] config = (Object[])connectorData[0];           
 
-      assertEquals(connectorConfig.getName(), connectorConfigurations[0].getName());
+      assertEquals(connectorConfig.getName(), config[0]);
    }
 
    public void testCreateAndDestroyQueue() throws Exception

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlUsingCoreTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlUsingCoreTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -22,10 +22,6 @@
 
 package org.jboss.messaging.tests.integration.management;
 
-import java.util.List;
-
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.client.ClientSession;
 import org.jboss.messaging.core.client.ClientSessionFactory;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
@@ -160,9 +156,9 @@
             return (Long)proxy.retrieveAttributeValue("ConnectionTTLOverride");
          }
 
-         public TabularData getConnectors() throws Exception
+         public Object[] getConnectors() throws Exception
          {
-            return (TabularData)proxy.retrieveAttributeValue("Connectors");
+            return (Object[])proxy.retrieveAttributeValue("Connectors");
          }
 
          public int getIDCacheSize()
@@ -170,9 +166,9 @@
             return (Integer)proxy.retrieveAttributeValue("IDCacheSize");
          }
 
-         public List<String> getInterceptorClassNames()
+         public String[] getInterceptorClassNames()
          {
-            return (List<String>)proxy.retrieveAttributeValue("InterceptorClassNames");
+            return (String[])proxy.retrieveAttributeValue("InterceptorClassNames");
          }
 
          public int getJournalBufferReuseSize()

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -30,8 +30,9 @@
 import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
+import java.util.Map;
+
 import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
 
 import org.jboss.messaging.core.client.ClientConsumer;
 import org.jboss.messaging.core.client.ClientMessage;
@@ -43,7 +44,6 @@
 import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.management.MessageCounterInfo;
-import org.jboss.messaging.core.management.MessageInfo;
 import org.jboss.messaging.core.management.MessagingServerControlMBean;
 import org.jboss.messaging.core.management.QueueControlMBean;
 import org.jboss.messaging.core.message.impl.MessageImpl;
@@ -303,15 +303,14 @@
       // unscheduled message
       producer.send(session.createClientMessage(false));
 
-      TabularData tabularData = queueControl.listScheduledMessages();
-      assertEquals(1, tabularData.size());
-      MessageInfo[] messageInfos = MessageInfo.from(tabularData);
-      assertEquals(Integer.toString(intValue), messageInfos[0].getProperties().get("key"));
+      Map<String, Object>[] messages = queueControl.listScheduledMessages();
+      assertEquals(1, messages.length);     
+      assertEquals(Integer.toString(intValue), messages[0].get("key"));
 
       Thread.sleep(delay);
 
-      tabularData = queueControl.listScheduledMessages();
-      assertEquals(0, tabularData.size());
+      messages = queueControl.listScheduledMessages();
+      assertEquals(0, messages.length);
 
       consumeMessages(2, session, queue);
 
@@ -358,15 +357,14 @@
       message.putIntProperty(new SimpleString("key"), intValue);
       producer.send(message);
 
-      TabularData tabularData = queueControl.listAllMessages();
-      assertEquals(1, tabularData.size());
-      MessageInfo[] messageInfos = MessageInfo.from(tabularData);
-      assertEquals(Integer.toString(intValue), messageInfos[0].getProperties().get("key"));
+      Map<String, Object>[] messages =  queueControl.listAllMessages();
+      assertEquals(1, messages.length);     
+      assertEquals(Integer.toString(intValue), messages[0].get("key"));
 
       consumeMessages(1, session, queue);
 
-      tabularData = queueControl.listAllMessages();
-      assertEquals(0, tabularData.size());
+      messages = queueControl.listAllMessages();
+      assertEquals(0, messages.length);
 
       session.deleteQueue(queue);
    }
@@ -392,15 +390,14 @@
       unmatchingMessage.putLongProperty(key, unmatchingValue);
       producer.send(unmatchingMessage);
 
-      TabularData tabularData = queueControl.listMessages(filter);
-      assertEquals(1, tabularData.size());
-      MessageInfo[] messageInfos = MessageInfo.from(tabularData);
-      assertEquals(Long.toString(matchingValue), messageInfos[0].getProperties().get("key"));
+      Map<String, Object>[] messages = queueControl.listMessages(filter);
+      assertEquals(1, messages.length);
+      assertEquals(Long.toString(matchingValue), messages[0].get("key"));
 
       consumeMessages(2, session, queue);
 
-      tabularData = queueControl.listMessages(filter);
-      assertEquals(0, tabularData.size());
+      messages = queueControl.listMessages(filter);
+      assertEquals(0, messages.length);
 
       session.deleteQueue(queue);
    }
@@ -571,9 +568,9 @@
       assertEquals(0, otherQueueControl.getMessageCount());
 
       // the message IDs are set on the server
-      MessageInfo[] messageInfos = MessageInfo.from(queueControl.listAllMessages());
-      assertEquals(2, messageInfos.length);
-      long messageID = messageInfos[0].getID();
+      Map<String, Object>[] messages = queueControl.listAllMessages();   
+      assertEquals(2, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
 
       boolean moved = queueControl.moveMessage(messageID, otherQueue.toString());
       assertTrue(moved);
@@ -603,9 +600,9 @@
       assertEquals(1, queueControl.getMessageCount());
 
       // the message IDs are set on the server
-      MessageInfo[] messageInfos = MessageInfo.from(queueControl.listAllMessages());
-      assertEquals(1, messageInfos.length);
-      long messageID = messageInfos[0].getID();
+      Map<String, Object>[] messages = queueControl.listAllMessages(); 
+      assertEquals(1, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
 
       // moved all messages to unknown queue
       try
@@ -725,9 +722,9 @@
       assertEquals(2, queueControl.getMessageCount());
 
       // the message IDs are set on the server
-      MessageInfo[] messageInfos = MessageInfo.from(queueControl.listAllMessages());
-      assertEquals(2, messageInfos.length);
-      long messageID = messageInfos[0].getID();
+      Map<String, Object>[] messages = queueControl.listAllMessages(); 
+      assertEquals(2, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
 
       // delete 1st message
       boolean deleted = queueControl.removeMessage(messageID);
@@ -834,9 +831,9 @@
       assertEquals(0, expiryQueueControl.getMessageCount());
 
       // the message IDs are set on the server
-      MessageInfo[] messageInfos = MessageInfo.from(queueControl.listAllMessages());
-      assertEquals(1, messageInfos.length);
-      long messageID = messageInfos[0].getID();
+      Map<String, Object>[] messages = queueControl.listAllMessages();       
+      assertEquals(1, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
 
       queueControl.setExpiryAddress(expiryAddress.toString());
       boolean expired = queueControl.expireMessage(messageID);
@@ -872,9 +869,9 @@
       assertEquals(2, queueControl.getMessageCount());
 
       // the message IDs are set on the server
-      MessageInfo[] messageInfos = MessageInfo.from(queueControl.listAllMessages());
-      assertEquals(2, messageInfos.length);
-      long messageID = messageInfos[0].getID();
+      Map<String, Object>[] messages = queueControl.listAllMessages();       
+      assertEquals(2, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
 
       queueControl.setDeadLetterAddress(deadLetterAddress.toString());
 
@@ -913,9 +910,9 @@
       assertEquals(1, queueControl.getMessageCount());
 
       // the message IDs are set on the server
-      MessageInfo[] messageInfos = MessageInfo.from(queueControl.listAllMessages());
-      assertEquals(1, messageInfos.length);
-      long messageID = messageInfos[0].getID();
+      Map<String, Object>[] messages = queueControl.listAllMessages();       
+      assertEquals(1, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
 
       boolean priorityChanged = queueControl.changeMessagePriority(messageID, newPriority);
       assertTrue(priorityChanged);
@@ -946,9 +943,9 @@
       assertEquals(1, queueControl.getMessageCount());
 
       // the message IDs are set on the server
-      MessageInfo[] messageInfos = MessageInfo.from(queueControl.listAllMessages());
-      assertEquals(1, messageInfos.length);
-      long messageID = messageInfos[0].getID();
+      Map<String, Object>[] messages = queueControl.listAllMessages();       
+      assertEquals(1, messages.length);
+      long messageID = (Long)messages[0].get("MessageID");
 
       try
       {
@@ -980,43 +977,46 @@
       serverControl.enableMessageCounters();
       serverControl.setMessageCounterSamplePeriod(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD);
 
-      CompositeData compositeData = queueControl.listMessageCounter();
-      MessageCounterInfo info = MessageCounterInfo.from(compositeData);
-      assertEquals(0, info.getDepth());
-      assertEquals(0, info.getCount());
-
-      ClientProducer producer = session.createProducer(address);
-      producer.send(session.createClientMessage(false));
-
-      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);
-      compositeData = queueControl.listMessageCounter();
-      info = MessageCounterInfo.from(compositeData);
-      assertEquals(1, info.getDepth());
-      assertEquals(1, info.getDepthDelta());
-      assertEquals(1, info.getCount());
-      assertEquals(1, info.getCountDelta());
-
-      producer.send(session.createClientMessage(false));
-
-      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);
-      compositeData = queueControl.listMessageCounter();
-      info = MessageCounterInfo.from(compositeData);
-      assertEquals(2, info.getDepth());
-      assertEquals(1, info.getDepthDelta());
-      assertEquals(2, info.getCount());
-      assertEquals(1, info.getCountDelta());
-
-      consumeMessages(2, session, queue);
-
-      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);      
-      compositeData = queueControl.listMessageCounter();
-      info = MessageCounterInfo.from(compositeData);
-      assertEquals(0, info.getDepth());
-      assertEquals(-2, info.getDepthDelta());
-      assertEquals(2, info.getCount());
-      assertEquals(0, info.getCountDelta());
-
-      session.deleteQueue(queue);
+      Object[] compositeData = queueControl.listMessageCounter();
+    
+      fail("Re-enable test");
+      
+      //TODO re-enable this
+//      assertEquals(0, info.getDepth());
+//      assertEquals(0, info.getCount());
+//
+//      ClientProducer producer = session.createProducer(address);
+//      producer.send(session.createClientMessage(false));
+//
+//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);
+//      compositeData = queueControl.listMessageCounter();
+//      info = MessageCounterInfo.from(compositeData);
+//      assertEquals(1, info.getDepth());
+//      assertEquals(1, info.getDepthDelta());
+//      assertEquals(1, info.getCount());
+//      assertEquals(1, info.getCountDelta());
+//
+//      producer.send(session.createClientMessage(false));
+//
+//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);
+//      compositeData = queueControl.listMessageCounter();
+//      info = MessageCounterInfo.from(compositeData);
+//      assertEquals(2, info.getDepth());
+//      assertEquals(1, info.getDepthDelta());
+//      assertEquals(2, info.getCount());
+//      assertEquals(1, info.getCountDelta());
+//
+//      consumeMessages(2, session, queue);
+//
+//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);      
+//      compositeData = queueControl.listMessageCounter();
+//      info = MessageCounterInfo.from(compositeData);
+//      assertEquals(0, info.getDepth());
+//      assertEquals(-2, info.getDepthDelta());
+//      assertEquals(2, info.getCount());
+//      assertEquals(0, info.getCountDelta());
+//
+//      session.deleteQueue(queue);
    }
    
    public void testResetMessageCounter() throws Exception
@@ -1031,43 +1031,47 @@
       serverControl.enableMessageCounters();
       serverControl.setMessageCounterSamplePeriod(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD);
 
-      CompositeData compositeData = queueControl.listMessageCounter();
-      MessageCounterInfo info = MessageCounterInfo.from(compositeData);
-      assertEquals(0, info.getDepth());
-      assertEquals(0, info.getCount());
-
-      ClientProducer producer = session.createProducer(address);
-      producer.send(session.createClientMessage(false));
-
-      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);
-      compositeData = queueControl.listMessageCounter();
-      info = MessageCounterInfo.from(compositeData);
-      assertEquals(1, info.getDepth());
-      assertEquals(1, info.getDepthDelta());
-      assertEquals(1, info.getCount());
-      assertEquals(1, info.getCountDelta());
-
-      consumeMessages(1, session, queue);
-
-      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);      
-      compositeData = queueControl.listMessageCounter();
-      info = MessageCounterInfo.from(compositeData);
-      assertEquals(0, info.getDepth());
-      assertEquals(-1, info.getDepthDelta());
-      assertEquals(1, info.getCount());
-      assertEquals(0, info.getCountDelta());
-
-      queueControl.resetMessageCounter();
+      Object[] compositeData = queueControl.listMessageCounter();
       
-      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);      
-      compositeData = queueControl.listMessageCounter();
-      info = MessageCounterInfo.from(compositeData);
-      assertEquals(0, info.getDepth());
-      assertEquals(0, info.getDepthDelta());
-      assertEquals(0, info.getCount());
-      assertEquals(0, info.getCountDelta());
+      fail("re-enable test");
       
-      session.deleteQueue(queue);
+      //TODO re-enable
+//      MessageCounterInfo info = MessageCounterInfo.from(compositeData);
+//      assertEquals(0, info.getDepth());
+//      assertEquals(0, info.getCount());
+//
+//      ClientProducer producer = session.createProducer(address);
+//      producer.send(session.createClientMessage(false));
+//
+//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);
+//      compositeData = queueControl.listMessageCounter();
+//      info = MessageCounterInfo.from(compositeData);
+//      assertEquals(1, info.getDepth());
+//      assertEquals(1, info.getDepthDelta());
+//      assertEquals(1, info.getCount());
+//      assertEquals(1, info.getCountDelta());
+//
+//      consumeMessages(1, session, queue);
+//
+//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);      
+//      compositeData = queueControl.listMessageCounter();
+//      info = MessageCounterInfo.from(compositeData);
+//      assertEquals(0, info.getDepth());
+//      assertEquals(-1, info.getDepthDelta());
+//      assertEquals(1, info.getCount());
+//      assertEquals(0, info.getCountDelta());
+//
+//      queueControl.resetMessageCounter();
+//      
+//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);      
+//      compositeData = queueControl.listMessageCounter();
+//      info = MessageCounterInfo.from(compositeData);
+//      assertEquals(0, info.getDepth());
+//      assertEquals(0, info.getDepthDelta());
+//      assertEquals(0, info.getCount());
+//      assertEquals(0, info.getCountDelta());
+//      
+//      session.deleteQueue(queue);
    }
    
    public void testListMessageCounterAsHTML() throws Exception
@@ -1097,8 +1101,8 @@
       serverControl.enableMessageCounters();
       serverControl.setMessageCounterSamplePeriod(counterPeriod);
 
-      TabularData tabularData = queueControl.listMessageCounterHistory();
-      assertEquals(1, tabularData.size());
+      Object[] tabularData = queueControl.listMessageCounterHistory();
+      assertEquals(1, tabularData.length);
 
       session.deleteQueue(queue);
    }

Deleted: trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlUsingCoreTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlUsingCoreTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,259 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005-2009, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.tests.integration.management;
-
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
-
-import org.jboss.messaging.core.management.QueueControlMBean;
-import org.jboss.messaging.core.management.ResourceNames;
-import org.jboss.messaging.utils.SimpleString;
-
-/**
- * A JMXQueueControlTest
- *
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- *
- */
-public class QueueControlUsingCoreTest extends QueueControlTest
-{
-
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   // Constructors --------------------------------------------------
-
-   // QueueControlTestBase overrides --------------------------------
-
-   @Override
-   protected QueueControlMBean createManagementControl(final SimpleString address, final SimpleString queue) throws Exception
-   {
-
-      return new QueueControlMBean()
-      {
-
-         private final CoreMessagingProxy proxy = new CoreMessagingProxy(session,
-                                                                         ResourceNames.CORE_QUEUE + queue);
-         
-         public boolean changeMessagePriority(long messageID, int newPriority) throws Exception
-         {
-            return (Boolean)proxy.invokeOperation("changeMessagePriority", messageID, newPriority);
-         }
-
-         public int changeMessagesPriority(String filter, int newPriority) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("changeMessagePriority", filter, newPriority);
-         }
-
-         public int countMessages(String filter) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("countMessages", filter);
-         }
-
-         public boolean expireMessage(long messageID) throws Exception
-         {
-            return (Boolean)proxy.invokeOperation("expireMessage", messageID);
-         }
-
-         public int expireMessages(String filter) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("expireMessages", filter);
-         }
-
-         public String getAddress()
-         {
-            return (String)proxy.retrieveAttributeValue("Address");
-         }
-
-         public int getConsumerCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("ConsumerCount");
-         }
-
-         public String getDeadLetterAddress()
-         {
-            return (String)proxy.retrieveAttributeValue("DeadLetterAddress");
-         }
-
-         public int getDeliveringCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("DeliveringCount");
-         }
-
-         public String getExpiryAddress()
-         {
-            return (String)proxy.retrieveAttributeValue("ExpiryAddress");
-         }
-
-         public String getFilter()
-         {
-            return (String)proxy.retrieveAttributeValue("Filter");
-         }
-
-         public int getMessageCount()
-         {
-            return (Integer)proxy.retrieveAttributeValue("MessageCount");
-         }
-
-         public int getMessagesAdded()
-         {
-            return (Integer)proxy.retrieveAttributeValue("MessagesAdded");
-         }
-
-         public String getName()
-         {
-            return (String)proxy.retrieveAttributeValue("Name");
-         }
-
-         public long getPersistenceID()
-         {
-            return (Long)proxy.retrieveAttributeValue("PersistenceID");
-         }
-
-         public long getScheduledCount()
-         {
-            return (Long)proxy.retrieveAttributeValue("ScheduledCount");
-         }
-
-         public boolean isBackup()
-         {
-            return (Boolean)proxy.retrieveAttributeValue("Backup");
-         }
-
-         public boolean isDurable()
-         {
-            return (Boolean)proxy.retrieveAttributeValue("Durable");
-         }
-
-         public boolean isTemporary()
-         {
-            return (Boolean)proxy.retrieveAttributeValue("Temporary");
-         }
-
-         public TabularData listAllMessages() throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listAllMessages");
-         }
-
-         public CompositeData listMessageCounter() throws Exception
-         {
-            return (CompositeData)proxy.invokeOperation("listMessageCounter");
-         }
-
-         public void resetMessageCounter() throws Exception
-         {
-            proxy.invokeOperation("resetMessageCounter");
-         }
-         
-         public String listMessageCounterAsHTML() throws Exception
-         {
-            return (String)proxy.invokeOperation("listMessageCounterAsHTML");
-         }
-
-         public TabularData listMessageCounterHistory() throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listMessageCounterHistory");
-         }
-
-         public String listMessageCounterHistoryAsHTML() throws Exception
-         {
-            return (String)proxy.invokeOperation("listMessageCounterHistoryAsHTML");
-         }
-
-         public TabularData listMessages(String filter) throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listMessages", filter);
-         }
-
-         public TabularData listScheduledMessages() throws Exception
-         {
-            return (TabularData)proxy.invokeOperation("listScheduledMessages");
-         }
-
-         public int moveAllMessages(String otherQueueName) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("moveAllMessages", otherQueueName);
-         }
-
-         public int moveMatchingMessages(String filter, String otherQueueName) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("moveMatchingMessages", filter, otherQueueName);
-         }
-
-         public boolean moveMessage(long messageID, String otherQueueName) throws Exception
-         {
-            return (Boolean)proxy.invokeOperation("moveMessage", messageID, otherQueueName);
-         }
-
-         public int removeAllMessages() throws Exception
-         {
-            return (Integer)proxy.invokeOperation("removeAllMessages");
-         }
-
-         public int removeMatchingMessages(String filter) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("removeMatchingMessages", filter);
-         }
-
-         public boolean removeMessage(long messageID) throws Exception
-         {
-            return (Boolean)proxy.invokeOperation("removeMessage", messageID);
-         }
-
-         public boolean sendMessageToDeadLetterAddress(long messageID) throws Exception
-         {
-            return (Boolean)proxy.invokeOperation("sendMessageToDeadLetterAddress", messageID);
-         }
-         
-         public int sendMessagesToDeadLetterAddress(String filterStr) throws Exception
-         {
-            return (Integer)proxy.invokeOperation("sendMessagesToDeadLetterAddress", filterStr);
-         }
-
-         public void setDeadLetterAddress(String deadLetterAddress) throws Exception
-         {
-            proxy.invokeOperation("setDeadLetterAddress", deadLetterAddress);
-         }
-
-         public void setExpiryAddress(String expiryAddres) throws Exception
-         {
-            proxy.invokeOperation("setExpiryAddress", expiryAddres);
-         }
-      };
-   }
-
-   // Public --------------------------------------------------------
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-
-}

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/QueueDeployerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/QueueDeployerTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/QueueDeployerTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -25,8 +25,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.management.openmbean.TabularData;
-
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.cluster.QueueConfiguration;
 import org.jboss.messaging.core.deployers.DeploymentManager;
@@ -246,7 +244,7 @@
          return 0;
       }
 
-      public TabularData getConnectors() throws Exception
+      public Object[] getConnectors() throws Exception
       {
          // TODO Auto-generated method stub
          return null;
@@ -258,7 +256,7 @@
          return 0;
       }
 
-      public List<String> getInterceptorClassNames()
+      public String[] getInterceptorClassNames()
       {
          // TODO Auto-generated method stub
          return null;

Deleted: trunk/tests/src/org/jboss/messaging/tests/unit/core/management/MessageInfoTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/management/MessageInfoTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/management/MessageInfoTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -1,130 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-
-package org.jboss.messaging.tests.unit.core.management;
-
-import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
-import static org.jboss.messaging.tests.util.RandomUtil.randomByte;
-import static org.jboss.messaging.tests.util.RandomUtil.randomInt;
-import static org.jboss.messaging.tests.util.RandomUtil.randomLong;
-import static org.jboss.messaging.tests.util.RandomUtil.randomString;
-
-import java.util.Collection;
-
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
-
-import org.jboss.messaging.core.management.MessageInfo;
-import org.jboss.messaging.tests.util.UnitTestCase;
-
-/**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- *
- * @version <tt>$Revision$</tt>
- *
- */
-public class MessageInfoTest extends UnitTestCase
-{
-   // Constants -----------------------------------------------------
-
-   // Attributes ----------------------------------------------------
-
-   // Static --------------------------------------------------------
-
-   private static void assertEquals(MessageInfo expected, CompositeData actual)
-   {
-      assertTrue(actual.getCompositeType().equals(MessageInfo.TYPE));
-
-      assertEquals(expected.getID(), actual.get("id"));
-      assertEquals(expected.getDestination(), actual.get("destination"));
-      assertEquals(expected.isDurable(), actual.get("durable"));
-      assertEquals(expected.getTimestamp(), actual.get("timestamp"));
-      assertEquals(expected.getType(), actual.get("type"));
-      assertEquals(expected.getSize(), actual.get("size"));
-      assertEquals(expected.getPriority(), actual.get("priority"));
-      assertEquals(expected.isExpired(), actual.get("expired"));
-      assertEquals(expected.getExpiration(), actual.get("expiration"));
-
-      TabularData propsDatas = (TabularData) actual.get("properties");
-      Collection<CompositeData> props =
-         (Collection<CompositeData>) propsDatas.values();
-      assertEquals(expected.getProperties().size(), props.size());
-      for (CompositeData prop : props)
-      {
-         String actualKey = (String) prop.get("key");
-         String actualValue = (String) prop.get("value");
-
-         assertTrue(expected.getProperties().containsKey(actualKey));
-         assertEquals(expected.getProperties().get(actualKey), actualValue);
-      }
-   }
-
-   // Constructors --------------------------------------------------
-
-   // Public --------------------------------------------------------
-
-   public void testToCompositeData() throws Exception
-   {
-      MessageInfo info = new MessageInfo(randomLong(), randomString(),
-            randomBoolean(), randomLong(), randomByte(), randomInt(),
-            randomByte(), randomBoolean(), randomLong());
-      CompositeData data = info.toCompositeData();
-
-      assertEquals(info, data);
-   }
-
-   public void testToTabularData() throws Exception
-   {
-      MessageInfo info_1 = new MessageInfo(randomLong(), randomString(),
-            randomBoolean(), randomLong(), randomByte(), randomInt(),
-            randomByte(), randomBoolean(), randomLong());
-      info_1.putProperty(randomString(), randomString());
-      info_1.putProperty(randomString(), randomString());
-      MessageInfo info_2 = new MessageInfo(randomLong(), randomString(),
-            randomBoolean(), randomLong(), randomByte(), randomInt(),
-            randomByte(), randomBoolean(), randomLong());
-      info_2.putProperty(randomString(), randomString());
-      MessageInfo[] messages = new MessageInfo[] { info_1, info_2 };
-
-      TabularData data = MessageInfo.toTabularData(messages);
-      assertEquals(2, data.size());
-      CompositeData data_1 = data.get(new Object[] { info_1.getID() });
-      CompositeData data_2 = data.get(new Object[] { info_2.getID() });
-
-      assertEquals(info_1, data_1);
-      assertEquals(info_2, data_2);
-   }
-
-   public void testToTabularDataWithEmptyMessages() throws Exception
-   {
-      TabularData data = MessageInfo.toTabularData(new MessageInfo[0]);
-      assertEquals(0, data.size());
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
-}

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/BindingImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/BindingImplTest.java	2009-05-05 14:47:58 UTC (rev 6658)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/postoffice/impl/BindingImplTest.java	2009-05-05 15:01:07 UTC (rev 6659)
@@ -23,6 +23,7 @@
 package org.jboss.messaging.tests.unit.core.postoffice.impl;
 
 import java.io.InputStream;
+import java.util.Map;
 import java.util.Set;
 
 import javax.transaction.xa.Xid;
@@ -266,6 +267,12 @@
    class FakeMessage implements ServerMessage
    {
 
+      public Map<String, Object> toMap()
+      {
+         // TODO Auto-generated method stub
+         return null;
+      }
+
       /* (non-Javadoc)
        * @see org.jboss.messaging.core.server.ServerMessage#copy(long)
        */




More information about the jboss-cvs-commits mailing list