[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