[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