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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue May 5 12:02:00 EDT 2009


Author: jmesnil
Date: 2009-05-05 12:01:59 -0400 (Tue, 05 May 2009)
New Revision: 6660

Added:
   trunk/tests/src/org/jboss/messaging/tests/integration/jms/cluster/management/ReplicationAwareJMSServerControlWrapperTest.java
Modified:
   trunk/examples/jms/message-counters/src/org/jboss/jms/example/MessageCounterExample.java
   trunk/src/main/org/jboss/messaging/core/management/DayCounterInfo.java
   trunk/src/main/org/jboss/messaging/core/management/MessageCounterInfo.java
   trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
   trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
   trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java
   trunk/src/main/org/jboss/messaging/core/messagecounter/impl/MessageCounterHelper.java
   trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java
   trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java
   trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareJMSQueueControlWrapper.java
   trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareMessagingServerControlWrapperTest.java
   trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java
Log:
management refactoring

* fixed QueueControl + related classes

Modified: trunk/examples/jms/message-counters/src/org/jboss/jms/example/MessageCounterExample.java
===================================================================
--- trunk/examples/jms/message-counters/src/org/jboss/jms/example/MessageCounterExample.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/examples/jms/message-counters/src/org/jboss/jms/example/MessageCounterExample.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -34,7 +34,6 @@
 import javax.management.MBeanServerConnection;
 import javax.management.MBeanServerInvocationHandler;
 import javax.management.ObjectName;
-import javax.management.openmbean.CompositeData;
 import javax.management.remote.JMXConnector;
 import javax.management.remote.JMXConnectorFactory;
 import javax.management.remote.JMXServiceURL;
@@ -102,8 +101,8 @@
                                                                                                                  false);
 
          // Step 8. List the message counters and convert them to MessageCounterInfo data structure.
-         CompositeData compositeData = queueControl.listMessageCounter();
-         MessageCounterInfo messageCounter = MessageCounterInfo.from(compositeData);
+         String counters = queueControl.listMessageCounter();
+         MessageCounterInfo messageCounter = MessageCounterInfo.fromJSON(counters);
          
          // Step 9. Display the message counter
          displayMessageCounter(messageCounter);
@@ -113,8 +112,8 @@
          Thread.sleep(3000);
 
          // Step 11. List the messages counters again
-         compositeData = queueControl.listMessageCounter();
-         messageCounter = MessageCounterInfo.from(compositeData);
+         counters = queueControl.listMessageCounter();
+         messageCounter = MessageCounterInfo.fromJSON(counters);
          displayMessageCounter(messageCounter);
 
          // Step 12. Create a JMS consumer on the queue
@@ -132,8 +131,8 @@
          Thread.sleep(3000);
          
          // Step 16. Display one last time the message counter
-         compositeData = queueControl.listMessageCounter();
-         messageCounter = MessageCounterInfo.from(compositeData);
+         counters = queueControl.listMessageCounter();
+         messageCounter = MessageCounterInfo.fromJSON(counters);
          displayMessageCounter(messageCounter);
          
          return true;

Modified: trunk/src/main/org/jboss/messaging/core/management/DayCounterInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/DayCounterInfo.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/src/main/org/jboss/messaging/core/management/DayCounterInfo.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -22,23 +22,12 @@
 
 package org.jboss.messaging.core.management;
 
-import static javax.management.openmbean.SimpleType.INTEGER;
-import static javax.management.openmbean.SimpleType.STRING;
+import java.util.Arrays;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import javax.management.openmbean.CompositeData;
-import javax.management.openmbean.CompositeDataSupport;
-import javax.management.openmbean.CompositeType;
-import javax.management.openmbean.OpenDataException;
-import javax.management.openmbean.OpenType;
-import javax.management.openmbean.TabularData;
-import javax.management.openmbean.TabularDataSupport;
-import javax.management.openmbean.TabularType;
-
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.utils.json.JSONArray;
+import org.jboss.messaging.utils.json.JSONException;
+import org.jboss.messaging.utils.json.JSONObject;
 
 
 /**
@@ -53,63 +42,6 @@
 
    private static final Logger log = Logger.getLogger(DayCounterInfo.class);
 
-   public static final CompositeType TYPE;
-   private static final String MESSAGE_TYPE_NAME = "DayCounterInfo";
-   private static final String MESSAGE_TABULAR_TYPE_NAME = "TabularDayCounterInfo";
-   private static final String[] ITEM_NAMES = new String[] { "date", "00",
-         "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11",
-         "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
-         "23", "total" };
-   private static final String[] ITEM_DESCRIPTIONS = new String[] { "Date",
-         "Messages received during the 1st hour",
-         "Messages received during the 2nd hour",
-         "Messages received during the 3rd hour",
-         "Messages received during the 4th hour",
-         "Messages received during the 5th hour",
-         "Messages received during the 6th hour",
-         "Messages received during the 7th hour",
-         "Messages received during the 8th hour",
-         "Messages received during the 9th hour",
-         "Messages received during the 10th hour",
-         "Messages received during the 11th hour",
-         "Messages received during the 12th hour",
-         "Messages received during the 13th hour",
-         "Messages received during the 14th hour",
-         "Messages received during the 15th hour",
-         "Messages received during the 16th hour",
-         "Messages received during the 17th hour",
-         "Messages received during the 18th hour",
-         "Messages received during the 19th hour",
-         "Messages received during the 20th hour",
-         "Messages received during the 21th hour",
-         "Messages received during the 22th hour",
-         "Messages received during the 23th hour",
-         "Messages received during the 24th hour",
-         "Total of messages for the day" };
-   private static final OpenType[] TYPES;
-   private static final TabularType TABULAR_TYPE;
-
-   static
-   {
-      try
-      {
-         TYPES = new OpenType[] { STRING, INTEGER, INTEGER, INTEGER, INTEGER,
-               INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER,
-               INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER,
-               INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER, INTEGER };
-         TYPE = new CompositeType(MESSAGE_TYPE_NAME,
-               "Information for a DayCounterInfo", ITEM_NAMES,
-               ITEM_DESCRIPTIONS, TYPES);
-         TABULAR_TYPE = new TabularType(MESSAGE_TABULAR_TYPE_NAME,
-               "Information for Tabular DayCounterInfo", TYPE,
-               new String[] { "date" });
-      } catch (OpenDataException e)
-      {
-         log.error("Unable to create open types for a DayCounter", e);
-         throw new IllegalStateException(e);
-      }
-   }
-
    // Attributes ----------------------------------------------------
 
    private final String date;
@@ -117,36 +49,45 @@
 
    // Static --------------------------------------------------------
 
-   public static TabularData toTabularData(final DayCounterInfo[] infos)
-         throws OpenDataException
+   public static String toJSON(final DayCounterInfo[] infos) throws JSONException
    {
-      TabularData data = new TabularDataSupport(TABULAR_TYPE);
+      JSONObject json = new JSONObject();
+      JSONArray counters = new JSONArray();
       for (DayCounterInfo info : infos)
       {
-         data.put(info.toCompositeData());
+         JSONObject counter = new JSONObject();
+         counter.put("date", info.getDate());
+         counter.put("counters", Arrays.asList(info.getCounters()));
+         counters.put(counter);
       }
-      return data;
+      json.put("dayCounters", counters);
+      return json.toString();
    }
    
-   public static DayCounterInfo[] from(TabularData data)
+   public static DayCounterInfo[] fromJSON(final String jsonString) throws JSONException
    {
-      Collection values = data.values();
-      List<DayCounterInfo> infos = new ArrayList<DayCounterInfo>();
-      for (Object object : values)
+      
+      JSONObject json = new JSONObject(jsonString);
+      JSONArray dayCounters = json.getJSONArray("dayCounters");
+      System.out.println(json.toString(2));
+      DayCounterInfo[] infos = new DayCounterInfo[dayCounters.length()];
+      for (int i = 0; i < dayCounters.length(); i++)
       {
-         CompositeData compositeData = (CompositeData)object;
-         String date = (String)compositeData.get("date");
-         int[] counters = new int[24];
-         for (int i = 0; i < counters.length; i++)
+         
+         JSONObject counter = (JSONObject)dayCounters.get(i);
+         JSONArray hour = (JSONArray)counter.getJSONArray("counters").get(0);
+         System.out.println(hour.toString(3));
+         int[] hourCounters = new int[24];
+         for (int j = 0; j < 24; j++)
          {
-            counters[i] = (Integer)compositeData.get(String.format("%02d", i));
+            hourCounters[j] = hour.getInt(j);
          }
-         infos.add(new DayCounterInfo(date, counters));
+         DayCounterInfo info = new DayCounterInfo(counter.getString("date"), hourCounters);
+         infos[i] = info;
       }
-      
-      return (DayCounterInfo[])infos.toArray(new DayCounterInfo[infos.size()]);
+      return infos;
    }
-
+   
    // Constructors --------------------------------------------------
 
    public DayCounterInfo(final String date, final int[] counters)
@@ -157,34 +98,15 @@
 
    // Public --------------------------------------------------------
 
-   public CompositeData toCompositeData()
+   public String getDate()
    {
-      try
-      {
-         // 1 for the date, 24 for the hours, 1 for the total
-         Object[] objects = new Object[1 + 24 + 1];
-         objects[0] = date;
-         int total = 0;
-         for (int i = 0; i < counters.length; i++)
-         {
-            int value = counters[i];
-            if (value == -1)
-            {
-               objects[1 + i] = 0;
-            } else
-            {
-               objects[1 + i] = value;
-               total += value;
-            }
-         }
-         objects[objects.length - 1] = total;
-         return new CompositeDataSupport(TYPE, ITEM_NAMES, objects);
-      } catch (OpenDataException e)
-      {
-         log.error("Unable to create a CompositeData from a DayCounter", e);
-         return null;
-      }
+      return date;
    }
+   
+   public int[] getCounters()
+   {
+      return counters;
+   }
 
    // Package protected ---------------------------------------------
 

Modified: trunk/src/main/org/jboss/messaging/core/management/MessageCounterInfo.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/MessageCounterInfo.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/src/main/org/jboss/messaging/core/management/MessageCounterInfo.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -38,6 +38,7 @@
 
 import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.messagecounter.MessageCounter;
+import org.jboss.messaging.utils.json.JSONObject;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -119,6 +120,41 @@
 
    // Static --------------------------------------------------------
 
+   public static String toJSon(MessageCounter counter) throws Exception
+   {
+      JSONObject json = new JSONObject(counter);
+      String lastAddTimestamp = DATE_FORMAT.format(new Date(counter.getLastAddedMessageTime()));
+      json.put("lastAddTimestamp", lastAddTimestamp);
+      String updateTimestamp = DATE_FORMAT.format(new Date(counter.getLastUpdate()));
+      json.put("updateTimestamp", updateTimestamp);
+      
+      return json.toString();
+   }
+   
+   public static MessageCounterInfo fromJSON(String jsonString) throws Exception
+   {
+      JSONObject data = new JSONObject(jsonString);
+      String name = data.getString("destinationName");
+      String subscription = data.getString("destinationSubscription");
+      boolean durable = data.getBoolean("destinationDurable");
+      long count = data.getLong("count");
+      long countDelta = data.getLong("countDelta");
+      int depth = data.getInt("messageCount");
+      int depthDelta = data.getInt("messageCountDelta");
+      String lastAddTimestamp = data.getString("lastAddTimestamp");
+      String updateTimestamp = data.getString("updateTimestamp");
+
+      return new MessageCounterInfo(name,
+                                    subscription,
+                                    durable,
+                                    count,
+                                    countDelta,
+                                    depth,
+                                    depthDelta,
+                                    lastAddTimestamp,
+                                    updateTimestamp);
+   }
+
    public static CompositeData toCompositeData(MessageCounter counter)
    {
       String lassAddTimestamp = DATE_FORMAT.format(new Date(counter.getLastAddedMessageTime()));

Modified: trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -133,13 +133,13 @@
 
    int changeMessagesPriority(String filter, int newPriority) throws Exception;
 
-   Object[] listMessageCounter() throws Exception;
+   String listMessageCounter() throws Exception;
 
    void resetMessageCounter() throws Exception;
 
    String listMessageCounterAsHTML() throws Exception;
 
-   Object[] listMessageCounterHistory() throws Exception;
+   String listMessageCounterHistory() throws Exception;
 
    String listMessageCounterHistoryAsHTML() throws Exception;
 

Modified: trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -28,6 +28,7 @@
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.filter.Filter;
 import org.jboss.messaging.core.filter.impl.FilterImpl;
+import org.jboss.messaging.core.management.MessageCounterInfo;
 import org.jboss.messaging.core.management.QueueControlMBean;
 import org.jboss.messaging.core.message.Message;
 import org.jboss.messaging.core.messagecounter.MessageCounter;
@@ -39,6 +40,7 @@
 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.JSONObject;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -367,18 +369,16 @@
       return queue.changeReferencePriority(messageID, (byte)newPriority);
    }
 
-   public Object[] listMessageCounter()
+   public String listMessageCounter()
    {
-      Object[] counterData = new Object[] { counter.getDestinationName(),
-                                           counter.getDestinationSubscription(),
-                                           counter.isDestinationDurable(),
-                                           counter.getCount(),
-                                           counter.getCountDelta(),
-                                           counter.getMessageCount(),
-                                           counter.getMessageCountDelta(),
-                                           counter.getLastAddedMessageTime(),
-                                           counter.getLastUpdate() };
-      return counterData;
+      try
+      {
+         return MessageCounterInfo.toJSon(counter);
+      }
+      catch (Exception e)
+      {
+         throw new IllegalStateException(e);
+      }
    }
 
    public void resetMessageCounter()
@@ -391,7 +391,7 @@
       return MessageCounterHelper.listMessageCounterAsHTML(new MessageCounter[] { counter });
    }
 
-   public Object[] listMessageCounterHistory() throws Exception
+   public String listMessageCounterHistory() throws Exception
    {
       return MessageCounterHelper.listMessageCounterHistory(counter);
    }

Modified: trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/src/main/org/jboss/messaging/core/management/jmx/impl/ReplicationAwareQueueControlWrapper.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -148,7 +148,7 @@
       return localQueueControl.listAllMessages();
    }
 
-   public Object[] listMessageCounter() throws Exception
+   public String listMessageCounter() throws Exception
    {
       return localQueueControl.listMessageCounter();
    }
@@ -163,7 +163,7 @@
       return localQueueControl.listMessageCounterAsHTML();
    }
 
-   public Object[] listMessageCounterHistory() throws Exception
+   public String listMessageCounterHistory() throws Exception
    {
       return localQueueControl.listMessageCounterHistory();
    }

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

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -118,11 +118,11 @@
    int moveAllMessages(@Parameter(name = "otherQueueName", desc = "The name of the queue to move the messages to")
    String otherQueueName) throws Exception;
 
-   Object[] listMessageCounter() throws Exception;
+   String listMessageCounter() throws Exception;
 
    String listMessageCounterAsHTML() throws Exception;
 
-   Object[] listMessageCounterHistory() throws Exception;
+   String listMessageCounterHistory() throws Exception;
 
    String listMessageCounterHistoryAsHTML() throws Exception;
 

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -27,6 +27,7 @@
 
 import org.jboss.messaging.core.exception.MessagingException;
 import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.management.MessageCounterInfo;
 import org.jboss.messaging.core.management.QueueControlMBean;
 import org.jboss.messaging.core.messagecounter.MessageCounter;
 import org.jboss.messaging.core.messagecounter.impl.MessageCounterHelper;
@@ -276,10 +277,16 @@
       return moveMatchingMessages(null, otherQueueName);
    }
 
-   public Object[] listMessageCounter()
+   public String listMessageCounter()
    {
-      //return MessageCounterInfo.toCompositeData(counter);
-      return new Object[0];
+      try
+      {
+         return MessageCounterInfo.toJSon(counter);
+      }
+      catch (Exception e)
+      {
+         throw new IllegalStateException(e);
+      }
    }
 
    public String listMessageCounterAsHTML()
@@ -287,7 +294,7 @@
       return MessageCounterHelper.listMessageCounterAsHTML(new MessageCounter[] { counter });
    }
 
-   public Object[] listMessageCounterHistory() throws Exception
+   public String listMessageCounterHistory() throws Exception
    {
       return MessageCounterHelper.listMessageCounterHistory(counter);
    }

Modified: trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareJMSQueueControlWrapper.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareJMSQueueControlWrapper.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/jmx/impl/ReplicationAwareJMSQueueControlWrapper.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -124,7 +124,7 @@
       return localControl.listAllMessages();
    }
 
-   public Object[] listMessageCounter()
+   public String listMessageCounter()
    {
       return localControl.listMessageCounter();
    }
@@ -134,7 +134,7 @@
       return localControl.listMessageCounterAsHTML();
    }
 
-   public Object[] listMessageCounterHistory() throws Exception
+   public String listMessageCounterHistory() throws Exception
    {
       return localControl.listMessageCounterHistory();
    }

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareMessagingServerControlWrapperTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareMessagingServerControlWrapperTest.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/cluster/management/ReplicationAwareMessagingServerControlWrapperTest.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -29,7 +29,6 @@
 import static org.jboss.messaging.tests.util.RandomUtil.randomSimpleString;
 
 import javax.management.ObjectName;
-import javax.management.openmbean.CompositeData;
 
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientProducer;
@@ -37,6 +36,7 @@
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryImpl;
 import org.jboss.messaging.core.client.impl.ClientSessionFactoryInternal;
 import org.jboss.messaging.core.config.TransportConfiguration;
+import org.jboss.messaging.core.management.MessageCounterInfo;
 import org.jboss.messaging.core.management.MessagingServerControlMBean;
 import org.jboss.messaging.core.management.ObjectNames;
 import org.jboss.messaging.core.management.QueueControlMBean;
@@ -161,23 +161,21 @@
       Thread.sleep(liveServerControl.getMessageCounterSamplePeriod() * 2);
 
       // check the count is to 1 on both live & backup nodes
-      Object[] counter = liveQueueControl.listMessageCounter();
+      String jsonString = liveQueueControl.listMessageCounter();
+      MessageCounterInfo counter = MessageCounterInfo.fromJSON(jsonString);
       
-      fail("re-enable test");
-//      assertEquals((long)1, counter.get("count"));
-//      counter = backupQueueControl.listMessageCounter();
-//      assertEquals((long)1, counter.get("count"));
-//
-//      liveServerControl.resetAllMessageCounters();
-//      Thread.sleep(liveServerControl.getMessageCounterSamplePeriod() * 2);
-//
-//      // check the count has been reset to 0 on both live & backup nodes
-//      counter = liveQueueControl.listMessageCounter();
-//      assertEquals((long)0, counter.get("count"));
-//      counter = backupQueueControl.listMessageCounter();
-//      assertEquals((long)0, counter.get("count"));
-      
-      //TODO re-enable test
+      assertEquals(1, counter.getCount());
+      counter = MessageCounterInfo.fromJSON(backupQueueControl.listMessageCounter());
+      assertEquals(1, counter.getCount());
+
+      liveServerControl.resetAllMessageCounters();
+      Thread.sleep(liveServerControl.getMessageCounterSamplePeriod() * 2);
+
+      // check the count has been reset to 0 on both live & backup nodes
+      counter = MessageCounterInfo.fromJSON(liveQueueControl.listMessageCounter());
+      assertEquals(0, counter.getCount());
+      counter = MessageCounterInfo.fromJSON(backupQueueControl.listMessageCounter());
+      assertEquals(0, counter.getCount());      
    }
 
    public void testSetMessageCounterSamplePeriod() throws Exception

Added: trunk/tests/src/org/jboss/messaging/tests/integration/jms/cluster/management/ReplicationAwareJMSServerControlWrapperTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/jms/cluster/management/ReplicationAwareJMSServerControlWrapperTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/jms/cluster/management/ReplicationAwareJMSServerControlWrapperTest.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -0,0 +1,173 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * 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.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+
+package org.jboss.messaging.tests.integration.jms.cluster.management;
+
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+
+import javax.jms.Connection;
+import javax.jms.Session;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.management.ObjectNames;
+import org.jboss.messaging.core.remoting.impl.invm.InVMConnectorFactory;
+import org.jboss.messaging.jms.server.impl.JMSServerManagerImpl;
+import org.jboss.messaging.jms.server.management.JMSServerControlMBean;
+import org.jboss.messaging.tests.integration.cluster.management.ReplicationAwareTestBase;
+import org.jboss.messaging.tests.integration.jms.server.management.JMSUtil;
+import org.jboss.messaging.tests.integration.jms.server.management.NullInitialContext;
+import org.jboss.messaging.tests.integration.management.ManagementControlHelper;
+import org.jboss.messaging.utils.SimpleString;
+
+/**
+ * A ReplicationAwareQueueControlWrapperTest
+ *
+ * @author <a href="jmesnil at redhat.com">Jeff Mesnil</a>
+ */
+public class ReplicationAwareJMSServerControlWrapperTest extends ReplicationAwareTestBase
+{
+   // Constants -----------------------------------------------------
+
+   private static final Logger log = Logger.getLogger(ReplicationAwareJMSServerControlWrapperTest.class);
+
+   
+   // Attributes ----------------------------------------------------
+
+   private JMSServerManagerImpl liveServerManager;
+
+   private JMSServerManagerImpl backupServerManager;
+
+   private JMSServerControlMBean liveServerControl;
+
+   private JMSServerControlMBean backupServerControl;
+
+   // Static --------------------------------------------------------
+
+   private static void checkNoResource(ObjectName on, MBeanServer mbeanServer)
+   {
+      assertFalse("unexpected resource for " + on, mbeanServer.isRegistered(on));
+   }
+
+   private static void checkResource(ObjectName on, MBeanServer mbeanServer)
+   {
+      assertTrue("no resource for " + on, mbeanServer.isRegistered(on));
+   }
+
+   // Public --------------------------------------------------------
+   
+
+   public void testCreateAndDestroyQueue() throws Exception
+   {
+      
+      String name = randomString();
+      String binding = randomString();
+      ObjectName queueON = ObjectNames.getJMSQueueObjectName(name);
+      
+      checkNoResource(queueON, liveMBeanServer);
+      checkNoResource(queueON, backupMBeanServer);
+      
+      liveServerControl.createQueue(name , binding);
+
+      checkResource(queueON, liveMBeanServer);
+      checkResource(queueON, backupMBeanServer);
+      
+      liveServerControl.destroyQueue(name);
+
+      checkNoResource(queueON, liveMBeanServer);
+      checkNoResource(queueON, backupMBeanServer);
+   }
+   
+   public void testCreateAndDestroyTopic() throws Exception
+   {
+      
+      String name = randomString();
+      String binding = randomString();
+      ObjectName topicON = ObjectNames.getJMSTopicObjectName(name);
+      
+      checkNoResource(topicON, liveMBeanServer);
+      checkNoResource(topicON, backupMBeanServer);
+      
+      liveServerControl.createTopic(name , binding);
+
+      checkResource(topicON, liveMBeanServer);
+      checkResource(topicON, backupMBeanServer);
+      
+      liveServerControl.destroyTopic(name);
+
+      checkNoResource(topicON, liveMBeanServer);
+      checkNoResource(topicON, backupMBeanServer);
+   }
+   
+   public void testListRemoteAddresses() throws Exception
+   {
+      assertEquals(0, liveServerControl.listRemoteAddresses().length);
+      // the live server has opened a connection on the backup server
+      assertEquals(1, backupServerControl.listRemoteAddresses().length);
+
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+
+      assertEquals(1, liveServerControl.listRemoteAddresses().length);
+      assertEquals(1, backupServerControl.listRemoteAddresses().length);
+      
+      connection.close();
+      
+      assertEquals(0, liveServerControl.listRemoteAddresses().length);
+      assertEquals(1, backupServerControl.listRemoteAddresses().length);
+   }
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+   
+   @Override
+   protected void setUp() throws Exception
+   {
+      doSetup(false);
+
+      backupServerManager = new JMSServerManagerImpl(backupServer);
+      backupServerManager.setContext(new NullInitialContext());
+      backupServerManager.start();
+      
+      liveServerManager = new JMSServerManagerImpl(liveServer);
+      liveServerManager.setContext(new NullInitialContext());
+      liveServerManager.start();
+      
+      liveServerControl = ManagementControlHelper.createJMSServerControl(liveMBeanServer);
+      backupServerControl = ManagementControlHelper.createJMSServerControl(backupMBeanServer);      
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      backupServerManager.stop();
+      liveServerManager.stop();
+      
+      super.tearDown();
+   }
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
+}

Modified: trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java	2009-05-05 15:01:07 UTC (rev 6659)
+++ trunk/tests/src/org/jboss/messaging/tests/integration/management/QueueControlTest.java	2009-05-05 16:01:59 UTC (rev 6660)
@@ -32,8 +32,6 @@
 
 import java.util.Map;
 
-import javax.management.openmbean.CompositeData;
-
 import org.jboss.messaging.core.client.ClientConsumer;
 import org.jboss.messaging.core.client.ClientMessage;
 import org.jboss.messaging.core.client.ClientProducer;
@@ -43,6 +41,7 @@
 import org.jboss.messaging.core.config.Configuration;
 import org.jboss.messaging.core.config.TransportConfiguration;
 import org.jboss.messaging.core.config.impl.ConfigurationImpl;
+import org.jboss.messaging.core.management.DayCounterInfo;
 import org.jboss.messaging.core.management.MessageCounterInfo;
 import org.jboss.messaging.core.management.MessagingServerControlMBean;
 import org.jboss.messaging.core.management.QueueControlMBean;
@@ -305,7 +304,7 @@
 
       Map<String, Object>[] messages = queueControl.listScheduledMessages();
       assertEquals(1, messages.length);     
-      assertEquals(Integer.toString(intValue), messages[0].get("key"));
+      assertEquals(intValue, messages[0].get("key"));
 
       Thread.sleep(delay);
 
@@ -359,7 +358,7 @@
 
       Map<String, Object>[] messages =  queueControl.listAllMessages();
       assertEquals(1, messages.length);     
-      assertEquals(Integer.toString(intValue), messages[0].get("key"));
+      assertEquals(intValue, messages[0].get("key"));
 
       consumeMessages(1, session, queue);
 
@@ -392,7 +391,7 @@
 
       Map<String, Object>[] messages = queueControl.listMessages(filter);
       assertEquals(1, messages.length);
-      assertEquals(Long.toString(matchingValue), messages[0].get("key"));
+      assertEquals(matchingValue, messages[0].get("key"));
 
       consumeMessages(2, session, queue);
 
@@ -977,46 +976,44 @@
       serverControl.enableMessageCounters();
       serverControl.setMessageCounterSamplePeriod(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD);
 
-      Object[] compositeData = queueControl.listMessageCounter();
-    
-      fail("Re-enable test");
+      String jsonString = queueControl.listMessageCounter();
+      MessageCounterInfo info = MessageCounterInfo.fromJSON(jsonString);
       
-      //TODO re-enable this
-//      assertEquals(0, info.getDepth());
-//      assertEquals(0, info.getCount());
-//
-//      ClientProducer producer = session.createProducer(address);
-//      producer.send(session.createClientMessage(false));
-//
-//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);
-//      compositeData = queueControl.listMessageCounter();
-//      info = MessageCounterInfo.from(compositeData);
-//      assertEquals(1, info.getDepth());
-//      assertEquals(1, info.getDepthDelta());
-//      assertEquals(1, info.getCount());
-//      assertEquals(1, info.getCountDelta());
-//
-//      producer.send(session.createClientMessage(false));
-//
-//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);
-//      compositeData = queueControl.listMessageCounter();
-//      info = MessageCounterInfo.from(compositeData);
-//      assertEquals(2, info.getDepth());
-//      assertEquals(1, info.getDepthDelta());
-//      assertEquals(2, info.getCount());
-//      assertEquals(1, info.getCountDelta());
-//
-//      consumeMessages(2, session, queue);
-//
-//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);      
-//      compositeData = queueControl.listMessageCounter();
-//      info = MessageCounterInfo.from(compositeData);
-//      assertEquals(0, info.getDepth());
-//      assertEquals(-2, info.getDepthDelta());
-//      assertEquals(2, info.getCount());
-//      assertEquals(0, info.getCountDelta());
-//
-//      session.deleteQueue(queue);
+      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 = queueControl.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 = queueControl.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 = queueControl.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
@@ -1031,47 +1028,44 @@
       serverControl.enableMessageCounters();
       serverControl.setMessageCounterSamplePeriod(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD);
 
-      Object[] compositeData = queueControl.listMessageCounter();
+      String jsonString = queueControl.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 = queueControl.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 = queueControl.listMessageCounter();
+      info = MessageCounterInfo.fromJSON(jsonString);
+      assertEquals(0, info.getDepth());
+      assertEquals(-1, info.getDepthDelta());
+      assertEquals(1, info.getCount());
+      assertEquals(0, info.getCountDelta());
+
+      queueControl.resetMessageCounter();
       
-      fail("re-enable test");
+      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);      
+      jsonString = queueControl.listMessageCounter();
+      info = MessageCounterInfo.fromJSON(jsonString);
+      assertEquals(0, info.getDepth());
+      assertEquals(0, info.getDepthDelta());
+      assertEquals(0, info.getCount());
+      assertEquals(0, info.getCountDelta());
       
-      //TODO re-enable
-//      MessageCounterInfo info = MessageCounterInfo.from(compositeData);
-//      assertEquals(0, info.getDepth());
-//      assertEquals(0, info.getCount());
-//
-//      ClientProducer producer = session.createProducer(address);
-//      producer.send(session.createClientMessage(false));
-//
-//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);
-//      compositeData = queueControl.listMessageCounter();
-//      info = MessageCounterInfo.from(compositeData);
-//      assertEquals(1, info.getDepth());
-//      assertEquals(1, info.getDepthDelta());
-//      assertEquals(1, info.getCount());
-//      assertEquals(1, info.getCountDelta());
-//
-//      consumeMessages(1, session, queue);
-//
-//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);      
-//      compositeData = queueControl.listMessageCounter();
-//      info = MessageCounterInfo.from(compositeData);
-//      assertEquals(0, info.getDepth());
-//      assertEquals(-1, info.getDepthDelta());
-//      assertEquals(1, info.getCount());
-//      assertEquals(0, info.getCountDelta());
-//
-//      queueControl.resetMessageCounter();
-//      
-//      Thread.sleep(MessageCounterManagerImpl.MIN_SAMPLE_PERIOD * 2);      
-//      compositeData = queueControl.listMessageCounter();
-//      info = MessageCounterInfo.from(compositeData);
-//      assertEquals(0, info.getDepth());
-//      assertEquals(0, info.getDepthDelta());
-//      assertEquals(0, info.getCount());
-//      assertEquals(0, info.getCountDelta());
-//      
-//      session.deleteQueue(queue);
+      session.deleteQueue(queue);
    }
    
    public void testListMessageCounterAsHTML() throws Exception
@@ -1101,8 +1095,9 @@
       serverControl.enableMessageCounters();
       serverControl.setMessageCounterSamplePeriod(counterPeriod);
 
-      Object[] tabularData = queueControl.listMessageCounterHistory();
-      assertEquals(1, tabularData.length);
+      String jsonString = queueControl.listMessageCounterHistory();
+      DayCounterInfo[] infos = DayCounterInfo.fromJSON(jsonString);
+      assertEquals(1, infos.length);
 
       session.deleteQueue(queue);
    }




More information about the jboss-cvs-commits mailing list