[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