diff options
author | Robert Gemmell <robbie@apache.org> | 2009-07-21 09:13:06 +0000 |
---|---|---|
committer | Robert Gemmell <robbie@apache.org> | 2009-07-21 09:13:06 +0000 |
commit | e09f7acc4739e03e79bd9e04f1330787251a1531 (patch) | |
tree | f731c470a43a8a4eecc033e907ac702ce5eb4165 | |
parent | f74099c4e879616196245567c48ff85abba0aeae (diff) | |
download | qpid-python-e09f7acc4739e03e79bd9e04f1330787251a1531.tar.gz |
QPID-1981: Expose copyMessages() queue operation through the JMX MBean interface
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@796204 13f79535-47bb-0310-9956-ffa450edef68
2 files changed, 33 insertions, 0 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java index f12430e4f0..e450a2060e 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java @@ -501,6 +501,23 @@ public class AMQQueueMBean extends AMQManagedObject implements ManagedQueue, Que } /** + * @see ManagedQueue#copyMessages + * @param fromMessageId + * @param toMessageId + * @param toQueueName + * @throws JMException + */ + public void copyMessages(long fromMessageId, long toMessageId, String toQueueName) throws JMException + { + if ((fromMessageId > toMessageId) || (fromMessageId < 1)) + { + throw new OperationsException("\"From MessageId\" should be greater than 0 and less than \"To MessageId\""); + } + + _queue.copyMessagesToAnotherQueue(fromMessageId, toMessageId, toQueueName, _storeContext); + } + + /** * returns Notifications sent by this MBean. */ @Override diff --git a/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java b/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java index aeb98fef42..9046d7fcb7 100644 --- a/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java +++ b/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java @@ -298,4 +298,20 @@ public interface ManagedQueue void deleteMessages(@MBeanOperationParameter(name="from MessageId", description="from MessageId")long fromMessageId, @MBeanOperationParameter(name="to MessageId", description="to MessageId")long toMessageId) throws IOException, JMException; + + /** + * Copies the messages in given range of AMQ message Ids to a given Queue. + * @param fromMessageId first in the range of message ids + * @param toMessageId last in the range of message ids + * @param toQueue where the messages are to be copied + * @throws IOException + * @throws JMException + */ + @MBeanOperation(name="copyMessages", + description="Copies a range of messages to a specified queue", + impact= MBeanOperationInfo.ACTION) + void copyMessages(@MBeanOperationParameter(name="from MessageId", description="from MessageId")long fromMessageId, + @MBeanOperationParameter(name="to MessageId", description="to MessageId")long toMessageId, + @MBeanOperationParameter(name= ManagedQueue.TYPE, description="to Queue Name")String toQueue) + throws IOException, JMException; } |