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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jun 11 08:28:07 EDT 2009


Author: jmesnil
Date: 2009-06-11 08:28:06 -0400 (Thu, 11 Jun 2009)
New Revision: 7308

Modified:
   trunk/src/main/org/jboss/messaging/core/management/AddressControl.java
   trunk/src/main/org/jboss/messaging/core/management/BroadcastGroupControl.java
   trunk/src/main/org/jboss/messaging/core/management/ClusterConnectionControl.java
   trunk/src/main/org/jboss/messaging/core/management/MessagingServerControl.java
   trunk/src/main/org/jboss/messaging/core/management/QueueControl.java
   trunk/src/main/org/jboss/messaging/core/management/RoleInfo.java
   trunk/src/main/org/jboss/messaging/core/management/impl/AddressControlImpl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/BroadcastGroupControlImpl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/ClusterConnectionControlImpl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControlImpl.java
   trunk/src/main/org/jboss/messaging/core/management/impl/QueueControlImpl.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/impl/MessageImpl.java
   trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java
   trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControl.java
   trunk/src/main/org/jboss/messaging/jms/server/management/SubscriptionInfo.java
   trunk/src/main/org/jboss/messaging/jms/server/management/TopicControl.java
   trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControlImpl.java
   trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControlImpl.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/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/AddressControlTest.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/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/integration/management/QueueControlUsingCoreTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/QueueDeployerTest.java
Log:
JBMESSAGING-1605: management API needs a portable and complete serialization format

* added management operations which returns JSON string (instead of Java 
  collections or complex arrays) to be able to *vizualize* results in a 
  GUI console (jconsole, AS console, etc.)

Modified: trunk/src/main/org/jboss/messaging/core/management/AddressControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/AddressControl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/AddressControl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -36,6 +36,8 @@
    String getAddress();
 
    Object[] getRoles() throws Exception;
+
+   String getRolesAsJSON() throws Exception;
    
    String[] getQueueNames() throws Exception;
 

Modified: trunk/src/main/org/jboss/messaging/core/management/BroadcastGroupControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/BroadcastGroupControl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/BroadcastGroupControl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -42,4 +42,6 @@
    long getBroadcastPeriod();
    
    Object[] getConnectorPairs();
+
+   String getConnectorPairsAsJSON() throws Exception;
 }

Modified: trunk/src/main/org/jboss/messaging/core/management/ClusterConnectionControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/ClusterConnectionControl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/ClusterConnectionControl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -23,6 +23,7 @@
 package org.jboss.messaging.core.management;
 
 
+
 /**
  * A ClusterConnectionControlMBean
  *
@@ -43,6 +44,8 @@
 
    Object[] getStaticConnectorNamePairs();
 
+   String getStaticConnectorNamePairsAsJSON() throws Exception;
+
    String getDiscoveryGroupName();
 
    long getRetryInterval();

Modified: trunk/src/main/org/jboss/messaging/core/management/MessagingServerControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/MessagingServerControl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/MessagingServerControl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -128,6 +128,8 @@
    
    Object[] getConnectors() throws Exception;
 
+   String getConnectorsAsJSON() throws Exception;
+
    // Operations ----------------------------------------------------
 
    @Operation(desc = "Create a queue with the specified address", impact = ACTION)

Modified: trunk/src/main/org/jboss/messaging/core/management/QueueControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/QueueControl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/QueueControl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -76,13 +76,23 @@
    @Operation(desc = "List the messages scheduled for delivery", impact = INFO)
    Map<String, Object>[] listScheduledMessages() throws Exception;
 
+   @Operation(desc = "List the messages scheduled for delivery and returns them using JSON", impact = INFO)
+   String listScheduledMessagesAsJSON() throws Exception;
+
    @Operation(desc = "List all the messages in the queue", impact = INFO)
    Map<String, Object>[] listAllMessages() throws Exception;
 
+   @Operation(desc = "List all the messages in the queue and return them using JSON", impact = INFO)
+   String listAllMessagesAsJSON() throws Exception;
+
    @Operation(desc = "List all the messages in the queue matching the given filter", impact = INFO)
    Map<String, Object>[] listMessages(@Parameter(name = "filter", desc = "A message filter")
    String filter) throws Exception;
 
+   @Operation(desc = "List all the messages in the queue matching the given filter and returns them using JSON", impact = INFO)
+   String listMessagesAsJSON(@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;

Modified: trunk/src/main/org/jboss/messaging/core/management/RoleInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/RoleInfo.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/RoleInfo.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -1,6 +1,6 @@
 /*
  * JBoss, Home of Professional Open Source
- * Copyright 2008, 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,67 +22,16 @@
 
 package org.jboss.messaging.core.management;
 
-import static javax.management.openmbean.SimpleType.BOOLEAN;
-import static javax.management.openmbean.SimpleType.STRING;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
-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;
-
 /**
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
+ * @author <a href="jmesnil at redhat.com">Jeff Mesnil</a>
  */
 public class RoleInfo
 {
-   // Constants -----------------------------------------------------
+   final private String name;
 
-   public static final CompositeType TYPE;
-   private static final String ROLE_TYPE_NAME = "RoleInfo";
-   private static final String ROLE_TABULAR_TYPE_NAME = "RoleTabularInfo";
-   private static final TabularType TABULAR_TYPE;
-   private static final String[] ITEM_NAMES = new String[] { "name", "send",
-         "consume", "createDurableQueue", "deleteDurableQueue", "createNonDurableQueue", "deleteNonDurableQueue", "manage" };
-   private static final String[] ITEM_DESCRIPTIONS = new String[] {
-         "Name of the role", "Can the role send messages?", "Can the role consume messages?",
-         "Can the role create a durable queue?",
-         "Can the role delete a durable queue?",
-         "Can the role create a non durable queue?",
-         "Can the role create a non durable queue?",
-         "Can the user send management messages"};
-   private static final OpenType[] ITEM_TYPES = new OpenType[] { STRING,
-         BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN, BOOLEAN };
-
-   static
-   {
-      try
-      {
-         TYPE = new CompositeType(ROLE_TYPE_NAME, "Information for a Role",
-               ITEM_NAMES, ITEM_DESCRIPTIONS, ITEM_TYPES);
-         TABULAR_TYPE = new TabularType(ROLE_TABULAR_TYPE_NAME,
-               "Table of RoleInfo", TYPE, new String[] { "name" });
-      } catch (OpenDataException e)
-      {
-         throw new IllegalStateException(e);
-      }
-   }
-
-   // Attributes ----------------------------------------------------
-
-   private final String name;
-
    final private boolean send;
 
    final private boolean consume;
@@ -97,66 +46,35 @@
 
    final private boolean manage;
 
-
-   // Static --------------------------------------------------------
-
-   public static TabularData toTabularData(RoleInfo[] infos)
+   public static final RoleInfo[] from(final String jsonString) throws Exception
    {
-      TabularData data = new TabularDataSupport(TABULAR_TYPE);
-      for (RoleInfo roleInfo : infos)
+      JSONArray array = new JSONArray(jsonString);
+      RoleInfo[] roles = new RoleInfo[array.length()];
+      for (int i = 0; i < array.length(); i++)
       {
-         data.put(roleInfo.toCompositeData());
+         JSONObject r = array.getJSONObject(i);
+         RoleInfo role = new RoleInfo(r.getString("name"),
+                                      r.getBoolean("send"),
+                                      r.getBoolean("consume"),
+                                      r.getBoolean("createDurableQueue"),
+                                      r.getBoolean("deleteDurableQueue"),
+                                      r.getBoolean("createNonDurableQueue"),
+                                      r.getBoolean("deleteNonDurableQueue"),
+                                      r.getBoolean("manage"));
+         roles[i] = role;
       }
-      return data;
+      return roles;
    }
 
-   public static RoleInfo[] from(TabularData roles)
+   private RoleInfo(final String name,
+                    final boolean send,
+                    final boolean consume,
+                    final boolean createDurableQueue,
+                    final boolean deleteDurableQueue,
+                    final boolean createNonDurableQueue,
+                    final boolean deleteNonDurableQueue,
+                    boolean manage)
    {
-      Collection values = roles.values();
-      List<RoleInfo> infos = new ArrayList<RoleInfo>();
-      for (Object object : values)
-      {
-         CompositeData compositeData = (CompositeData) 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()]);
-   }
-   
-   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 --------------------------------------------------
-
-
-   public RoleInfo(String name, boolean send, boolean consume, boolean createDurableQueue, boolean deleteDurableQueue, boolean createNonDurableQueue, boolean deleteNonDurableQueue, boolean manage)
-   {
       this.name = name;
       this.send = send;
       this.consume = consume;
@@ -167,8 +85,6 @@
       this.manage = manage;
    }
 
-   // Public --------------------------------------------------------
-
    public String getName()
    {
       return name;
@@ -208,37 +124,4 @@
    {
       return manage;
    }
-
-   public CompositeData toCompositeData()
-   {
-      try
-      {
-         return new CompositeDataSupport(TYPE, ITEM_NAMES, new Object[] { name,
-               send, consume, createDurableQueue, deleteDurableQueue, createNonDurableQueue, deleteNonDurableQueue, manage });
-      } catch (OpenDataException e)
-      {
-         return null;
-      }
-   }
-
-   @Override
-   public String toString()
-   {
-       return "RolInfoe {name=" + name + ";" +
-             "read=" + send + ";" +
-             "write=" + consume + ";" +
-             "createDurableQueue=" + createDurableQueue + "}" +
-            "deleteDurableQueue=" + deleteDurableQueue + "}" +
-            "createNonDurableQueue=" + createNonDurableQueue + "}" +
-            "deleteNonDurableQueue=" + deleteNonDurableQueue + "}" +
-            "manage=" + manage + "}";
-   }
-
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   // Inner classes -------------------------------------------------
 }

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/AddressControlImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/AddressControlImpl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/AddressControlImpl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -34,6 +34,8 @@
 import org.jboss.messaging.core.security.Role;
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.utils.SimpleString;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -117,7 +119,20 @@
       }
       return objRoles;
    }
+   
+   public String getRolesAsJSON() throws Exception
+   {
+      JSONArray json = new JSONArray();
+      Set<Role> roles = securityRepository.getMatch(address.toString());
 
+      for (Role role : roles)
+      {
+         json.put(new JSONObject(role));
+      }
+      System.out.println(json.toString(2));
+      return json.toString();
+   }
+
    public synchronized void addRole(final String name,
                                     final boolean send,
                                     final boolean consume,

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/BroadcastGroupControlImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/BroadcastGroupControlImpl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/BroadcastGroupControlImpl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -26,6 +26,8 @@
 import org.jboss.messaging.core.management.BroadcastGroupControl;
 import org.jboss.messaging.core.server.cluster.BroadcastGroup;
 import org.jboss.messaging.utils.Pair;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * A BroadcastGroupControl
@@ -84,6 +86,20 @@
       
       return ret;      
    }
+   
+   public String getConnectorPairsAsJSON() throws Exception
+   {
+      JSONArray array = new JSONArray();
+      
+      for (Pair<String, String> pair: configuration.getConnectorInfos())
+      {
+         JSONObject p = new JSONObject();
+         p.put("a", pair.a);
+         p.put("b", pair.b);
+         array.put(p);
+      }
+      return array.toString();
+   }
 
    public String getGroupAddress()
    {

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/ClusterConnectionControlImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/ClusterConnectionControlImpl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/ClusterConnectionControlImpl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -26,6 +26,8 @@
 import org.jboss.messaging.core.management.ClusterConnectionControl;
 import org.jboss.messaging.core.server.cluster.ClusterConnection;
 import org.jboss.messaging.utils.Pair;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * A ClusterConnectionControl
@@ -99,6 +101,19 @@
       return ret;            
    }
 
+   public String getStaticConnectorNamePairsAsJSON() throws Exception {
+      JSONArray array = new JSONArray();
+
+      for (Pair<String, String> pair: configuration.getStaticConnectorNamePairs())
+      {
+         JSONObject p = new JSONObject();
+         p.put("a", pair.a);
+         p.put("b", pair.b);
+         array.put(p);
+      }
+      return array.toString();
+   }
+   
    public boolean isDuplicateDetection()
    {
       return configuration.isDuplicateDetection();

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControlImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControlImpl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/MessagingServerControlImpl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -58,6 +58,8 @@
 import org.jboss.messaging.core.transaction.Transaction;
 import org.jboss.messaging.core.transaction.impl.XidImpl;
 import org.jboss.messaging.utils.SimpleString;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -482,6 +484,18 @@
       
       return ret;
    }
+   
+   public String getConnectorsAsJSON() throws Exception
+   {
+      JSONArray array = new JSONArray();
+      
+      for (TransportConfiguration config: configuration.getConnectorConfigurations().values())
+      {
+         array.put(new JSONObject(config));
+      }
+      
+      return array.toString();
+   }
 
    public void sendQueueInfoToQueue(final String queueName, final String address) throws Exception
    {

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/QueueControlImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/QueueControlImpl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/QueueControlImpl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -40,6 +40,8 @@
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.core.settings.impl.AddressSettings;
 import org.jboss.messaging.utils.SimpleString;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -66,6 +68,17 @@
 
    // Static --------------------------------------------------------
 
+   private static String toJSON(Map<String, Object>[] messages)
+   {
+      JSONArray array = new JSONArray();
+      for (int i = 0; i < messages.length; i++)
+      {
+         Map<String, Object> message = messages[i];
+         array.put(new JSONObject(message));         
+      }
+      return array.toString();
+   }
+
    // Constructors --------------------------------------------------
 
    public QueueControlImpl(final Queue queue,
@@ -203,6 +216,11 @@
       return listMessages(null);
    }
 
+   public String listAllMessagesAsJSON() throws Exception
+   {
+      return toJSON(listAllMessages());
+   }
+ 
    public Map<String, Object>[] listScheduledMessages() throws Exception
    {
       List<MessageReference> refs = queue.getScheduledMessages();
@@ -215,8 +233,13 @@
       }
       return messages;
    }
+   
+   public String listScheduledMessagesAsJSON() throws Exception
+   {
+      return toJSON(listScheduledMessages());
+   }
 
-   public Map[] listMessages(final String filterStr) throws Exception
+   public Map<String, Object>[] listMessages(final String filterStr) throws Exception
    {
       try
       {
@@ -236,6 +259,11 @@
          throw new IllegalStateException(e.getMessage());
       }
    }
+   
+   public String listMessagesAsJSON(String filter) throws Exception
+   {
+      return toJSON(listMessages(filter));
+   }
 
    public int countMessages(final String filterStr) throws Exception
    {

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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareAddressControlWrapper.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -76,6 +76,11 @@
    {
       return localAddressControl.getRoles();
    }
+   
+   public String getRolesAsJSON() throws Exception
+   {
+      return localAddressControl.getRolesAsJSON();
+   }
 
    public void removeRole(final String name) throws Exception
    {

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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareMessagingServerControlWrapper.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -235,6 +235,11 @@
    {
       return localControl.getConnectors();
    }
+   
+   public String getConnectorsAsJSON() throws Exception
+   {
+      return localControl.getConnectorsAsJSON();
+   }
 
    public void sendQueueInfoToQueue(final String queueName, final String address) throws Exception
    {

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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -25,8 +25,6 @@
 import java.util.Map;
 
 import javax.management.MBeanInfo;
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
 
 import org.jboss.messaging.core.management.QueueControl;
 import org.jboss.messaging.core.management.ReplicationOperationInvoker;
@@ -148,6 +146,11 @@
       return localQueueControl.listAllMessages();
    }
 
+   public String listAllMessagesAsJSON() throws Exception
+   {
+      return localQueueControl.listAllMessagesAsJSON();
+   }
+
    public String listMessageCounter() throws Exception
    {
       return localQueueControl.listMessageCounter();
@@ -178,6 +181,11 @@
       return localQueueControl.listMessages(filter);
    }
    
+   public String listMessagesAsJSON(String filter) throws Exception
+   {
+      return localQueueControl.listMessagesAsJSON(filter);
+   }
+   
    public int countMessages(final String filter) throws Exception
    {
       return localQueueControl.countMessages(filter);
@@ -187,6 +195,11 @@
    {
       return localQueueControl.listScheduledMessages();
    }
+   
+   public String listScheduledMessagesAsJSON() throws Exception
+   {
+      return localQueueControl.listScheduledMessagesAsJSON();
+   }
 
    public boolean changeMessagePriority(final long messageID, final int newPriority) throws Exception
    {

Modified: trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/core/message/impl/MessageImpl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -347,19 +347,17 @@
    {
       Map<String, Object> map = new HashMap<String, Object>();
       
-      map.put("MessageID", messageID);
-      map.put("Destination", destination.toString());
-      map.put("Type", type);
-      map.put("Durable", durable);
-      map.put("Expiration", expiration);
-      map.put("Timestamp", timestamp);
-      map.put("Priority", priority);
-      Map<String, Object> props = new HashMap<String, Object>();
+      map.put("messageID", messageID);
+      map.put("destination", destination.toString());
+      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())
       {
-         props.put(propName.toString(), properties.getProperty(propName));
+         map.put(propName.toString(), properties.getProperty(propName));
       }
-      map.put("properties", props);
       return map;      
    }
      

Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossMessage.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -96,10 +96,10 @@
    {
       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");
+      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);
@@ -108,12 +108,13 @@
 
       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"))
+         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
          }

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -71,10 +71,17 @@
    @Operation(desc = "List all messages in the queue", impact = INFO)
    Map<String, Object>[] listAllMessages() throws Exception;
 
+   @Operation(desc = "List all messages in the queue using JSON", impact = INFO)
+   String listAllMessagesAsJSON() throws Exception;
+
    @Operation(desc = "List all messages in the queue which matches the filter", impact = INFO)
    Map<String, Object>[] listMessages(@Parameter(name = "filter", desc = "A JMS Message filter")
    String filter) throws Exception;
 
+   @Operation(desc = "List all messages in the queue which matches the filter and return them using JSON", impact = INFO)
+   String listMessagesAsJSON(@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;

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/SubscriptionInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/SubscriptionInfo.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/SubscriptionInfo.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -22,19 +22,9 @@
 
 package org.jboss.messaging.jms.server.management;
 
-import static javax.management.openmbean.SimpleType.BOOLEAN;
-import static javax.management.openmbean.SimpleType.INTEGER;
-import static javax.management.openmbean.SimpleType.STRING;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
-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;
-
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
  * 
@@ -45,72 +35,49 @@
 {
    // Constants -----------------------------------------------------
 
-   public static final CompositeType TYPE;
-   private static final TabularType TABULAR_TYPE;
-   private static final String SUBSCRIPTION_TYPE_NAME = "SubscriptionInfo";
-   private static final String SUBSCRIPTION_TABULAR_TYPE_NAME = "SubscriptionTabularInfo";
-   private static final String[] ITEM_NAMES = new String[] { "queueName", "clientID",
-         "name", "durable", "selector", "messageCount" };
-   private static final String[] ITEM_DESCRIPTIONS = new String[] {
-         "ID of the subscription", "ClientID of the subscription",
-         "name of the subscription", "Is the subscriber durable?", "Selector",
-         "Number of messages" };
-   private static final OpenType[] ITEM_TYPES = new OpenType[] { STRING,
-         STRING, STRING, BOOLEAN, STRING, INTEGER};
-
-   static
-   {
-      try
-      {
-         TYPE = createSubscriptionInfoType();
-         TABULAR_TYPE = createSubscriptionInfoTabularType();
-      } catch (OpenDataException e)
-      {
-         throw new IllegalStateException(e);
-      }
-   }
-
    // Attributes ----------------------------------------------------
 
    private final String queueName;
+
    private final String clientID;
+
    private final String name;
+
    private final boolean durable;
+
    private final String selector;
+
    private final int messageCount;
 
    // Static --------------------------------------------------------
 
-   public static TabularData toTabularData(final SubscriptionInfo[] infos)
+   public static SubscriptionInfo[] from(String jsonString) throws Exception
    {
-      TabularData data = new TabularDataSupport(TABULAR_TYPE);
-      for (SubscriptionInfo subscriberInfo : infos)
+      JSONArray array = new JSONArray(jsonString);
+      SubscriptionInfo[] infos = new SubscriptionInfo[array.length()];
+      for (int i = 0; i < array.length(); i++)
       {
-         data.put(subscriberInfo.toCompositeData());
+         JSONObject sub = array.getJSONObject(i);
+         SubscriptionInfo info = new SubscriptionInfo(sub.getString("queueName"),
+                                                      sub.optString("clientID", null),
+                                                      sub.optString("name", null),
+                                                      sub.getBoolean("durable"),
+                                                      sub.optString("selector", null),
+                                                      sub.getInt("messageCount"));
+         infos[i] = info;
       }
-      return data;
-   }
 
-   private static CompositeType createSubscriptionInfoType()
-         throws OpenDataException
-   {
-      return new CompositeType(SUBSCRIPTION_TYPE_NAME,
-            "Information for a Topic Subscription", ITEM_NAMES,
-            ITEM_DESCRIPTIONS, ITEM_TYPES);
+      return infos;
    }
 
-   private static TabularType createSubscriptionInfoTabularType()
-         throws OpenDataException
-   {
-      return new TabularType(SUBSCRIPTION_TABULAR_TYPE_NAME,
-            "Table of SubscriptionInfo", TYPE, new String[] { "queueName" });
-   }
-
    // Constructors --------------------------------------------------
 
-   public SubscriptionInfo(final String queueName, final String clientID,
-         final String name, final boolean durable, final String selector,
-         final int messageCount)
+   private SubscriptionInfo(final String queueName,
+                            final String clientID,
+                            final String name,
+                            final boolean durable,
+                            final String selector,
+                            final int messageCount)
    {
       this.queueName = queueName;
       this.clientID = clientID;
@@ -152,18 +119,6 @@
       return messageCount;
    }
 
-   public CompositeData toCompositeData()
-   {
-      try
-      {
-         return new CompositeDataSupport(TYPE, ITEM_NAMES, new Object[] { queueName,
-               clientID, name, durable, selector, messageCount});
-      } catch (OpenDataException e)
-      {
-         return null;
-      }
-   }
-
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/TopicControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/TopicControl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/TopicControl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -54,17 +54,31 @@
    @Operation(desc = "List all subscriptions")
    Object[] listAllSubscriptions() throws Exception;
 
+   @Operation(desc = "List all subscriptions")
+   String listAllSubscriptionsAsJSON() throws Exception;
+
    @Operation(desc = "List only the durable subscriptions")
    Object[] listDurableSubscriptions() throws Exception;
 
+   @Operation(desc = "List only the durable subscriptions")
+   String listDurableSubscriptionsAsJSON() throws Exception;
+
    @Operation(desc = "List only the non durable subscriptions")
    Object[] listNonDurableSubscriptions() throws Exception;
 
+   @Operation(desc = "List only the non durable subscriptions")
+   String listNonDurableSubscriptionsAsJSON() throws Exception;
+
    @Operation(desc = "List all the message for the given subscription")
    public Map<String, Object>[] listMessagesForSubscription(
          @Parameter(name = "queueName", desc = "the name of the queue representing a subscription") String queueName)
          throws Exception;
 
+   @Operation(desc = "List all the message for the given subscription")
+   public String listMessagesForSubscriptionAsJSON(
+         @Parameter(name = "queueName", desc = "the name of the queue representing a subscription") String queueName)
+         throws Exception;
+
    @Operation(desc = "Count the number of messages matching the filter for the given subscription")
    public int countMessagesForSubscription(
          @Parameter(name = "clientID", desc = "the client ID") String clientID,

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControlImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControlImpl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControlImpl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -34,6 +34,8 @@
 import org.jboss.messaging.jms.client.JBossMessage;
 import org.jboss.messaging.jms.client.SelectorTranslator;
 import org.jboss.messaging.jms.server.management.JMSQueueControl;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -69,6 +71,17 @@
       return JBossMessage.JBM_MESSAGE_ID + " = '" + jmsMessageID + "'";
    }
 
+   static String toJSON(Map<String, Object>[] messages)
+   {
+      JSONArray array = new JSONArray();
+      for (int i = 0; i < messages.length; i++)
+      {
+         Map<String, Object> message = messages[i];
+         array.put(new JSONObject(message));         
+      }
+      return array.toString();
+   }
+
    // Constructors --------------------------------------------------
 
    public JMSQueueControlImpl(final JBossQueue managedQueue,
@@ -183,6 +196,11 @@
       return listMessages(null);
    }
 
+   public String listAllMessagesAsJSON() throws Exception
+   {
+      return toJSON(listMessages(null));
+   }
+
    public Map<String, Object>[] listMessages(final String filterStr) throws Exception
    {
       try
@@ -206,6 +224,11 @@
          throw new IllegalStateException(e.getMessage());
       }
    }
+   
+   public String listMessagesAsJSON(String filter) throws Exception
+   {
+      return toJSON(listMessages(filter));
+   }
 
    public int countMessages(final String filterStr) throws Exception
    {

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControlImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControlImpl.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControlImpl.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -39,6 +39,8 @@
 import org.jboss.messaging.jms.client.SelectorTranslator;
 import org.jboss.messaging.jms.server.management.TopicControl;
 import org.jboss.messaging.utils.Pair;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -138,16 +140,31 @@
    {
       return listSubscribersInfos(DurabilityType.ALL);
    }
+   
+   public String listAllSubscriptionsAsJSON() throws Exception
+   {
+      return listSubscribersInfosAsJSON(DurabilityType.ALL);
+   }
 
    public Object[] listDurableSubscriptions()
    {
       return listSubscribersInfos(DurabilityType.DURABLE);
    }
+   
+   public String listDurableSubscriptionsAsJSON() throws Exception
+   {
+      return listSubscribersInfosAsJSON(DurabilityType.DURABLE);
+   }
 
    public Object[] listNonDurableSubscriptions()
    {
       return listSubscribersInfos(DurabilityType.NON_DURABLE);
    }
+   
+   public String listNonDurableSubscriptionsAsJSON() throws Exception
+   {
+      return listSubscribersInfosAsJSON(DurabilityType.NON_DURABLE);
+   }
 
    public Map<String, Object>[] listMessagesForSubscription(final String queueName) throws Exception
    {
@@ -169,6 +186,11 @@
       }
       return jmsMessages;
    }
+   
+   public String listMessagesForSubscriptionAsJSON(String queueName) throws Exception
+   {
+      return JMSQueueControlImpl.toJSON(listMessagesForSubscription(queueName));
+   }
 
    public int countMessagesForSubscription(final String clientID, final String subscriptionName, final String filterStr) throws Exception
    {
@@ -253,7 +275,39 @@
       }
       return subInfos.toArray(new Object[subInfos.size()]);
    }
+   
+   private String listSubscribersInfosAsJSON(final DurabilityType durability) throws Exception
+   {
+      List<QueueControl> queues = getQueues(durability);
+      JSONArray array = new JSONArray();
 
+      for (QueueControl queue : queues)
+      {
+         String clientID = null;
+         String subName = null;
+
+         if (queue.isDurable())
+         {
+            Pair<String, String> pair = JBossTopic.decomposeQueueNameForDurableSubscription(queue.getName().toString());
+            clientID = pair.a;
+            subName = pair.b;
+         }
+
+         String filter = queue.getFilter() != null ? queue.getFilter() : null;
+
+         JSONObject info = new JSONObject();
+         info.put("queueName", queue.getName());
+         info.put("clientID", clientID);
+         info.put("selector", filter);
+         info.put("name", subName);
+         info.put("durable", queue.isDurable());
+         info.put("messageCount", queue.getMessageCount());
+         array.put(info);
+      }
+
+      return array.toString();
+   }
+
    private int getMessageCount(final DurabilityType durability)
    {
       List<QueueControl> queues = getQueues(durability);

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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareJMSQueueControlWrapper.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -123,6 +123,11 @@
    {
       return localControl.listAllMessages();
    }
+   
+   public String listAllMessagesAsJSON() throws Exception
+   {
+      return localControl.listAllMessagesAsJSON();
+   }
 
    public String listMessageCounter()
    {
@@ -149,6 +154,11 @@
       return localControl.listMessages(filter);
    }
    
+   public String listMessagesAsJSON(String filter) throws Exception
+   {
+      return localControl.listMessagesAsJSON(filter);
+   }
+
    public int countMessages(final String filter) throws Exception
    {
       return localControl.countMessages(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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareTopicControlWrapper.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -101,17 +101,32 @@
    {
       return localControl.listAllSubscriptions();
    }
+   
+   public String listAllSubscriptionsAsJSON() throws Exception
+   {
+      return localControl.listAllSubscriptionsAsJSON();
+   }
 
    public Object[] listDurableSubscriptions()
    {
       return localControl.listDurableSubscriptions();
    }
+   
+   public String listDurableSubscriptionsAsJSON() throws Exception
+   {
+      return localControl.listDurableSubscriptionsAsJSON();
+   }
 
    public Map<String, Object>[] listMessagesForSubscription(final String queueName) throws Exception
    {
       return localControl.listMessagesForSubscription(queueName);
    }
    
+   public String listMessagesForSubscriptionAsJSON(String queueName) throws Exception
+   {
+      return localControl.listMessagesForSubscriptionAsJSON(queueName);
+   }
+   
    public int countMessagesForSubscription(final String clientID, final String subscriptionName, final String filterStr) throws Exception
    {
       return localControl.countMessagesForSubscription(clientID, subscriptionName, filterStr);
@@ -121,6 +136,11 @@
    {
       return localControl.listNonDurableSubscriptions();
    }
+   
+   public String listNonDurableSubscriptionsAsJSON() throws Exception
+   {
+      return localControl.listNonDurableSubscriptionsAsJSON();
+   }
 
    public String getAddress()
    {

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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSQueueControlTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -42,6 +42,7 @@
 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 org.jboss.messaging.utils.json.JSONArray;
 
 import javax.jms.Connection;
 import javax.jms.JMSException;
@@ -120,10 +121,57 @@
       consumer.close();
 
       assertEquals(0, queueControl.getConsumerCount());
-      
+
       connection.close();
    }
 
+   public void testListAllMessages() throws Exception
+   {
+      JMSQueueControl queueControl = createManagementControl();
+
+      assertEquals(0, queueControl.getMessageCount());
+
+      String[] ids = JMSUtil.sendMessages(queue, 2);
+
+      assertEquals(2, queueControl.getMessageCount());
+
+      Map<String, Object>[] data = queueControl.listAllMessages();
+      assertEquals(2, data.length);
+      System.out.println(data[0].keySet());
+      assertEquals(ids[0], data[0].get("JMSMessageID").toString());
+      assertEquals(ids[1], data[1].get("JMSMessageID").toString());
+
+      JMSUtil.consumeMessages(2, queue);
+
+      data = queueControl.listAllMessages();
+      assertEquals(0, data.length);
+   }
+
+   public void testListAllMessagesAsJSON() throws Exception
+   {
+      JMSQueueControl queueControl = createManagementControl();
+
+      assertEquals(0, queueControl.getMessageCount());
+
+      String[] ids = JMSUtil.sendMessages(queue, 2);
+
+      assertEquals(2, queueControl.getMessageCount());
+
+      String jsonString = queueControl.listAllMessagesAsJSON();
+      assertNotNull(jsonString);
+      JSONArray array = new JSONArray(jsonString);
+      assertEquals(2, array.length());
+      assertEquals(ids[0], array.getJSONObject(0).get("JMSMessageID"));
+      assertEquals(ids[1], array.getJSONObject(1).get("JMSMessageID"));
+
+      JMSUtil.consumeMessages(2, queue);
+
+      jsonString = queueControl.listAllMessagesAsJSON();
+      assertNotNull(jsonString);
+      array = new JSONArray(jsonString);
+      assertEquals(0, array.length());
+   }
+
    public void testRemoveMessage() throws Exception
    {
       JMSQueueControl queueControl = createManagementControl();
@@ -138,15 +186,14 @@
       assertEquals(2, data.length);
 
       System.out.println(data[0]);
-      // retrieve the first message info 
+      // retrieve the first message info
       Set<String> keySet = data[0].keySet();
       Iterator<String> it = keySet.iterator();
       while (it.hasNext())
       {
          System.out.println(it.next());
       }
-      Map props = (Map)data[0].get("properties");
-      SimpleString messageID = (SimpleString)props.get("JMSMessageID");
+      SimpleString messageID = (SimpleString)data[0].get("JMSMessageID");
 
       queueControl.removeMessage(messageID.toString());
 
@@ -187,10 +234,10 @@
 
       Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
       connection.start();
-      
+
       MessageConsumer consumer = JMSUtil.createConsumer(connection, queue);
       assertNull(consumer.receive(500));
-      
+
       connection.close();
    }
 
@@ -225,7 +272,7 @@
       Message msg = consumer.receive(500);
       assertNotNull(msg);
       assertEquals("baz", msg.getStringProperty("foo"));
-      
+
       conn.close();
    }
 
@@ -238,9 +285,8 @@
       assertEquals(1, queueControl.getMessageCount());
 
       Map<String, Object>[] data = queueControl.listAllMessages();
-      // retrieve the first message info     
-      Map props = (Map)data[0].get("properties");
-      SimpleString messageID = (SimpleString)props.get("JMSMessageID");
+      // retrieve the first message info
+      SimpleString messageID = (SimpleString)data[0].get("JMSMessageID");
       int currentPriority = (Byte)data[0].get("JMSPriority");
       int newPriority = 9;
 
@@ -254,7 +300,7 @@
       Message message = consumer.receive(500);
       assertNotNull(message);
       assertEquals(newPriority, message.getJMSPriority());
-      
+
       connection.close();
    }
 
@@ -283,7 +329,7 @@
       Message message = consumer.receive(500);
       assertNotNull(message);
       assertTrue(message.getJMSPriority() != invalidPriority);
-      
+
       connection.close();
    }
 
@@ -362,7 +408,7 @@
       Message message = consumer.receive(500);
       assertNotNull(message);
       assertEquals(messageIDs[0], message.getJMSMessageID());
-      
+
       connection.close();
    }
 
@@ -610,7 +656,7 @@
       JBossQueue otherQueue = new JBossQueue(otherQueueName);
 
       String[] messageIDs = JMSUtil.sendMessages(queue, 1);
-      
+
       JMSQueueControl queueControl = createManagementControl();
       assertEquals(1, queueControl.getMessageCount());
 
@@ -623,7 +669,7 @@
 
       serverManager.destroyQueue(otherQueueName);
    }
-   
+
    public void testMoveMessageWithUnknownMessageID() throws Exception
    {
       String unknownMessageID = randomString();
@@ -645,13 +691,13 @@
 
       serverManager.destroyQueue(otherQueueName);
    }
-   
+
    public void testMoveMessageToUnknownQueue() throws Exception
    {
       String unknwonQueue = randomString();
 
       String[] messageIDs = JMSUtil.sendMessages(queue, 1);
-      
+
       JMSQueueControl queueControl = createManagementControl();
       assertEquals(1, queueControl.getMessageCount());
 
@@ -666,7 +712,7 @@
 
       JMSUtil.consumeMessages(1, queue);
    }
-   
+
    // Package protected ---------------------------------------------
 
    // Protected -----------------------------------------------------
@@ -712,9 +758,9 @@
    private Connection createConnection() throws JMSException
    {
       JBossConnectionFactory cf = new JBossConnectionFactory(new TransportConfiguration(InVMConnectorFactory.class.getName()));
-      
+
       cf.setBlockOnPersistentSend(true);
-                
+
       return cf.createConnection();
    }
 

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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -22,39 +22,21 @@
 
 package org.jboss.messaging.tests.integration.jms.server.management;
 
-import org.jboss.messaging.core.config.Configuration;
-import org.jboss.messaging.core.config.TransportConfiguration;
-import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import static org.jboss.messaging.core.config.impl.ConfigurationImpl.DEFAULT_MANAGEMENT_ADDRESS;
+
+import java.util.Map;
+
+import javax.jms.QueueConnection;
+import javax.jms.QueueSession;
+import javax.jms.Session;
+
+import org.jboss.messaging.core.config.TransportConfiguration;
 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.JMSQueueControl;
-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 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 org.jboss.messaging.utils.SimpleString;
 
-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.naming.Context;
-import java.util.Map;
-
 /**
  * 
  * A JMSQueueControlUsingJMSTest
@@ -63,29 +45,15 @@
  *
  *
  */
-public class JMSQueueControlUsingJMSTest extends ManagementTestBase
+public class JMSQueueControlUsingJMSTest extends JMSQueueControlTest
 {
    // 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 --------------------------------------------------------
 
@@ -93,637 +61,222 @@
 
    // Public --------------------------------------------------------
 
-   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
+   @Override
+   protected void setUp() throws Exception
    {
-      
+      super.setUp();
 
-      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
-
-      JMSUtil.sendMessages(queue, 2);
-
-      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
-
-      Object[] maps = (Object[])proxy.invokeOperation("listAllMessages");
-      assertEquals(2, maps.length);
-
-      // retrieve the first message info
-      Map map = (Map)maps[0];
-      Map props = (Map)map.get("properties");
-      String messageID = (String)props.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());
+      JBossConnectionFactory cf = new JBossConnectionFactory(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+      connection = cf.createQueueConnection();
+      session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
       connection.start();
-      
-      MessageConsumer consumer = JMSUtil.createConsumer(connection, queue);
-      assertNull(consumer.receive(500));
-      
-      connection.close();
    }
 
-   public void testRemoveMatchingMessages() throws Exception
+   @Override
+   protected void tearDown() 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");
-      // retrieve the first message info
-      Map map = (Map)maps[0];
-      Map props = (Map)map.get("properties");
-      String messageID = (String)props.get("JMSMessageID");
-      int currentPriority = ((Long)map.get("JMSPriority")).intValue();
-      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();
-   }
 
-   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();
+      super.tearDown();
    }
 
-   public void testChangeMessagePriorityWithUnknownMessageID() throws Exception
+   @Override
+   protected JMSQueueControl createManagementControl() throws Exception
    {
-      String unkownMessageID = randomString();
+      JBossQueue managementQueue = new JBossQueue(DEFAULT_MANAGEMENT_ADDRESS.toString(),
+                                                  DEFAULT_MANAGEMENT_ADDRESS.toString());
+      final JMSMessagingProxy proxy = new JMSMessagingProxy(session,
+                                                            managementQueue,
+                                                            ResourceNames.JMS_QUEUE + queue.getQueueName());
 
-      
-
-      try
+      return new JMSQueueControl()
       {
-         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
+         {
+            return (Boolean)proxy.invokeOperation("expireMessage", messageID);
+         }
 
-      server.getAddressSettingsRepository().addMatch(queue.getAddress(), new AddressSettings()
-      {
-         @Override
-         public SimpleString getExpiryAddress()
+         public int expireMessages(String filter) throws Exception
          {
-            return expiryAddress;
+            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 Map<String, Object>[] listAllMessages() throws Exception
+         {
+            Object[] res = (Object[])proxy.invokeOperation("listAllMessages");
+            Map<String, Object>[] results = new Map[res.length];
+            for (int i = 0; i < res.length; i++)
+            {
+               results[i] = (Map<String, Object>)res[i];
+            }
+            return results;
+         }
+         
+         public String listAllMessagesAsJSON() throws Exception
+         {
+            return (String)proxy.invokeOperation("listAllMessagesAsJSON");
+         }
 
-      MessageConsumer consumer = JMSUtil.createConsumer(connection, expiryQueue);
-      Message message = consumer.receive(500);
-      assertNotNull(message);
-      assertEquals(messageIDs[0], message.getJMSMessageID());
-      
-      connection.close();
-   }
+         public String listMessageCounter() throws Exception
+         {
+            return (String)proxy.invokeOperation("listMessageCounter");
+         }
 
-   public void testExpireMessageWithUnknownMessageID() throws Exception
-   {
-      String unknownMessageID = randomString();
+         public String listMessageCounterAsHTML() throws Exception
+         {
+            return (String)proxy.invokeOperation("listMessageCounterAsHTML");
+         }
 
-      
+         public String listMessageCounterHistory() throws Exception
+         {
+            return (String)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 Map<String, Object>[] listMessages(String filter) throws Exception
+         {
+            Object[] res = (Object[])proxy.invokeOperation("listMessages", filter);
+            Map<String, Object>[] results = new Map[res.length];
+            for (int i = 0; i < res.length; i++)
+            {
+               results[i] = (Map<String, Object>)res[i];
+            }
+            return results;
+         }
 
-      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
-      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+         public String listMessagesAsJSON(String filter) throws Exception
+         {
+            return (String)proxy.invokeOperation("listMessagesAsJSON", filter);
+         }
+         
+         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 sendMessageToDeadLetterAddress(String messageID) throws Exception
+         {
+            return (Boolean)proxy.invokeOperation("sendMessageToDeadLetterAddress", 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"));
-
-      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()
+         public int removeAllMessages() throws Exception
          {
-            return deadLetterAddress;
+            return (Integer)proxy.invokeOperation("removeAllMessages");
          }
-      });
 
-      assertEquals(deadLetterAddress.toString(), proxy.retrieveAttributeValue("DeadLetterAddress"));
+      };
    }
 
-   public void testSetDeadLetterAddress() throws Exception
-   {
-      final String deadLetterAddress = randomString();
-      
-      assertNull(proxy.retrieveAttributeValue("DeadLetterAddress"));
-
-      proxy.invokeOperation("setDeadLetterAddress", deadLetterAddress);
-      assertEquals(deadLetterAddress, proxy.retrieveAttributeValue("DeadLetterAddress"));
-   }
-
-   public void testSendMessageToDeadLetterAddress() throws Exception
-   {
-      String deadLetterQueue = randomString();
-      serverManager.createQueue(deadLetterQueue, deadLetterQueue, null, true);
-      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();
-
-      
-      JMSQueueControl dlqControl = ManagementControlHelper.createJMSQueueControl(dlq, mbeanServer);
-
-      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
-      assertEquals(0, dlqControl.getMessageCount());
-
-      proxy.invokeOperation("setDeadLetterAddress", dlq.getAddress());
-
-      boolean movedToDeadLetterAddress = (Boolean)proxy.invokeOperation("sendMessageToDeadLetterAddress", 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 testSendMessageToDeadLetterAddressWithUnknownMessageID() throws Exception
-   {
-      String unknownMessageID = randomString();
-
-      
-
-      try
-      {
-         proxy.invokeOperation("sendMessageToDeadLetterAddress", unknownMessageID);
-         fail();
-      }
-      catch (Exception e)
-      {
-      }
-
-   }
-
-   public void testMoveAllMessages() throws Exception
-   {
-      String otherQueueName = randomString();
-
-      serverManager.createQueue(otherQueueName, otherQueueName, null, true);
-      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, null, true);
-      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, null, true);
-      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, null, true);
-
-      
-      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);
-      context = new InVMContext();
-      serverManager.setContext(context);
-      serverManager.start();
-      serverManager.activated();
-
-      String queueName = randomString();
-      serverManager.createQueue(queueName, queueName, null, true);
-      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, null, true);
-      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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/server/management/TopicControlTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -40,8 +40,10 @@
 import org.jboss.messaging.core.server.MessagingServer;
 import org.jboss.messaging.jms.JBossTopic;
 import org.jboss.messaging.jms.server.impl.JMSServerManagerImpl;
+import org.jboss.messaging.jms.server.management.SubscriptionInfo;
 import org.jboss.messaging.jms.server.management.TopicControl;
 import org.jboss.messaging.tests.integration.management.ManagementTestBase;
+import org.jboss.messaging.utils.json.JSONArray;
 
 /**
  * A TopicControlTest
@@ -153,7 +155,41 @@
       connection_2.close();
       connection_3.close();
    }
+   
+   public void testListXXXSubscriptionsAsJSON() throws Exception
+   {
+      // 1 non-durable subscriber, 2 durable subscribers
+      Connection connection_1 = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+      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");
 
+      TopicControl topicControl = createManagementControl();
+      String jsonString = topicControl.listDurableSubscriptionsAsJSON();
+      SubscriptionInfo[] infos = SubscriptionInfo.from(jsonString);
+      assertEquals(2, infos.length);
+      assertEquals(clientID, infos[0].getClientID());
+      assertEquals(subscriptionName, infos[0].getName());
+      assertEquals(clientID, infos[1].getClientID());
+      assertEquals(subscriptionName + "2", infos[1].getName());
+      
+      jsonString = topicControl.listNonDurableSubscriptionsAsJSON();
+      infos = SubscriptionInfo.from(jsonString);
+      assertEquals(1, infos.length);
+      assertEquals(null, infos[0].getClientID());
+      assertEquals(null, infos[0].getName());
+      
+      jsonString = topicControl.listAllSubscriptionsAsJSON();
+      infos = SubscriptionInfo.from(jsonString);
+      assertEquals(3, infos.length);
+      
+      connection_1.close();
+      connection_2.close();
+      connection_3.close();
+   }
+
    public void testCountMessagesForSubscription() throws Exception
    {
       String key = "key";
@@ -314,6 +350,26 @@
       assertEquals(3, messages.length);
    }
 
+   public void testListMessagesForSubscriptionAsJSON() throws Exception
+   {
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+
+      JMSUtil.createDurableSubscriber(connection, topic, clientID, subscriptionName);
+
+      String[] ids = JMSUtil.sendMessages(topic, 3);
+
+      TopicControl topicControl = createManagementControl();
+      String jsonString = topicControl.listMessagesForSubscriptionAsJSON(JBossTopic.createQueueNameForDurableSubscription(clientID,
+                                                                                                                                 subscriptionName));
+      assertNotNull(jsonString);
+      JSONArray array = new JSONArray(jsonString);
+      assertEquals(3, array.length());
+      for (int i = 0; i < 3; i++)
+      {
+         assertEquals(ids[i], array.getJSONObject(i).get("JMSMessageID"));
+      }
+   }
+
    public void testListMessagesForSubscriptionWithUnknownClientID() throws Exception
    {
       String unknownClientID = randomString();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlTest.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/AddressControlTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -36,6 +36,7 @@
 import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
 import org.jboss.messaging.core.management.AddressControl;
+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;
@@ -123,14 +124,14 @@
       session.createQueue(address, queue, true);
 
       AddressControl addressControl = createManagementControl(address);
-      Object[] tabularData = addressControl.getRoles();
-      assertEquals(0, tabularData.length);
+      Object[] roles = addressControl.getRoles();
+      assertEquals(0, roles.length);
 
       Set<Role> newRoles = new HashSet<Role>();
       newRoles.add(role);
       server.getSecurityRepository().addMatch(address.toString(), newRoles);
 
-      Object[] roles = addressControl.getRoles();
+      roles = addressControl.getRoles();
       assertEquals(1, roles.length);
       Object[] r = (Object[])roles[0];
       assertEquals(role.getName(), r[0]);
@@ -145,6 +146,48 @@
       session.deleteQueue(queue);
    }
 
+   public void testGetRolesAsJSON() 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);
+
+      AddressControl addressControl = createManagementControl(address);
+      String jsonString = addressControl.getRolesAsJSON();
+      assertNotNull(jsonString);     
+      RoleInfo[] roles = RoleInfo.from(jsonString);
+      assertEquals(0, roles.length);
+
+      Set<Role> newRoles = new HashSet<Role>();
+      newRoles.add(role);
+      server.getSecurityRepository().addMatch(address.toString(), newRoles);
+
+      jsonString = addressControl.getRolesAsJSON();
+      assertNotNull(jsonString);     
+      roles = RoleInfo.from(jsonString);
+      assertEquals(1, roles.length);
+      RoleInfo r = roles[0];
+      assertEquals(role.getName(), roles[0].getName());
+      assertEquals(role.isSend(), r.isSend());
+      assertEquals(role.isConsume(), r.isConsume());
+      assertEquals(role.isCreateDurableQueue(), r.isCreateDurableQueue());
+      assertEquals(role.isDeleteDurableQueue(), r.isDeleteDurableQueue());
+      assertEquals(role.isCreateNonDurableQueue(), r.isCreateNonDurableQueue());
+      assertEquals(role.isDeleteNonDurableQueue(), r.isDeleteNonDurableQueue());
+      assertEquals(role.isManage(), r.isManage());
+
+      session.deleteQueue(queue);
+   }
+   
    public void testAddRole() throws Exception
    {
       SimpleString address = randomSimpleString();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -37,6 +37,8 @@
 import org.jboss.messaging.core.server.MessagingServer;
 import org.jboss.messaging.integration.transports.netty.NettyConnectorFactory;
 import org.jboss.messaging.utils.Pair;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * A AcceptorControlTest
@@ -108,6 +110,14 @@
       assertEquals(broadcastGroupConfig.getConnectorInfos().get(0).a, connectorPairData[0]);
       assertEquals(broadcastGroupConfig.getConnectorInfos().get(0).b, connectorPairData[1]);
       
+      String jsonString = broadcastGroupControl.getConnectorPairsAsJSON();
+      assertNotNull(jsonString);
+      JSONArray array = new JSONArray(jsonString);
+      assertEquals(1, array.length());
+      JSONObject data = array.getJSONObject(0);
+      assertEquals(broadcastGroupConfig.getConnectorInfos().get(0).a, data.optString("a"));
+      assertEquals(broadcastGroupConfig.getConnectorInfos().get(0).b, data.optString("b", null));
+      
       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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/BroadcastGroupControlUsingCoreTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -73,6 +73,11 @@
          {
             return (Object[])proxy.retrieveAttributeValue("ConnectorPairs");
          }
+         
+         public String getConnectorPairsAsJSON()
+         {
+            return (String)proxy.retrieveAttributeValue("ConnectorPairsAsJSON");
+         }
 
          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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/ClusterConnectionControlTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -34,8 +34,6 @@
 import java.util.Map;
 
 import javax.management.MBeanServerFactory;
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.TabularData;
 
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.TransportConfiguration;
@@ -49,6 +47,8 @@
 import org.jboss.messaging.core.server.Messaging;
 import org.jboss.messaging.core.server.MessagingServer;
 import org.jboss.messaging.utils.Pair;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * A BridgeControlTest
@@ -96,6 +96,14 @@
       assertEquals(clusterConnectionConfig.getStaticConnectorNamePairs().get(0).a, connectorPairData[0]);
       assertEquals(clusterConnectionConfig.getStaticConnectorNamePairs().get(0).b, connectorPairData[1]);
 
+      String jsonString = clusterConnectionControl.getStaticConnectorNamePairsAsJSON();
+      assertNotNull(jsonString);
+      JSONArray array = new JSONArray(jsonString);
+      assertEquals(1, array.length());
+      JSONObject data = array.getJSONObject(0);
+      assertEquals(clusterConnectionConfig.getStaticConnectorNamePairs().get(0).a, data.optString("a"));
+      assertEquals(clusterConnectionConfig.getStaticConnectorNamePairs().get(0).b, data.optString("b", null));
+
       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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/ClusterConnectionControlUsingCoreTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -89,6 +89,11 @@
             return (Object[])proxy.retrieveAttributeValue("StaticConnectorNamePairs");
          }
 
+         public String getStaticConnectorNamePairsAsJSON()
+         {
+            return (String)proxy.retrieveAttributeValue("StaticConnectorNamePairsAsJSON");
+         }
+
          public boolean isDuplicateDetection()
          {
             return (Boolean)proxy.retrieveAttributeValue("DuplicateDetection");

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlTest.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -22,9 +22,11 @@
 
 package org.jboss.messaging.tests.integration.management;
 
+import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
 import static org.jboss.messaging.tests.util.RandomUtil.randomString;
 
 import java.util.HashMap;
+import java.util.Map;
 
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.TransportConfiguration;
@@ -38,6 +40,8 @@
 import org.jboss.messaging.core.server.MessagingServer;
 import org.jboss.messaging.tests.util.RandomUtil;
 import org.jboss.messaging.utils.SimpleString;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * A QueueControlTest
@@ -125,7 +129,21 @@
 
       assertEquals(connectorConfig.getName(), config[0]);
    }
+   
+   public void testGetConnectorsAsJSON() throws Exception
+   {
+      MessagingServerControl serverControl = createManagementControl();
 
+      String jsonString = serverControl.getConnectorsAsJSON();
+      assertNotNull(jsonString);
+      JSONArray array = new JSONArray(jsonString);
+      assertEquals(1, array.length());
+      JSONObject data = array.getJSONObject(0);
+      assertEquals(connectorConfig.getName(), data.optString("name"));
+      assertEquals(connectorConfig.getFactoryClassName(), data.optString("factoryClassName"));
+      assertEquals(connectorConfig.getParams().size(), data.getJSONObject("params").length());
+   }
+
    public void testCreateAndDestroyQueue() throws Exception
    {
       SimpleString address = RandomUtil.randomSimpleString();
@@ -284,8 +302,10 @@
    {
       super.setUp();
 
+      Map<String, Object> params = new HashMap<String, Object>();
+      params.put(randomString(), randomBoolean());
       connectorConfig = new TransportConfiguration(InVMConnectorFactory.class.getName(),
-                                                                          new HashMap<String, Object>(),
+                                                                          params,
                                                                           randomString());
 
       conf = new ConfigurationImpl();

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlUsingCoreTest.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/MessagingServerControlUsingCoreTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -155,6 +155,11 @@
          {
             return (Object[])proxy.retrieveAttributeValue("Connectors");
          }
+         
+         public String getConnectorsAsJSON() throws Exception
+         {
+            return (String)proxy.retrieveAttributeValue("ConnectorsAsJSON");
+         }
 
          public int getIDCacheSize()
          {

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -53,6 +53,7 @@
 import org.jboss.messaging.core.server.MessagingServer;
 import org.jboss.messaging.core.settings.impl.AddressSettings;
 import org.jboss.messaging.utils.SimpleString;
+import org.jboss.messaging.utils.json.JSONArray;
 
 /**
  * A QueueControlTest
@@ -304,8 +305,7 @@
 
       Map<String, Object>[] messages = queueControl.listScheduledMessages();
       assertEquals(1, messages.length);    
-      Map properties = (Map)messages[0].get("properties");
-      assertEquals(intValue, properties.get("key"));
+      assertEquals(intValue, messages[0].get("key"));
 
       Thread.sleep(delay);
 
@@ -316,7 +316,43 @@
 
       session.deleteQueue(queue);
    }
+   
+   public void testListScheduledMessagesAsJSON() throws Exception
+   {
+      long delay = 2000;
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      int intValue = randomInt();
+      session.createQueue(address, queue, null, false);
 
+      QueueControl queueControl = createManagementControl(address, queue);
+
+      ClientProducer producer = session.createProducer(address);
+      ClientMessage message = session.createClientMessage(false);
+      message.putLongProperty(MessageImpl.HDR_SCHEDULED_DELIVERY_TIME, System.currentTimeMillis() + delay);
+      message.putIntProperty(new SimpleString("key"), intValue);
+      producer.send(message);
+      // unscheduled message
+      producer.send(session.createClientMessage(false));
+
+      String jsonString = queueControl.listScheduledMessagesAsJSON();
+      assertNotNull(jsonString);
+      JSONArray array = new JSONArray(jsonString);
+      assertEquals(1, array.length());
+      assertEquals(intValue, array.getJSONObject(0).get("key"));
+
+      Thread.sleep(delay);
+
+      jsonString = queueControl.listScheduledMessagesAsJSON();
+      assertNotNull(jsonString);
+      array = new JSONArray(jsonString);
+      assertEquals(0, array.length());
+
+      consumeMessages(2, session, queue);
+
+      session.deleteQueue(queue);
+   }
+
    public void testGetDeliveringCount() throws Exception
    {
       SimpleString address = randomSimpleString();
@@ -359,8 +395,7 @@
 
       Map<String, Object>[] messages =  queueControl.listAllMessages();
       assertEquals(1, messages.length);
-      Map properties = (Map)messages[0].get("properties");
-      assertEquals(intValue, properties.get("key"));
+      assertEquals(intValue, messages[0].get("key"));
 
       consumeMessages(1, session, queue);
 
@@ -369,7 +404,37 @@
 
       session.deleteQueue(queue);
    }
+   
+   public void testListAllMessagesAsJSON() throws Exception
+   {
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+      int intValue = randomInt();
+      session.createQueue(address, queue, null, false);
 
+      QueueControl queueControl = createManagementControl(address, queue);
+
+      ClientProducer producer = session.createProducer(address);
+      ClientMessage message = session.createClientMessage(false);
+      message.putIntProperty(new SimpleString("key"), intValue);
+      producer.send(message);
+
+      String jsonString =  queueControl.listAllMessagesAsJSON();
+      assertNotNull(jsonString);
+      JSONArray array = new JSONArray(jsonString);
+      assertEquals(1, array.length());
+      assertEquals(intValue, array.getJSONObject(0).get("key"));
+
+      consumeMessages(1, session, queue);
+
+      jsonString =  queueControl.listAllMessagesAsJSON();
+      assertNotNull(jsonString);
+      array = new JSONArray(jsonString);
+      assertEquals(0, array.length());
+
+      session.deleteQueue(queue);
+   }
+
    public void testListMessagesWithFilter() throws Exception
    {
       SimpleString key = new SimpleString("key");
@@ -393,8 +458,7 @@
 
       Map<String, Object>[] messages = queueControl.listMessages(filter);
       assertEquals(1, messages.length);
-      Map properties = (Map)messages[0].get("properties");
-      assertEquals(matchingValue, properties.get("key"));
+      assertEquals(matchingValue, messages[0].get("key"));
 
       consumeMessages(2, session, queue);
 
@@ -404,6 +468,43 @@
       session.deleteQueue(queue);
    }
 
+   public void testListMessagesAsJSONWithFilter() throws Exception
+   {
+      SimpleString key = new SimpleString("key");
+      long matchingValue = randomLong();
+      long unmatchingValue = matchingValue + 1;
+      String filter = key + " =" + matchingValue;
+
+      SimpleString address = randomSimpleString();
+      SimpleString queue = randomSimpleString();
+
+      session.createQueue(address, queue, null, false);
+      QueueControl queueControl = createManagementControl(address, queue);
+
+      ClientProducer producer = session.createProducer(address);
+      ClientMessage matchingMessage = session.createClientMessage(false);
+      matchingMessage.putLongProperty(key, matchingValue);
+      producer.send(matchingMessage);
+      ClientMessage unmatchingMessage = session.createClientMessage(false);
+      unmatchingMessage.putLongProperty(key, unmatchingValue);
+      producer.send(unmatchingMessage);
+
+      String jsonString = queueControl.listMessagesAsJSON(filter);
+      assertNotNull(jsonString);
+      JSONArray array = new JSONArray(jsonString);
+      assertEquals(1, array.length());
+      assertEquals(matchingValue, array.getJSONObject(0).get("key"));
+
+      consumeMessages(2, session, queue);
+
+      jsonString = queueControl.listMessagesAsJSON(filter);
+      assertNotNull(jsonString);
+      array = new JSONArray(jsonString);
+      assertEquals(0, array.length());
+
+      session.deleteQueue(queue);
+   }
+   
    /**
     * <ol>
     * <li>send a message to queue</li>
@@ -572,7 +673,7 @@
       // the message IDs are set on the server
       Map<String, Object>[] messages = queueControl.listAllMessages();   
       assertEquals(2, messages.length);
-      long messageID = (Long)messages[0].get("MessageID");
+      long messageID = (Long)messages[0].get("messageID");
 
       boolean moved = queueControl.moveMessage(messageID, otherQueue.toString());
       assertTrue(moved);
@@ -604,7 +705,7 @@
       // the message IDs are set on the server
       Map<String, Object>[] messages = queueControl.listAllMessages(); 
       assertEquals(1, messages.length);
-      long messageID = (Long)messages[0].get("MessageID");
+      long messageID = (Long)messages[0].get("messageID");
 
       // moved all messages to unknown queue
       try
@@ -726,7 +827,7 @@
       // the message IDs are set on the server
       Map<String, Object>[] messages = queueControl.listAllMessages(); 
       assertEquals(2, messages.length);
-      long messageID = (Long)messages[0].get("MessageID");
+      long messageID = (Long)messages[0].get("messageID");
 
       // delete 1st message
       boolean deleted = queueControl.removeMessage(messageID);
@@ -835,7 +936,7 @@
       // the message IDs are set on the server
       Map<String, Object>[] messages = queueControl.listAllMessages();       
       assertEquals(1, messages.length);
-      long messageID = (Long)messages[0].get("MessageID");
+      long messageID = (Long)messages[0].get("messageID");
 
       queueControl.setExpiryAddress(expiryAddress.toString());
       boolean expired = queueControl.expireMessage(messageID);
@@ -873,7 +974,7 @@
       // the message IDs are set on the server
       Map<String, Object>[] messages = queueControl.listAllMessages();       
       assertEquals(2, messages.length);
-      long messageID = (Long)messages[0].get("MessageID");
+      long messageID = (Long)messages[0].get("messageID");
 
       queueControl.setDeadLetterAddress(deadLetterAddress.toString());
 
@@ -914,7 +1015,7 @@
       // the message IDs are set on the server
       Map<String, Object>[] messages = queueControl.listAllMessages();       
       assertEquals(1, messages.length);
-      long messageID = (Long)messages[0].get("MessageID");
+      long messageID = (Long)messages[0].get("messageID");
 
       boolean priorityChanged = queueControl.changeMessagePriority(messageID, newPriority);
       assertTrue(priorityChanged);
@@ -947,7 +1048,7 @@
       // the message IDs are set on the server
       Map<String, Object>[] messages = queueControl.listAllMessages();       
       assertEquals(1, messages.length);
-      long messageID = (Long)messages[0].get("MessageID");
+      long messageID = (Long)messages[0].get("messageID");
 
       try
       {

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlUsingCoreTest.java	2009-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlUsingCoreTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -22,38 +22,16 @@
 
 package org.jboss.messaging.tests.integration.management;
 
-import static org.jboss.messaging.tests.integration.management.ManagementControlHelper.createMessagingServerControl;
-import static org.jboss.messaging.tests.util.RandomUtil.randomBoolean;
-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.randomSimpleString;
-import static org.jboss.messaging.tests.util.RandomUtil.randomString;
-
-import java.util.Iterator;
 import java.util.Map;
-import java.util.Set;
 
-import org.jboss.messaging.core.client.ClientConsumer;
-import org.jboss.messaging.core.client.ClientMessage;
-import org.jboss.messaging.core.client.ClientProducer;
 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.logging.Logger;
-import org.jboss.messaging.core.management.DayCounterInfo;
-import org.jboss.messaging.core.management.MessageCounterInfo;
-import org.jboss.messaging.core.management.MessagingServerControl;
+import org.jboss.messaging.core.management.QueueControl;
 import org.jboss.messaging.core.management.ResourceNames;
-import org.jboss.messaging.core.message.impl.MessageImpl;
-import org.jboss.messaging.core.messagecounter.impl.MessageCounterManagerImpl;
-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.utils.SimpleString;
 
 /**
@@ -62,7 +40,7 @@
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
  *
  */
-public class QueueControlUsingCoreTest extends ManagementTestBase
+public class QueueControlUsingCoreTest extends QueueControlTest
 {
 
    // Constants -----------------------------------------------------
@@ -71,8 +49,6 @@
 
    // Attributes ----------------------------------------------------
 
-   protected MessagingServer server;
-
    protected ClientSession session;
 
    // Static --------------------------------------------------------
@@ -81,1115 +57,254 @@
 
    // Public --------------------------------------------------------
 
-   public void testAttributes() throws Exception
+   @Override
+   protected QueueControl createManagementControl(final SimpleString address, final SimpleString queue) throws Exception
    {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      SimpleString filter = new SimpleString("color = 'blue'");
-      boolean durable = randomBoolean();
+      ClientSessionFactory sf = new ClientSessionFactoryImpl(new TransportConfiguration(InVMConnectorFactory.class.getName()));
+      session = sf.createSession(false, true, true);
+      session.start();
 
-      session.createQueue(address, queue, filter, durable);
+      return new QueueControl()
+      {
+         private final CoreMessagingProxy proxy = new CoreMessagingProxy(session,
+                                                                         ResourceNames.CORE_QUEUE + queue);
 
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(queue.toString(), proxy.retrieveAttributeValue("Name"));
-      assertEquals(address.toString(), proxy.retrieveAttributeValue("Address"));
-      assertEquals(filter.toString(), proxy.retrieveAttributeValue("Filter"));
-      assertEquals(durable, proxy.retrieveAttributeValue("Durable"));
-      assertEquals(false, proxy.retrieveAttributeValue("Temporary"));
-      assertEquals(false, proxy.retrieveAttributeValue("Backup"));
+         public boolean changeMessagePriority(long messageID, int newPriority) throws Exception
+         {
+            return (Boolean)proxy.invokeOperation("changeMessagePriority", messageID, newPriority);
+         }
 
-      session.deleteQueue(queue);
-   }
+         public int changeMessagesPriority(String filter, int newPriority) throws Exception
+         {
+            return (Integer)proxy.invokeOperation("changeMessagesPriority", filter, newPriority);
+         }
 
-   public void testGetNullFilter() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
+         public int countMessages(String filter) throws Exception
+         {
+            return (Integer)proxy.invokeOperation("countMessages", filter);
+         }
 
-      session.createQueue(address, queue, null, false);
+         public boolean expireMessage(long messageID) throws Exception
+         {
+            return (Boolean)proxy.invokeOperation("expireMessage", messageID);
+         }
 
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(queue.toString(), proxy.retrieveAttributeValue("Name"));
-      assertEquals(null, proxy.retrieveAttributeValue("Filter"));
+         public int expireMessages(String filter) throws Exception
+         {
+            return (Integer)proxy.invokeOperation("expireMessages", filter);
+         }
 
-      session.deleteQueue(queue);
-   }
+         public String getAddress()
+         {
+            return (String)proxy.retrieveAttributeValue("Address");
+         }
 
-   public void testGetDeadLetterAddress() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      final SimpleString deadLetterAddress = randomSimpleString();
+         public int getConsumerCount()
+         {
+            return (Integer)proxy.retrieveAttributeValue("ConsumerCount");
+         }
 
-      session.createQueue(address, queue, null, false);
+         public String getDeadLetterAddress()
+         {
+            return (String)proxy.retrieveAttributeValue("DeadLetterAddress");
+         }
 
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertNull(proxy.retrieveAttributeValue("DeadLetterAddress"));
+         public int getDeliveringCount()
+         {
+            return (Integer)proxy.retrieveAttributeValue("DeliveringCount");
+         }
 
-      server.getAddressSettingsRepository().addMatch(address.toString(), new AddressSettings()
-      {
-         @Override
-         public SimpleString getDeadLetterAddress()
+         public String getExpiryAddress()
          {
-            return deadLetterAddress;
+            return (String)proxy.retrieveAttributeValue("ExpiryAddress");
          }
-      });
 
-      assertEquals(deadLetterAddress.toString(), proxy.retrieveAttributeValue("DeadLetterAddress"));
+         public String getFilter()
+         {
+            return (String)proxy.retrieveAttributeValue("Filter");
+         }
 
-      session.deleteQueue(queue);
-   }
+         public int getMessageCount()
+         {
+            return (Integer)proxy.retrieveAttributeValue("MessageCount");
+         }
 
-   public void testSetDeadLetterAddress() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      String deadLetterAddress = randomString();
+         public int getMessagesAdded()
+         {
+            return (Integer)proxy.retrieveAttributeValue("MessagesAdded");
+         }
 
-      session.createQueue(address, queue, null, false);
+         public String getName()
+         {
+            return (String)proxy.retrieveAttributeValue("Name");
+         }
 
-      CoreMessagingProxy proxy = createProxy(queue);
-      proxy.invokeOperation("setDeadLetterAddress", deadLetterAddress);
+         public long getPersistenceID()
+         {
+            return (Long)proxy.retrieveAttributeValue("PersistenceID");
+         }
 
-      assertEquals(deadLetterAddress, proxy.retrieveAttributeValue("DeadLetterAddress"));
+         public long getScheduledCount()
+         {
+            return (Long)proxy.retrieveAttributeValue("ScheduledCount", Long.class);
+         }
 
-      session.deleteQueue(queue);
-   }
+         public boolean isBackup()
+         {
+            return (Boolean)proxy.retrieveAttributeValue("Backup");
+         }
 
-   public void testGetExpiryAddress() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      final SimpleString expiryAddress = randomSimpleString();
+         public boolean isDurable()
+         {
+            return (Boolean)proxy.retrieveAttributeValue("Durable");
+         }
 
-      session.createQueue(address, queue, null, false);
+         public boolean isTemporary()
+         {
+            return (Boolean)proxy.retrieveAttributeValue("Temporary");
+         }
 
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertNull(proxy.retrieveAttributeValue("ExpiryAddress"));
+         public Map<String, Object>[] listAllMessages() throws Exception
+         {
+            Object[] res = (Object[])proxy.invokeOperation("listAllMessages");
+            Map<String, Object>[] results = new Map[res.length];
+            for (int i = 0; i < res.length; i++)
+            {
+               results[i] = (Map<String, Object>)res[i];
+            }
+            return results;
+         }
 
-      server.getAddressSettingsRepository().addMatch(address.toString(), new AddressSettings()
-      {
-         @Override
-         public SimpleString getExpiryAddress()
+         public String listAllMessagesAsJSON() throws Exception
          {
-            return expiryAddress;
+            return (String)proxy.invokeOperation("listAllMessagesAsJSON");
          }
-      });
 
-      assertEquals(expiryAddress.toString(), proxy.retrieveAttributeValue("ExpiryAddress"));
+         public String listMessageCounter() throws Exception
+         {
+            return (String)proxy.invokeOperation("listMessageCounter");
+         }
 
-      session.deleteQueue(queue);
-   }
+         public String listMessageCounterAsHTML() throws Exception
+         {
+            return (String)proxy.invokeOperation("listMessageCounterAsHTML");
+         }
 
-   public void testSetExpiryAddress() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      String expiryAddress = randomString();
+         public String listMessageCounterHistory() throws Exception
+         {
+            return (String)proxy.invokeOperation("listMessageCounterHistory");
+         }
 
-      session.createQueue(address, queue, null, false);
+         public String listMessageCounterHistoryAsHTML() throws Exception
+         {
+            return (String)proxy.invokeOperation("listMessageCounterHistoryAsHTML");
+         }
 
-      CoreMessagingProxy proxy = createProxy(queue);
-      proxy.invokeOperation("setExpiryAddress", expiryAddress);
+         public Map<String, Object>[] listMessages(String filter) throws Exception
+         {
+            Object[] res = (Object[])proxy.invokeOperation("listMessages", filter);
+            Map<String, Object>[] results = new Map[res.length];
+            for (int i = 0; i < res.length; i++)
+            {
+               results[i] = (Map<String, Object>)res[i];
+            }
+            return results;
+         }
 
-      assertEquals(expiryAddress, proxy.retrieveAttributeValue("ExpiryAddress"));
+         public String listMessagesAsJSON(String filter) throws Exception
+         {
+            return (String)proxy.invokeOperation("listMessagesAsJSON", filter);
+         }
 
-      session.deleteQueue(queue);
-   }
+         public Map<String, Object>[] listScheduledMessages() throws Exception
+         {
+            Object[] res = (Object[])proxy.invokeOperation("listScheduledMessages");
+            Map<String, Object>[] results = new Map[res.length];
+            for (int i = 0; i < res.length; i++)
+            {
+               results[i] = (Map<String, Object>)res[i];
+            }
+            return results;
+         }
 
-   public void testGetConsumerCount() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
+         public String listScheduledMessagesAsJSON() throws Exception
+         {
+            return (String)proxy.invokeOperation("listScheduledMessagesAsJSON");
+         }
 
-      session.createQueue(address, queue, null, false);
+         public int moveAllMessages(String otherQueueName) throws Exception
+         {
+            return (Integer)proxy.invokeOperation("moveAllMessages", otherQueueName);
+         }
 
-      CoreMessagingProxy proxy = createProxy(queue);
+         public int moveMatchingMessages(String filter, String otherQueueName) throws Exception
+         {
+            return (Integer)proxy.invokeOperation("moveMatchingMessages", filter, otherQueueName);
+         }
 
-      assertEquals(0, proxy.retrieveAttributeValue("ConsumerCount"));
+         public boolean moveMessage(long messageID, String otherQueueName) throws Exception
+         {
+            return (Boolean)proxy.invokeOperation("moveMessage", messageID, otherQueueName);
+         }
 
-      ClientConsumer consumer = session.createConsumer(queue);
-      assertEquals(1, proxy.retrieveAttributeValue("ConsumerCount"));
+         public int removeAllMessages() throws Exception
+         {
+            return (Integer)proxy.invokeOperation("removeAllMessages");
+         }
 
-      consumer.close();
-      assertEquals(0, proxy.retrieveAttributeValue("ConsumerCount"));
+         public int removeMatchingMessages(String filter) throws Exception
+         {
+            return (Integer)proxy.invokeOperation("removeMatchingMessages", filter);
+         }
 
-      session.deleteQueue(queue);
-   }
+         public boolean removeMessage(long messageID) throws Exception
+         {
+            return (Boolean)proxy.invokeOperation("removeMessage", messageID);
+         }
 
-   public void testGetMessageCount() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
+         public void resetMessageCounter() throws Exception
+         {
+            proxy.invokeOperation("resetMessageCounter");
+         }
 
-      session.createQueue(address, queue, null, false);
+         public boolean sendMessageToDeadLetterAddress(long messageID) throws Exception
+         {
+            return (Boolean)proxy.invokeOperation("sendMessageToDeadLetterAddress", messageID);
+         }
 
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
+         public int sendMessagesToDeadLetterAddress(String filterStr) throws Exception
+         {
+            return (Integer)proxy.invokeOperation("sendMessagesToDeadLetterAddress", filterStr);
+         }
 
-      ClientProducer producer = session.createProducer(address);
-      producer.send(session.createClientMessage(false));
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
+         public void setDeadLetterAddress(String deadLetterAddress) throws Exception
+         {
+            proxy.invokeOperation("setDeadLetterAddress", deadLetterAddress);
+         }
 
-      consumeMessages(1, session, queue);
+         public void setExpiryAddress(String expiryAddres) throws Exception
+         {
+            proxy.invokeOperation("setExpiryAddress", expiryAddres);
+         }
 
-      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
-
-      session.deleteQueue(queue);
+      };
    }
 
-   public void testGetMessagesAdded() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(0, proxy.retrieveAttributeValue("MessagesAdded"));
-
-      ClientProducer producer = session.createProducer(address);
-      producer.send(session.createClientMessage(false));
-      assertEquals(1, proxy.retrieveAttributeValue("MessagesAdded"));
-      producer.send(session.createClientMessage(false));
-      assertEquals(2, proxy.retrieveAttributeValue("MessagesAdded"));
-
-      consumeMessages(2, session, queue);
-
-      assertEquals(2, proxy.retrieveAttributeValue("MessagesAdded"));
-
-      session.deleteQueue(queue);
-   }
-
-   public void testGetScheduledCount() throws Exception
-   {
-      long delay = 2000;
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(0, proxy.retrieveAttributeValue("ScheduledCount"));
-
-      ClientProducer producer = session.createProducer(address);
-      ClientMessage message = session.createClientMessage(false);
-      message.putLongProperty(MessageImpl.HDR_SCHEDULED_DELIVERY_TIME, System.currentTimeMillis() + delay);
-      producer.send(message);
-
-      assertEquals(1, proxy.retrieveAttributeValue("ScheduledCount"));
-      consumeMessages(0, session, queue);
-
-      Thread.sleep(delay);
-
-      assertEquals(0, proxy.retrieveAttributeValue("ScheduledCount"));
-      consumeMessages(1, session, queue);
-
-      session.deleteQueue(queue);
-   }
-
-   public void testListScheduledMessages() throws Exception
-   {
-      long delay = 2000;
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      int intValue = randomInt();
-      session.createQueue(address, queue, null, false);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-
-      ClientProducer producer = session.createProducer(address);
-      ClientMessage message = session.createClientMessage(false);
-      message.putLongProperty(MessageImpl.HDR_SCHEDULED_DELIVERY_TIME, System.currentTimeMillis() + delay);
-      message.putIntProperty(new SimpleString("key"), intValue);
-      producer.send(message);
-      // unscheduled message
-      producer.send(session.createClientMessage(false));
-
-      Object[] data = (Object[])proxy.invokeOperation("listScheduledMessages");
-      assertEquals(1, data.length);     
-      Map messageReceived = (Map)data[0];
-      Map properties = (Map)messageReceived.get("properties");
-      
-      Set entries = properties.entrySet();      
-      Iterator iter = entries.iterator();
-      while (iter.hasNext())
-      {
-         Map.Entry entry = (Map.Entry)iter.next();
-         
-         log.info("key: " + entry.getKey() + " value: " + entry.getValue());
-      }
-      
-      
-      assertEquals(intValue, properties.get("key"));
-
-      Thread.sleep(delay);
-
-      data = (Object[])proxy.invokeOperation("listScheduledMessages");
-      assertEquals(0, data.length);
-
-      consumeMessages(2, session, queue);
-
-      session.deleteQueue(queue);
-   }
-
-   public void testGetDeliveringCount() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-
-      ClientProducer producer = session.createProducer(address);
-      producer.send(session.createClientMessage(false));
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(0, proxy.retrieveAttributeValue("DeliveringCount"));
-
-      ClientConsumer consumer = session.createConsumer(queue);
-      ClientMessage message = consumer.receive(500);
-      assertNotNull(message);
-      assertEquals(1, proxy.retrieveAttributeValue("DeliveringCount"));
-
-      message.acknowledge();
-      session.commit();
-      assertEquals(0, proxy.retrieveAttributeValue("DeliveringCount"));
-
-      consumer.close();
-      session.deleteQueue(queue);
-   }
-
-   public void testListAllMessages() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      int intValue = randomInt();
-      session.createQueue(address, queue, null, false);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-
-      ClientProducer producer = session.createProducer(address);
-      ClientMessage message = session.createClientMessage(false);
-      message.putIntProperty(new SimpleString("key"), intValue);
-      producer.send(message);
-
-      Object[] data = (Object[])proxy.invokeOperation("listAllMessages") ;
-      assertEquals(1, data.length);
-      //MessageInfo[] messageInfos = MessageInfo.from(data);
-      Map messageReceived = (Map)data[0];
-      Map properties = (Map)messageReceived.get("properties");
-      assertEquals(intValue, properties.get("key"));
-
-      consumeMessages(1, session, queue);
-
-      data = (Object[])proxy.invokeOperation("listAllMessages") ;
-      assertEquals(0, data.length);
-
-      session.deleteQueue(queue);
-   }
-
-   public void testListMessagesWithFilter() throws Exception
-   {
-      SimpleString key = new SimpleString("key");
-      long matchingValue = randomLong();
-      long unmatchingValue = matchingValue + 1;
-      String filter = key + " =" + matchingValue;
-
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      CoreMessagingProxy proxy = createProxy(queue);
-
-      ClientProducer producer = session.createProducer(address);
-      ClientMessage matchingMessage = session.createClientMessage(false);
-      matchingMessage.putLongProperty(key, matchingValue);
-      producer.send(matchingMessage);
-      ClientMessage unmatchingMessage = session.createClientMessage(false);
-      unmatchingMessage.putLongProperty(key, unmatchingValue);
-      producer.send(unmatchingMessage);
-
-      Object[] data = (Object[])proxy.invokeOperation("listMessages", filter);
-      assertEquals(1, data.length);
-     // MessageInfo[] messageInfos = MessageInfo.from(data);
-      Map messageReceived = (Map)data[0];
-      Map properties = (Map)messageReceived.get("properties");
-      assertEquals(matchingValue, properties.get("key"));
-
-      consumeMessages(2, session, queue);
-
-      data = (Object[])proxy.invokeOperation("listMessages", filter);
-      assertEquals(0, data.length);
-
-      session.deleteQueue(queue);
-   }
-
-   /**
-    * <ol>
-    * <li>send a message to queue</li>
-    * <li>move all messages from queue to otherQueue using management method</li>
-    * <li>check there is no message to consume from queue</li>
-    * <li>consume the message from otherQueue</li>
-    * </ol>
-    */
-   public void testMoveAllMessages() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      SimpleString otherAddress = randomSimpleString();
-      SimpleString otherQueue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      session.createQueue(otherAddress, otherQueue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send on queue
-      ClientMessage message = session.createClientMessage(false);
-      SimpleString key = randomSimpleString();
-      long value = randomLong();
-      message.putLongProperty(key, value);
-      producer.send(message);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      // moved all messages to otherQueue
-      int movedMessagesCount = (Integer)proxy.invokeOperation("moveAllMessages", otherQueue.toString());
-      assertEquals(1, movedMessagesCount);
-      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
-
-      // check there is no message to consume from queue
-      consumeMessages(0, session, queue);
-
-      // consume the message from otherQueue
-      ClientConsumer otherConsumer = session.createConsumer(otherQueue);
-      ClientMessage m = otherConsumer.receive(500);
-      assertEquals(value, m.getProperty(key));
-
-      m.acknowledge();
-
-      session.deleteQueue(queue);
-      otherConsumer.close();
-      session.deleteQueue(otherQueue);
-   }
-
-   public void testMoveAllMessagesToUnknownQueue() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      SimpleString unknownQueue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send on queue
-      ClientMessage message = session.createClientMessage(false);
-      SimpleString key = randomSimpleString();
-      long value = randomLong();
-      message.putLongProperty(key, value);
-      producer.send(message);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      // moved all messages to unknown queue
-      try
-      {
-         proxy.invokeOperation("moveAllMessages", unknownQueue.toString());
-         fail("operation must fail if the other queue does not exist");
-      }
-      catch (Exception e)
-      {
-      }
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      consumeMessages(1, session, queue);
-
-      session.deleteQueue(queue);
-   }
-
-   /**
-    * <ol>
-    * <li>send 2 message to queue</li>
-    * <li>move messages from queue to otherQueue using management method <em>with filter</em></li>
-    * <li>consume the message which <strong>did not</strong> matches the filter from queue</li>
-    * <li>consume the message which <strong>did</strong> matches the filter from otherQueue</li>
-    * </ol>
-    */
-
-   public void testMoveMatchingMessages() throws Exception
-   {
-      SimpleString key = new SimpleString("key");
-      long matchingValue = randomLong();
-      long unmatchingValue = matchingValue + 1;
-
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      SimpleString otherAddress = randomSimpleString();
-      SimpleString otherQueue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      session.createQueue(otherAddress, otherQueue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send on queue
-      ClientMessage matchingMessage = session.createClientMessage(false);
-      matchingMessage.putLongProperty(key, matchingValue);
-      producer.send(matchingMessage);
-      ClientMessage unmatchingMessage = session.createClientMessage(false);
-      unmatchingMessage.putLongProperty(key, unmatchingValue);
-      producer.send(unmatchingMessage);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
-
-      // moved matching messages to otherQueue
-      int movedMatchedMessagesCount = (Integer)proxy.invokeOperation("moveMatchingMessages",
-                                                                     key + " =" + matchingValue,
-                                                                        otherQueue.toString());
-      assertEquals(1, movedMatchedMessagesCount);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      // consume the unmatched message from queue
-      ClientConsumer consumer = session.createConsumer(queue);
-      ClientMessage m = consumer.receive(500);
-      assertNotNull(m);
-      assertEquals(unmatchingValue, m.getProperty(key));
-
-      // consume the matched message from otherQueue
-      ClientConsumer otherConsumer = session.createConsumer(otherQueue);
-      m = otherConsumer.receive(500);
-      assertNotNull(m);
-      assertEquals(matchingValue, m.getProperty(key));
-
-      m.acknowledge();
-
-      consumer.close();
-      session.deleteQueue(queue);
-      otherConsumer.close();
-      session.deleteQueue(otherQueue);
-   }
-
-   public void testMoveMessage() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      SimpleString otherAddress = randomSimpleString();
-      SimpleString otherQueue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      session.createQueue(otherAddress, otherQueue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send 2 messages on queue
-      producer.send(session.createClientMessage(false));
-      producer.send(session.createClientMessage(false));
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      CoreMessagingProxy otherproxy = createProxy(otherQueue);
-      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
-      assertEquals(0, otherproxy.retrieveAttributeValue("MessageCount"));
-
-      // the message IDs are set on the server
-      Object[] data = (Object[])proxy.invokeOperation("listAllMessages");
-      Map messageReceived = (Map)data[0];
-      assertEquals(2, data.length);
-      long messageID = (Long)messageReceived.get("MessageID");
-
-      boolean moved = (Boolean)proxy.invokeOperation("moveMessage", messageID, otherQueue.toString());
-      assertTrue(moved);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-      assertEquals(1, otherproxy.retrieveAttributeValue("MessageCount"));
-
-      consumeMessages(1, session, queue);
-      consumeMessages(1, session, otherQueue);
-
-      session.deleteQueue(queue);
-      session.deleteQueue(otherQueue);
-   }
-
-   public void testMoveMessageToUnknownQueue() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      SimpleString unknownQueue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send 2 messages on queue
-      producer.send(session.createClientMessage(false));
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      // the message IDs are set on the server
-      Object[] data = (Object[])proxy.invokeOperation("listAllMessages");
-      assertEquals(1, data.length);
-      Map messageReceived = (Map)data[0];
-      long messageID = (Long)messageReceived.get("MessageID");
-
-      // moved all messages to unknown queue
-      try
-      {
-         proxy.invokeOperation("moveMessage", messageID, unknownQueue.toString());
-         fail("operation must fail if the other queue does not exist");
-      }
-      catch (Exception e)
-      {
-      }
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      consumeMessages(1, session, queue);
-
-      session.deleteQueue(queue);
-   }
-
-   /**
-    * <ol>
-    * <li>send 2 messages to queue</li>
-    * <li>remove all messages using management method</li>
-    * <li>check there is no message to consume from queue</li>
-    * <li>consume the message from otherQueue</li>
-    * </ol>
-    */
-   public void testRemoveAllMessages() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send 2 messages on queue
-      producer.send(session.createClientMessage(false));
-      producer.send(session.createClientMessage(false));
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
-
-      // delete all messages
-      int deletedMessagesCount = (Integer)proxy.invokeOperation("removeAllMessages");
-      assertEquals(2, deletedMessagesCount);
-      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
-
-      // check there is no message to consume from queue
-      consumeMessages(0, session, queue);
-
-      session.deleteQueue(queue);
-   }
-
-   /**
-    * <ol>
-    * <li>send 2 message to queue</li>
-    * <li>remove messages from queue using management method <em>with filter</em></li>
-    * <li>check there is only one message to consume from queue</li>
-    * </ol>
-    */
-
-   public void testRemoveMatchingMessages() throws Exception
-   {
-      SimpleString key = new SimpleString("key");
-      long matchingValue = randomLong();
-      long unmatchingValue = matchingValue + 1;
-
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send on queue
-      ClientMessage matchingMessage = session.createClientMessage(false);
-      matchingMessage.putLongProperty(key, matchingValue);
-      producer.send(matchingMessage);
-      ClientMessage unmatchingMessage = session.createClientMessage(false);
-      unmatchingMessage.putLongProperty(key, unmatchingValue);
-      producer.send(unmatchingMessage);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
-
-      // removed matching messages to otherQueue
-      int removedMatchedMessagesCount = (Integer)proxy.invokeOperation("removeMatchingMessages", key + " =" + matchingValue);
-      assertEquals(1, removedMatchedMessagesCount);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      // consume the unmatched message from queue
-      ClientConsumer consumer = session.createConsumer(queue);
-      ClientMessage m = consumer.receive(500);
-      assertNotNull(m);
-      assertEquals(unmatchingValue, m.getProperty(key));
-
-      m.acknowledge();
-
-      // check there is no other message to consume:
-      m = consumer.receive(500);
-      assertNull(m);
-
-      consumer.close();
-      session.deleteQueue(queue);
-   }
-
-   public void testRemoveMessage() throws Exception
-   {
-      SimpleString address = randomSimpleString();      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send 2 messages on queue
-      producer.send(session.createClientMessage(false));
-      producer.send(session.createClientMessage(false));
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
-
-      // the message IDs are set on the server
-      Object[] data = (Object[])proxy.invokeOperation("listAllMessages");    
-      assertEquals(2, data.length);
-      Map message = (Map)data[0];
-      long messageID = (Long)message.get("MessageID");
-
-      // delete 1st message
-      boolean deleted = (Boolean)proxy.invokeOperation("removeMessage", messageID);
-      assertTrue(deleted);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      // check there is a single message to consume from queue
-      consumeMessages(1, session, queue);
-
-      session.deleteQueue(queue);
-   }
-
-   public void testCountMessagesWithFilter() throws Exception
-   {
-      SimpleString key = new SimpleString("key");
-      long matchingValue = randomLong();
-      long unmatchingValue = matchingValue + 1;
-
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send on queue
-      ClientMessage matchingMessage = session.createClientMessage(false);
-      matchingMessage.putLongProperty(key, matchingValue);
-      ClientMessage unmatchingMessage = session.createClientMessage(false);
-      unmatchingMessage.putLongProperty(key, unmatchingValue);
-      producer.send(matchingMessage);
-      producer.send(unmatchingMessage);
-      producer.send(matchingMessage);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(3, proxy.retrieveAttributeValue("MessageCount"));
-
-      assertEquals(2, proxy.invokeOperation("countMessages", key + " =" + matchingValue));
-      assertEquals(1, proxy.invokeOperation("countMessages", key + " =" + unmatchingValue));
-
-      session.deleteQueue(queue);
-   }
-
-   public void testExpireMessagesWithFilter() throws Exception
-   {
-      SimpleString key = new SimpleString("key");
-      long matchingValue = randomLong();
-      long unmatchingValue = matchingValue + 1;
-
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send on queue
-      ClientMessage matchingMessage = session.createClientMessage(false);
-      matchingMessage.putLongProperty(key, matchingValue);
-      producer.send(matchingMessage);
-      ClientMessage unmatchingMessage = session.createClientMessage(false);
-      unmatchingMessage.putLongProperty(key, unmatchingValue);
-      producer.send(unmatchingMessage);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
-
-      int expiredMessagesCount = (Integer)proxy.invokeOperation("expireMessages", key + " =" + matchingValue);
-      assertEquals(1, expiredMessagesCount);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      // consume the unmatched message from queue
-      ClientConsumer consumer = session.createConsumer(queue);
-      ClientMessage m = consumer.receive(500);
-      assertNotNull(m);
-      assertEquals(unmatchingValue, m.getProperty(key));
-
-      m.acknowledge();
-
-      // check there is no other message to consume:
-      m = consumer.receive(500);
-      assertNull(m);
-
-      consumer.close();
-      session.deleteQueue(queue);
-      session.close();
-   }
-
-   public void testExpireMessage() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      SimpleString expiryAddress = randomSimpleString();
-      SimpleString expiryQueue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      session.createQueue(expiryAddress, expiryQueue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send on queue
-      producer.send(session.createClientMessage(false));
-
-      CoreMessagingProxy proxy = createProxy(queue);
- 
-      CoreMessagingProxy expiryproxy = createProxy(expiryQueue);
-      
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-      assertEquals(0, expiryproxy.retrieveAttributeValue("MessageCount"));
-
-      // the message IDs are set on the server
-      Object[] data = (Object[])proxy.invokeOperation("listAllMessages");    
-      assertEquals(1, data.length);
-      Map messageReceived = (Map)data[0];
-      long messageID = (Long)messageReceived.get("MessageID");
-
-      proxy.invokeOperation("setExpiryAddress", expiryAddress.toString());
-      boolean expired = (Boolean)proxy.invokeOperation("expireMessage", messageID);
-      assertTrue(expired);
-      assertEquals(0, proxy.retrieveAttributeValue("MessageCount"));
-      assertEquals(1, expiryproxy.retrieveAttributeValue("MessageCount"));
-
-      consumeMessages(0, session, queue);
-      consumeMessages(1, session, expiryQueue);
-
-      session.deleteQueue(queue);
-      session.deleteQueue(expiryQueue);
-      session.close();
-   }
-
-   public void testSendMessageToDeadLetterAddress() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-      SimpleString deadLetterAddress = randomSimpleString();
-      SimpleString deadLetterQueue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      session.createQueue(deadLetterAddress, deadLetterQueue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      // send 2 messages on queue
-      producer.send(session.createClientMessage(false));
-      producer.send(session.createClientMessage(false));
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      CoreMessagingProxy deadLetterproxy = createProxy(deadLetterQueue);
-      
-      assertEquals(2, proxy.retrieveAttributeValue("MessageCount"));
-
-      // the message IDs are set on the server
-      Object[] data = (Object[])proxy.invokeOperation("listAllMessages");    
-      assertEquals(2, data.length);
-      Map message = (Map)data[0];
-      long messageID = (Long)message.get("MessageID");
-
-      proxy.invokeOperation("setDeadLetterAddress", deadLetterAddress.toString());
-
-      assertEquals(0, deadLetterproxy.retrieveAttributeValue("MessageCount"));
-      boolean movedToDeadLetterAddress = (Boolean)proxy.invokeOperation("sendMessageToDeadLetterAddress", messageID);
-      assertTrue(movedToDeadLetterAddress);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-      assertEquals(1, deadLetterproxy.retrieveAttributeValue("MessageCount"));
-
-      // check there is a single message to consume from queue
-      consumeMessages(1, session, queue);
-
-      // check there is a single message to consume from deadletter queue
-      consumeMessages(1, session, deadLetterQueue);
-
-      session.deleteQueue(queue);
-      session.deleteQueue(deadLetterQueue);
-   }
-
-   public void testChangeMessagePriority() throws Exception
-   {
-      byte originalPriority = (byte)1;
-      byte newPriority = (byte)8;
-
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      ClientMessage message = session.createClientMessage(false);
-      message.setPriority(originalPriority);
-      producer.send(message);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      // the message IDs are set on the server
-      Object[] messages = (Object[])proxy.invokeOperation("listAllMessages");
-      assertEquals(1, messages.length);
-      long messageID = (Long)((Map)messages[0]).get("MessageID");
-
-      boolean priorityChanged = (Boolean)proxy.invokeOperation("changeMessagePriority", messageID, newPriority);
-      assertTrue(priorityChanged);
-
-      ClientConsumer consumer = session.createConsumer(queue);
-      ClientMessage m = consumer.receive(500);
-      assertNotNull(m);
-      assertEquals(newPriority, m.getPriority());
-
-      consumer.close();
-      session.deleteQueue(queue);
-   }
-
-   public void testChangeMessagePriorityWithInvalidValue() throws Exception
-   {
-      byte invalidPriority = (byte)23;
-
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      ClientProducer producer = session.createProducer(address);
-
-      ClientMessage message = session.createClientMessage(false);
-      producer.send(message);
-
-      CoreMessagingProxy proxy = createProxy(queue);
-      assertEquals(1, proxy.retrieveAttributeValue("MessageCount"));
-
-      // the message IDs are set on the server
-      Object[] data = (Object[])proxy.invokeOperation("listAllMessages");    
-      assertEquals(1, data.length);
-      Map messageReceived = (Map)data[0];
-      long messageID = (Long)messageReceived.get("MessageID");
-
-      try
-      {
-         proxy.invokeOperation("changeMessagePriority", messageID, invalidPriority);
-         fail("operation fails when priority value is < 0 or > 9");
-      }
-      catch (Exception e)
-      {
-      }
-
-      ClientConsumer consumer = session.createConsumer(queue);
-      ClientMessage m = consumer.receive(500);
-      assertNotNull(m);
-      assertTrue(invalidPriority != m.getPriority());
-
-      consumer.close();
-      session.deleteQueue(queue);
-   }
-
-   public void testListMessageCounter() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      CoreMessagingProxy proxy = createProxy(queue);
-
-      MessagingServerControl serverControl = createMessagingServerControl(mbeanServer);
-      serverControl.enableMessageCounters();
-      serverControl.setMessageCounterSamplePeriod(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD);
-
-      String jsonString = (String)proxy.invokeOperation("listMessageCounter");     
-      MessageCounterInfo info = MessageCounterInfo.fromJSON(jsonString);
-      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);
-      jsonString = (String)proxy.invokeOperation("listMessageCounter");     
-      info = MessageCounterInfo.fromJSON(jsonString);
-      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);
-      jsonString = (String)proxy.invokeOperation("listMessageCounter");     
-      info = MessageCounterInfo.fromJSON(jsonString);
-      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);
-      jsonString = (String)proxy.invokeOperation("listMessageCounter");     
-      info = MessageCounterInfo.fromJSON(jsonString);
-      assertEquals(0, info.getDepth());
-      assertEquals(-2, info.getDepthDelta());
-      assertEquals(2, info.getCount());
-      assertEquals(0, info.getCountDelta());
-
-      session.deleteQueue(queue);
-   }
-
-   public void testResetMessageCounter() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      CoreMessagingProxy proxy = createProxy(queue);
-
-      MessagingServerControl serverControl = createMessagingServerControl(mbeanServer);
-      serverControl.enableMessageCounters();
-      serverControl.setMessageCounterSamplePeriod(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD);
-
-      String jsonString = (String)proxy.invokeOperation("listMessageCounter");     
-      MessageCounterInfo info = MessageCounterInfo.fromJSON(jsonString);
-      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);
-      jsonString = (String)proxy.invokeOperation("listMessageCounter");     
-      info = MessageCounterInfo.fromJSON(jsonString);
-      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);
-      jsonString = (String)proxy.invokeOperation("listMessageCounter");     
-      info = MessageCounterInfo.fromJSON(jsonString);
-      assertEquals(0, info.getDepth());
-      assertEquals(-1, info.getDepthDelta());
-      assertEquals(1, info.getCount());
-      assertEquals(0, info.getCountDelta());
-
-      proxy.invokeOperation("resetMessageCounter") ;
-
-      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);
-      jsonString = (String)proxy.invokeOperation("listMessageCounter");     
-      info = MessageCounterInfo.fromJSON(jsonString);
-      assertEquals(0, info.getDepth());
-      assertEquals(0, info.getDepthDelta());
-      assertEquals(0, info.getCount());
-      assertEquals(0, info.getCountDelta());
-
-      session.deleteQueue(queue);
-   }
-
-   public void testListMessageCounterAsHTML() throws Exception
-   {
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      CoreMessagingProxy proxy = createProxy(queue);
-
-      String history = (String)proxy.invokeOperation("listMessageCounterAsHTML");
-      assertNotNull(history);
-
-      session.deleteQueue(queue);
-   }
-
-   public void testListMessageCounterHistory() throws Exception
-   {
-      long counterPeriod = 1000;
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      CoreMessagingProxy proxy = createProxy(queue);
-
-      MessagingServerControl serverControl = createMessagingServerControl(mbeanServer);
-      serverControl.enableMessageCounters();
-      serverControl.setMessageCounterSamplePeriod(counterPeriod);
-
-      String jsonString = (String)proxy.invokeOperation("listMessageCounterHistory");
-      DayCounterInfo[] infos = DayCounterInfo.fromJSON(jsonString);
-      assertEquals(1, infos.length);
-
-      session.deleteQueue(queue);
-   }
-
-   public void testListMessageCounterHistoryAsHTML() throws Exception
-   {
-      long counterPeriod = 1000;
-      SimpleString address = randomSimpleString();
-      SimpleString queue = randomSimpleString();
-
-      session.createQueue(address, queue, null, false);
-      CoreMessagingProxy proxy = createProxy(queue);
-
-      MessagingServerControl serverControl = createMessagingServerControl(mbeanServer);
-      serverControl.enableMessageCounters();
-      serverControl.setMessageCounterSamplePeriod(counterPeriod);
-
-      String history = (String)proxy.invokeOperation("listMessageCounterHistoryAsHTML");
-      assertNotNull(history);
-
-      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();
-   }
-
-   @Override
    protected void tearDown() throws Exception
    {
-      session.close();
-
-      server.stop();
-
+      if (session != null)
+      {
+         session.close();
+      }
+      
       super.tearDown();
    }
-
-   protected CoreMessagingProxy createProxy(final SimpleString queue) throws Exception
-   {
-      CoreMessagingProxy proxy = new CoreMessagingProxy(session, ResourceNames.CORE_QUEUE + queue);
-
-      return proxy;
-   }
+   
    // 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-06-11 10:29:58 UTC (rev 7307)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/deployers/impl/QueueDeployerTest.java	2009-06-11 12:28:06 UTC (rev 7308)
@@ -230,6 +230,11 @@
 
          return null;
       }
+      
+      public String getConnectorsAsJSON() throws Exception
+      {
+         return null;
+      }
 
       public int getIDCacheSize()
       {




More information about the jboss-cvs-commits mailing list