[jboss-cvs] JBoss Messaging SVN: r4705 - in branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging: jms/server/impl and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jul 22 05:37:57 EDT 2008
Author: jmesnil
Date: 2008-07-22 05:37:56 -0400 (Tue, 22 Jul 2008)
New Revision: 4705
Modified:
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSMessageInfo.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/TopicControlMBean.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java
branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java
Log:
JBMESSAGING-1303: Revisit management interfaces
* added listMessages(String filter) operation to JMSQueueControlMBean
* added listMessagesForSubscriber(subID) operation to TopicControlMBean
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java 2008-07-21 23:45:02 UTC (rev 4704)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/core/management/MessagingServerManagement.java 2008-07-22 09:37:56 UTC (rev 4705)
@@ -268,11 +268,11 @@
Configuration getConfiguration();
/**
- * @param simpleAddress
+ * @param queueName
* @return
* @throws Exception
*/
- Queue getQueue(SimpleString simpleAddress) throws Exception;
+ Queue getQueue(SimpleString queueName) throws Exception;
/**
* @return
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java 2008-07-21 23:45:02 UTC (rev 4704)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java 2008-07-22 09:37:56 UTC (rev 4705)
@@ -161,9 +161,6 @@
public boolean destroyQueue(String name) throws Exception
{
- // JBossQueue jBossQueue = new JBossQueue(name);
-// messagingServerManagement.destroyQueue(new SimpleString(name));
-// messagingServerManagement.removeDestination(jBossQueue.getSimpleAddress());
List<String> jndiBindings = destinations.get(name);
if (jndiBindings == null || jndiBindings.size() == 0)
{
@@ -183,8 +180,6 @@
public boolean destroyTopic(String name) throws Exception
{
- // JBossTopic jBossTopic = new JBossTopic(name);
- // messagingServerManagement.removeDestination(jBossTopic.getSimpleAddress());
List<String> jndiBindings = destinations.get(name);
if (jndiBindings == null || jndiBindings.size() == 0)
{
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSMessageInfo.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSMessageInfo.java 2008-07-21 23:45:02 UTC (rev 4704)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSMessageInfo.java 2008-07-22 09:37:56 UTC (rev 4705)
@@ -40,6 +40,10 @@
import javax.management.openmbean.TabularDataSupport;
import javax.management.openmbean.TabularType;
+import org.jboss.messaging.core.server.ServerMessage;
+import org.jboss.messaging.jms.client.JBossMessage;
+import org.jboss.messaging.util.SimpleString;
+
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
*
@@ -53,12 +57,12 @@
public static final CompositeType TYPE;
private static final String MESSAGE_TYPE_NAME = "JMSMessageInfo";
private static final String MESSAGE_TABULAR_TYPE_NAME = "JMSMessageTabularInfo";
- private static final String[] ITEM_NAMES = new String[] { "messageID",
- "correlationID", "deliveryMode", "priority", "replyTo", "timestamp",
- "expiration", "jmsType", "properties" };
+ private static final String[] ITEM_NAMES = new String[] { "JMSMessageID",
+ "JMSCorrelationID", "JMSDeliveryMode", "JMSPriority", "JMSReplyTo",
+ "JMSTimestamp", "JMSType", "expiration", "properties" };
private static final String[] ITEM_DESCRIPTIONS = new String[] {
"Message ID", "Correlation ID", "Delivery Mode", "Priority",
- "Reply To", "Timestamp", "Expiration", "JMS Type", "JMS Properties" };
+ "Reply To", "Timestamp", "JMS Type", "Expiration", "Properties" };
private static final OpenType[] TYPES;
private static final TabularType TABULAR_TYPE;
@@ -66,14 +70,14 @@
{
try
{
- TYPES = new OpenType[] { STRING, STRING, INTEGER, INTEGER, STRING,
- LONG, LONG, STRING, PropertiesInfo.TABULAR_TYPE };
+ TYPES = new OpenType[] { STRING, STRING, STRING, INTEGER, STRING,
+ LONG, STRING, LONG, PropertiesInfo.TABULAR_TYPE };
TYPE = new CompositeType(MESSAGE_TYPE_NAME,
"Information for a JMS Message", ITEM_NAMES, ITEM_DESCRIPTIONS,
TYPES);
TABULAR_TYPE = new TabularType(MESSAGE_TABULAR_TYPE_NAME,
"Information for tabular JMSMessageInfo", TYPE,
- new String[] { "messageID" });
+ new String[] { "JMSMessageID" });
} catch (OpenDataException e)
{
e.printStackTrace();
@@ -85,7 +89,7 @@
private final String messageID;
private final String correlationID;
- private final int deliveryMode;
+ private final String deliveryMode;
private final int priority;
private final String replyTo;
private final long timestamp;
@@ -116,10 +120,40 @@
return data;
}
+ public static JMSMessageInfo fromServerMessage(ServerMessage message)
+ {
+ String messageID = message.getProperty(JBossMessage.JBM_MESSAGE_ID)
+ .toString();
+ SimpleString simpleCorrelationID = (SimpleString) message
+ .getProperty(JBossMessage.CORRELATIONID_HEADER_NAME);
+ String correlationID = (simpleCorrelationID == null) ? null
+ : simpleCorrelationID.toString();
+ SimpleString simpleJMSType = (SimpleString) message
+ .getProperty(JBossMessage.TYPE_HEADER_NAME);
+ String jmsType = (simpleJMSType == null) ? null : simpleJMSType
+ .toString();
+ String deliveryMode = message.isDurable() ? "PERSISTENT"
+ : "NON_PERSISTENT";
+ int priority = message.getPriority();
+ SimpleString replyAddress = (SimpleString) message
+ .getProperty(JBossMessage.REPLYTO_HEADER_NAME);
+ String replyTo = (replyAddress == null) ? null : replyAddress.toString();
+ long timestamp = message.getTimestamp();
+ long expiration = message.getExpiration();
+
+ JMSMessageInfo info = new JMSMessageInfo(messageID, correlationID,
+ deliveryMode, priority, replyTo, timestamp, expiration, jmsType);
+ for (SimpleString key : message.getPropertyNames())
+ {
+ info.putProperty(key.toString(), message.getProperty(key).toString());
+ }
+ return info;
+ }
+
// Constructors --------------------------------------------------
public JMSMessageInfo(String messageID, String correlationID,
- int deliveryMode, int priority, String replyTo, long timestamp,
+ String deliveryMode, int priority, String replyTo, long timestamp,
long expiration, String jmsType)
{
this.messageID = messageID;
@@ -156,7 +190,7 @@
{
return new CompositeDataSupport(TYPE, ITEM_NAMES, new Object[] {
messageID, correlationID, deliveryMode, priority, replyTo,
- timestamp, expiration, jmsType, properties.toTabularData() });
+ timestamp, jmsType, expiration, properties.toTabularData() });
} catch (OpenDataException e)
{
e.printStackTrace();
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java 2008-07-21 23:45:02 UTC (rev 4704)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/JMSQueueControlMBean.java 2008-07-22 09:37:56 UTC (rev 4705)
@@ -22,8 +22,13 @@
package org.jboss.messaging.jms.server.management;
+import static javax.management.MBeanOperationInfo.INFO;
+
import javax.management.openmbean.TabularData;
+import org.jboss.messaging.core.management.Operation;
+import org.jboss.messaging.core.management.Parameter;
+
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
*
@@ -32,5 +37,11 @@
*/
public interface JMSQueueControlMBean extends DestinationControlMBean
{
+ @Operation(desc = "List all messages in the queue", impact = INFO)
TabularData listAllMessages() throws Exception;
+
+ @Operation(desc = "List all messages in the queue which matches the filter", impact = INFO)
+ TabularData listMessages(
+ @Parameter(name = "filter", desc = "A JMS Message filter") String filter)
+ throws Exception;
}
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/TopicControlMBean.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/TopicControlMBean.java 2008-07-21 23:45:02 UTC (rev 4704)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/TopicControlMBean.java 2008-07-22 09:37:56 UTC (rev 4705)
@@ -25,6 +25,7 @@
import javax.management.openmbean.TabularData;
import org.jboss.messaging.core.management.Operation;
+import org.jboss.messaging.core.management.Parameter;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -37,16 +38,19 @@
// Attributes ----------------------------------------------------
int getSubcriptionsCount();
+
int getDurableSubcriptionsCount();
+
int getNonDurableSubcriptionsCount();
-
+
int getDurableMessageCount();
+
int getNonDurableMessageCount();
// Operations ----------------------------------------------------
-
+
// Open Type API
-
+
@Operation(desc = "List all subscribers")
TabularData listAllSubscribers();
@@ -56,8 +60,13 @@
@Operation(desc = "List only the non durable subscribers")
TabularData listNonDurableSubscribers();
+ @Operation(desc = "List all the message for the given subscriber")
+ public TabularData listMessagesForSubscriber(
+ @Parameter(name = "subscriberID", desc = "Subscriber's ID") String subscriberID)
+ throws Exception;
+
// Specific API
-
+
@Operation(desc = "List all subscribers")
SubscriberInfo[] listAllSubscriberInfos();
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java 2008-07-21 23:45:02 UTC (rev 4704)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/JMSQueueControl.java 2008-07-22 09:37:56 UTC (rev 4705)
@@ -25,17 +25,20 @@
import java.util.ArrayList;
import java.util.List;
-import javax.jms.DeliveryMode;
+import javax.management.MBeanInfo;
import javax.management.NotCompliantMBeanException;
import javax.management.StandardMBean;
import javax.management.openmbean.TabularData;
+import org.jboss.messaging.core.exception.MessagingException;
+import org.jboss.messaging.core.filter.Filter;
+import org.jboss.messaging.core.filter.impl.FilterImpl;
+import org.jboss.messaging.core.management.impl.MBeanInfoHelper;
import org.jboss.messaging.core.server.MessageReference;
import org.jboss.messaging.core.server.Queue;
import org.jboss.messaging.core.server.ServerMessage;
-import org.jboss.messaging.jms.JBossDestination;
import org.jboss.messaging.jms.JBossQueue;
-import org.jboss.messaging.jms.client.JBossMessage;
+import org.jboss.messaging.jms.client.SelectorTranslator;
import org.jboss.messaging.jms.server.JMSServerManager;
import org.jboss.messaging.jms.server.management.JMSMessageInfo;
import org.jboss.messaging.jms.server.management.JMSQueueControlMBean;
@@ -110,58 +113,45 @@
public TabularData listAllMessages() throws Exception
{
+ return listMessages(null);
+ }
+
+ public TabularData listMessages(String filterStr) throws Exception
+ {
try
{
- List<MessageReference> messageRefs = coreQueue.list(null);
+ Filter filter = filterStr == null ? null : new FilterImpl(
+ new SimpleString(SelectorTranslator
+ .convertToJBMFilterString(filterStr)));
+
+ List<MessageReference> messageRefs = coreQueue.list(filter);
List<JMSMessageInfo> infos = new ArrayList<JMSMessageInfo>(messageRefs
.size());
for (MessageReference messageRef : messageRefs)
{
ServerMessage message = messageRef.getMessage();
-
- String messageID = message.getProperty(JBossMessage.JBM_MESSAGE_ID)
- .toString();
- SimpleString simpleCorrelationID = (SimpleString) message
- .getProperty(JBossMessage.CORRELATIONID_HEADER_NAME);
- String correlationID = (simpleCorrelationID == null) ? null
- : simpleCorrelationID.toString();
- SimpleString simpleJMSType = (SimpleString) message
- .getProperty(JBossMessage.TYPE_HEADER_NAME);
- String jmsType = (simpleJMSType == null) ? null : simpleJMSType
- .toString();
- int deliveryMode = message.isDurable() ? DeliveryMode.PERSISTENT
- : DeliveryMode.NON_PERSISTENT;
- int priority = message.getPriority();
- String replyTo = null;
- SimpleString replyAddress = (SimpleString) message
- .getProperty(JBossMessage.REPLYTO_HEADER_NAME);
- if (replyAddress != null)
- {
- replyTo = JBossDestination.fromAddress(replyAddress.toString())
- .toString();
- }
- long timestamp = message.getTimestamp();
- long expiration = message.getExpiration();
-
- JMSMessageInfo info = new JMSMessageInfo(messageID, correlationID,
- deliveryMode, priority, replyTo, timestamp, expiration,
- jmsType);
- for (SimpleString key : message.getPropertyNames())
- {
- info.putProperty(key.toString(), message.getProperty(key)
- .toString());
- }
+ JMSMessageInfo info = JMSMessageInfo.fromServerMessage(message);
infos.add(info);
-
}
return JMSMessageInfo.toTabularData(infos);
- } catch (Throwable t)
+ } catch (MessagingException e)
{
- t.printStackTrace();
- return null;
+ throw new IllegalStateException(e.getMessage());
}
}
+ // StandardMBean overrides ---------------------------------------
+
+ @Override
+ public MBeanInfo getMBeanInfo()
+ {
+ MBeanInfo info = super.getMBeanInfo();
+ return new MBeanInfo(info.getClassName(), info.getDescription(), info
+ .getAttributes(), info.getConstructors(), MBeanInfoHelper
+ .getMBeanOperationsInfo(JMSQueueControlMBean.class), info
+ .getNotifications());
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
Modified: branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java
===================================================================
--- branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java 2008-07-21 23:45:02 UTC (rev 4704)
+++ branches/Branch_JBMESSAGING-1303/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java 2008-07-22 09:37:56 UTC (rev 4705)
@@ -35,11 +35,15 @@
import org.jboss.messaging.core.management.Operation;
import org.jboss.messaging.core.management.Parameter;
import org.jboss.messaging.core.management.impl.MBeanInfoHelper;
+import org.jboss.messaging.core.server.MessageReference;
import org.jboss.messaging.core.server.Queue;
+import org.jboss.messaging.core.server.ServerMessage;
import org.jboss.messaging.jms.JBossTopic;
+import org.jboss.messaging.jms.server.management.JMSMessageInfo;
import org.jboss.messaging.jms.server.management.SubscriberInfo;
import org.jboss.messaging.jms.server.management.TopicControlMBean;
import org.jboss.messaging.util.Pair;
+import org.jboss.messaging.util.SimpleString;
/**
* @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
@@ -61,8 +65,8 @@
// Constructors --------------------------------------------------
- public TopicControl(JBossTopic topic, MessagingServerManagement server, String jndiBinding)
- throws NotCompliantMBeanException
+ public TopicControl(JBossTopic topic, MessagingServerManagement server,
+ String jndiBinding) throws NotCompliantMBeanException
{
super(TopicControlMBean.class);
this.managedTopic = topic;
@@ -172,6 +176,23 @@
return listSubscribersInfos(DurabilityType.NON_DURABLE);
}
+ public TabularData listMessagesForSubscriber(String subscriberID)
+ throws Exception
+ {
+ Queue queue = server.getQueue(new SimpleString(subscriberID));
+ List<MessageReference> messageRefs = queue.list(null);
+ List<JMSMessageInfo> infos = new ArrayList<JMSMessageInfo>(messageRefs
+ .size());
+
+ for (MessageReference messageRef : messageRefs)
+ {
+ ServerMessage message = messageRef.getMessage();
+ JMSMessageInfo info = JMSMessageInfo.fromServerMessage(message);
+ infos.add(info);
+ }
+ return JMSMessageInfo.toTabularData(infos);
+ }
+
public void removeAllMessages() throws Exception
{
server.removeAllMessagesForAddress(managedTopic.getSimpleAddress());
More information about the jboss-cvs-commits
mailing list