[hornetq-commits] JBoss hornetq SVN: r8119 - in trunk: src/main/org/hornetq/jms/server/management and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Oct 16 06:24:31 EDT 2009


Author: jmesnil
Date: 2009-10-16 06:24:31 -0400 (Fri, 16 Oct 2009)
New Revision: 8119

Modified:
   trunk/src/main/org/hornetq/core/management/QueueControl.java
   trunk/src/main/org/hornetq/jms/server/management/JMSQueueControl.java
   trunk/src/main/org/hornetq/jms/server/management/impl/JMSQueueControlImpl.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java
Log:
added missing methods to JMS Queue management API

Modified: trunk/src/main/org/hornetq/core/management/QueueControl.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/QueueControl.java	2009-10-16 10:23:47 UTC (rev 8118)
+++ trunk/src/main/org/hornetq/core/management/QueueControl.java	2009-10-16 10:24:31 UTC (rev 8119)
@@ -98,7 +98,8 @@
    @Operation(desc = "Send the message corresponding to the given messageID to this queue's Dead Letter Address", impact = ACTION)
    boolean sendMessageToDeadLetterAddress(@Parameter(name = "messageID", desc = "A message ID") long messageID) throws Exception;
 
-   int sendMessagesToDeadLetterAddress(String filterStr) throws Exception;
+   @Operation(desc = "Send the messages corresponding to the given filter to this queue's Dead Letter Address", impact = ACTION)
+   int sendMessagesToDeadLetterAddress(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filterStr) throws Exception;
 
    @Operation(desc = "Change the priority of the message corresponding to the given messageID", impact = ACTION)
    boolean changeMessagePriority(@Parameter(name = "messageID", desc = "A message ID") long messageID,

Modified: trunk/src/main/org/hornetq/jms/server/management/JMSQueueControl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/management/JMSQueueControl.java	2009-10-16 10:23:47 UTC (rev 8118)
+++ trunk/src/main/org/hornetq/jms/server/management/JMSQueueControl.java	2009-10-16 10:24:31 UTC (rev 8119)
@@ -81,10 +81,17 @@
    @Operation(desc = "Send the message corresponding to the given messageID to the queue's Dead Letter Queue", impact = ACTION)
    boolean sendMessageToDeadLetterAddress(@Parameter(name = "messageID", desc = "A message ID") String messageID) throws Exception;
 
+   @Operation(desc = "Send the messages corresponding to the given filter to this queue's Dead Letter Address", impact = ACTION)
+   int sendMessagesToDeadLetterAddress(@Parameter(name = "filter", desc = "A message filter (can be empty)") String filterStr) throws Exception;
+
    @Operation(desc = "Change the priority of the message corresponding to the given messageID", impact = ACTION)
    boolean changeMessagePriority(@Parameter(name = "messageID", desc = "A message ID") String messageID,
                                  @Parameter(name = "newPriority", desc = "the new priority (between 0 and 9)") int newPriority) throws Exception;
 
+   @Operation(desc = "Change the priority of the messages corresponding to the given filter", impact = ACTION)
+   int changeMessagesPriority(@Parameter(name = "filter", desc = "A message filter") String filter,
+                                 @Parameter(name = "newPriority", desc = "the new priority (between 0 and 9)") int newPriority) throws Exception;
+
    @Operation(desc = "Move the message corresponding to the given messageID to another queue", impact = ACTION)
    boolean moveMessage(@Parameter(name = "messageID", desc = "A message ID") String messageID,
                        @Parameter(name = "otherQueueName", desc = "The name of the queue to move the message to") String otherQueueName) throws Exception;
@@ -96,6 +103,9 @@
    @Operation(desc = "List the message counters", impact = INFO)
    String listMessageCounter() throws Exception;
 
+   @Operation(desc = "Reset the message counters", impact = INFO)
+   void resetMessageCounter() throws Exception;
+
    @Operation(desc = "List the message counters as HTML", impact = INFO)
    String listMessageCounterAsHTML() throws Exception;
 

Modified: trunk/src/main/org/hornetq/jms/server/management/impl/JMSQueueControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/management/impl/JMSQueueControlImpl.java	2009-10-16 10:23:47 UTC (rev 8118)
+++ trunk/src/main/org/hornetq/jms/server/management/impl/JMSQueueControlImpl.java	2009-10-16 10:24:31 UTC (rev 8119)
@@ -246,6 +246,12 @@
       }
       return true;
    }
+   
+   public int sendMessagesToDeadLetterAddress(String filterStr) throws Exception
+   {
+      String filter = createFilterFromJMSSelector(filterStr);
+      return coreQueueControl.sendMessagesToDeadLetterAddress(filter);
+   }
 
    public boolean changeMessagePriority(final String messageID, final int newPriority) throws Exception
    {
@@ -257,6 +263,12 @@
       }
       return true;
    }
+   
+   public int changeMessagesPriority(String filterStr, int newPriority) throws Exception
+   {
+      String filter = createFilterFromJMSSelector(filterStr);
+      return coreQueueControl.changeMessagesPriority(filter, newPriority);
+   }
 
    public boolean moveMessage(String messageID, String otherQueueName) throws Exception
    {
@@ -289,6 +301,11 @@
          throw new IllegalStateException(e);
       }
    }
+   
+   public void resetMessageCounter() throws Exception
+   {
+      coreQueueControl.resetMessageCounter();
+   }
 
    public String listMessageCounterAsHTML()
    {

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlTest.java	2009-10-16 10:23:47 UTC (rev 8118)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlTest.java	2009-10-16 10:24:31 UTC (rev 8119)
@@ -344,7 +344,46 @@
       {
       }
    }
+   
+   public void testChangeMessagesPriority() throws Exception
+   {
+      String key = "key";
+      long matchingValue = randomLong();
+      long unmatchingValue = matchingValue + 1;
+      String filter = "key = " + matchingValue;
+      int newPriority = 9;
 
+      Connection connection = JMSUtil.createConnection(InVMConnectorFactory.class.getName());
+      Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+      // send on queue
+      Message msg_1 = JMSUtil.sendMessageWithProperty(session, queue, key, matchingValue);
+      Message msg_2 = JMSUtil.sendMessageWithProperty(session, queue, key, unmatchingValue);
+
+      JMSQueueControl queueControl = createManagementControl();
+      assertEquals(2, queueControl.getMessageCount());
+
+      int changedMessagesCount = queueControl.changeMessagesPriority(filter, newPriority);
+      assertEquals(1, changedMessagesCount);
+      assertEquals(2, queueControl.getMessageCount());
+
+      connection.start();
+      MessageConsumer consumer = session.createConsumer(queue);
+      Message message = consumer.receive(500);
+      assertNotNull(message);
+      assertEquals(msg_1.getJMSMessageID(), message.getJMSMessageID());
+      assertEquals(9, message.getJMSPriority());
+      assertEquals(matchingValue, message.getLongProperty(key));
+
+      message = consumer.receive(500);
+      assertNotNull(message);
+      assertEquals(msg_2.getJMSMessageID(), message.getJMSMessageID());
+      assertEquals(unmatchingValue, message.getLongProperty(key));
+
+      assertNull(consumer.receive(500));
+
+      connection.close();
+   }
+
    public void testGetExpiryAddress() throws Exception
    {
       final SimpleString expiryAddress = randomSimpleString();
@@ -561,7 +600,53 @@
       }
 
    }
+   
+   public void testSendMessagesToDeadLetterAddress() throws Exception
+   {
+      String key = "key";
+      long matchingValue = randomLong();
+      long unmatchingValue = matchingValue + 1;
+      String filter = "key = " + matchingValue;
 
+      String deadLetterQueue = randomString();
+      serverManager.createQueue(deadLetterQueue, deadLetterQueue, null, true);
+      HornetQQueue dlq = new HornetQQueue(deadLetterQueue);
+
+      Connection conn = createConnection();
+      Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+      // send 2 messages on queue
+      JMSUtil.sendMessageWithProperty(sess, queue, key, matchingValue);
+      JMSUtil.sendMessageWithProperty(sess, queue, key, unmatchingValue);
+
+      JMSQueueControl queueControl = createManagementControl();
+      JMSQueueControl dlqControl = ManagementControlHelper.createJMSQueueControl(dlq, mbeanServer);
+
+      assertEquals(2, queueControl.getMessageCount());
+      assertEquals(0, dlqControl.getMessageCount());
+
+      queueControl.setDeadLetterAddress(dlq.getAddress());
+
+      int deadMessageCount = queueControl.sendMessagesToDeadLetterAddress(filter);
+      assertEquals(1, deadMessageCount);
+      assertEquals(1, queueControl.getMessageCount());
+      assertEquals(1, dlqControl.getMessageCount());
+
+      conn.start();
+      MessageConsumer consumer = sess.createConsumer(queue);
+
+      Message message = consumer.receive(500);
+      assertNotNull(message);
+      assertEquals(unmatchingValue, message.getLongProperty(key));
+
+      // check there is a single message to consume from deadletter queue
+      JMSUtil.consumeMessages(1, dlq);
+
+      conn.close();
+      
+      serverManager.destroyQueue(deadLetterQueue);
+   }
+
    public void testMoveMessages() throws Exception
    {
       String otherQueueName = randomString();

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java	2009-10-16 10:23:47 UTC (rev 8118)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java	2009-10-16 10:24:31 UTC (rev 8119)
@@ -90,6 +90,11 @@
          {
             return (Boolean)proxy.invokeOperation("changeMessagePriority", messageID, newPriority);
          }
+         
+         public int changeMessagesPriority(String filter, int newPriority) throws Exception
+         {
+            return (Integer)proxy.invokeOperation("changeMessagesPriority", filter, newPriority);
+         }
 
          public int countMessages(String filter) throws Exception
          {
@@ -160,6 +165,11 @@
          {
             return (String)proxy.invokeOperation("listMessageCounter");
          }
+         
+         public void resetMessageCounter() throws Exception
+         {
+            proxy.invokeOperation("resetMessageCounter");
+         }
 
          public String listMessageCounterAsHTML() throws Exception
          {
@@ -217,6 +227,11 @@
             return (Boolean)proxy.invokeOperation("sendMessageToDeadLetterAddress", messageID);
          }
 
+         public int sendMessagesToDeadLetterAddress(String filterStr) throws Exception
+         {
+            return (Integer)proxy.invokeOperation("sendMessagesToDeadLetterAddress", filterStr);
+         }
+         
          public void setDeadLetterAddress(String deadLetterAddress) throws Exception
          {
             proxy.invokeOperation("setDeadLetterAddress", deadLetterAddress);



More information about the hornetq-commits mailing list