[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