diff options
-rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java | 17 | ||||
-rw-r--r-- | java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java | 16 |
2 files changed, 33 insertions, 0 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java b/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java index f12430e4f0..e450a2060e 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java +++ b/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/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java b/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java index aeb98fef42..9046d7fcb7 100644 --- a/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java +++ b/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; } |