summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2009-07-21 09:13:06 +0000
committerRobert Gemmell <robbie@apache.org>2009-07-21 09:13:06 +0000
commite09f7acc4739e03e79bd9e04f1330787251a1531 (patch)
treef731c470a43a8a4eecc033e907ac702ce5eb4165
parentf74099c4e879616196245567c48ff85abba0aeae (diff)
downloadqpid-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
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueMBean.java17
-rw-r--r--qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedQueue.java16
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;
}