[jboss-cvs] JBoss Messaging SVN: r4966 - in trunk/src/main/org/jboss/messaging/core: management/impl and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Sep 17 08:11:05 EDT 2008
Author: jmesnil
Date: 2008-09-17 08:11:04 -0400 (Wed, 17 Sep 2008)
New Revision: 4966
Modified:
trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
trunk/src/main/org/jboss/messaging/core/server/Queue.java
trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java
Log:
JBMESSAGING-1409: add a management operation to list scheduled messages for a given queue
* added method QueueControlMBean.listScheduledMessages()
* added method Queue.getScheduledMessages()
Modified: trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java 2008-09-17 11:18:49 UTC (rev 4965)
+++ trunk/src/main/org/jboss/messaging/core/management/QueueControlMBean.java 2008-09-17 12:11:04 UTC (rev 4966)
@@ -70,6 +70,9 @@
// Operations ----------------------------------------------------
+ @Operation(desc = "List the messages scheduled for delivery", impact = INFO)
+ public TabularData listScheduledMessages() throws Exception;
+
@Operation(desc = "List all the messages in the queue", impact = INFO)
TabularData listAllMessages() throws Exception;
Modified: trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java 2008-09-17 11:18:49 UTC (rev 4965)
+++ trunk/src/main/org/jboss/messaging/core/management/impl/QueueControl.java 2008-09-17 12:11:04 UTC (rev 4966)
@@ -175,6 +175,30 @@
return listMessages(null);
}
+ public TabularData listScheduledMessages() throws Exception
+ {
+ List<MessageReference> refs = queue.getScheduledMessages();
+ MessageInfo[] infos = new MessageInfo[refs.size()];
+ for (int i = 0; i < refs.size(); i++)
+ {
+ MessageReference ref = refs.get(i);
+ ServerMessage message = ref.getMessage();
+ MessageInfo info = new MessageInfo(message.getMessageID(), message
+ .getDestination().toString(), message.isDurable(), message
+ .getTimestamp(), message.getType(), message.getEncodeSize(),
+ message.getPriority(), message.isExpired(), message
+ .getExpiration());
+ for (SimpleString key : message.getPropertyNames())
+ {
+ Object value = message.getProperty(key);
+ String valueStr = value == null ? null : value.toString();
+ info.putProperty(key.toString(), valueStr);
+ }
+ infos[i] = info;
+ }
+ return MessageInfo.toTabularData(infos);
+ }
+
public TabularData listMessages(final String filterStr) throws Exception
{
try
Modified: trunk/src/main/org/jboss/messaging/core/server/Queue.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/Queue.java 2008-09-17 11:18:49 UTC (rev 4965)
+++ trunk/src/main/org/jboss/messaging/core/server/Queue.java 2008-09-17 12:11:04 UTC (rev 4966)
@@ -86,6 +86,8 @@
int getScheduledCount();
+ List<MessageReference> getScheduledMessages();
+
int getSizeBytes();
DistributionPolicy getDistributionPolicy();
@@ -140,4 +142,5 @@
boolean isBackup();
MessageReference removeFirst();
+
}
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java 2008-09-17 11:18:49 UTC (rev 4965)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/QueueImpl.java 2008-09-17 12:11:04 UTC (rev 4966)
@@ -418,6 +418,16 @@
return scheduledRunnables.size();
}
+ public synchronized List<MessageReference> getScheduledMessages()
+ {
+ List<MessageReference> refs = new ArrayList<MessageReference>();
+ for (ScheduledDeliveryRunnable runnable : scheduledRunnables)
+ {
+ refs.add(runnable.getReference());
+ }
+ return refs;
+ }
+
public int getDeliveringCount()
{
return deliveringCount.get();
More information about the jboss-cvs-commits
mailing list