Author: ritchiem
Date: Tue Jul 17 01:35:35 2007
New Revision: 556847
URL: http://svn.apache.org/viewvc?view=rev&rev=556847
Log:
Update to the MessageStore Tool to provide Move and Purge functionality.
Updated to remove the AMQExceptions that will be removed from the Exchange
class.
Added:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Move.java
(contents, props changed)
- copied, changed from r553480,
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Copy.java
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Purge.java
(with props)
Modified:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Copy.java
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/List.java
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Select.java
Modified:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Copy.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Copy.java?view=diff&rev=556847&r1=556846&r2=556847
==============================================================================
---
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Copy.java
(original)
+++
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Copy.java
Tue Jul 17 01:35:35 2007
@@ -20,20 +20,12 @@
*/
package org.apache.qpid.tools.messagestore.commands;
-import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.store.StoreContext;
import org.apache.qpid.tools.messagestore.MessageStoreTool;
-public class Copy extends AbstractCommand
+public class Copy extends Move
{
-
- /**
- * Since the Coopy command is not associated with a real channel we can
safely create our own store context
- * for use in the few methods that require one.
- */
- private StoreContext _storeContext = new StoreContext();
-
public Copy(MessageStoreTool tool)
{
super(tool);
@@ -56,94 +48,9 @@
return "copy";
}
- public void execute(String... args)
+ protected void doCommand(AMQQueue fromQueue, long start, long end,
AMQQueue toQueue, StoreContext storeContext)
{
- AMQQueue toQueue = null;
- AMQQueue fromQueue = _tool.getState().getQueue();
- java.util.List<Long> msgids = _tool.getState().getMessages();
-
- if (args.length >= 2)
- {
- for (String arg : args)
- {
- if (arg.startsWith("to="))
- {
- String queueName = arg.substring(arg.indexOf("=") + 1);
- toQueue =
_tool.getState().getVhost().getQueueRegistry().getQueue(new
AMQShortString(queueName));
- }
-
- if (arg.startsWith("from="))
- {
- String queueName = arg.substring(arg.indexOf("=") + 1);
- fromQueue =
_tool.getState().getVhost().getQueueRegistry().getQueue(new
AMQShortString(queueName));
- }
-
- if (arg.startsWith("msgids="))
- {
- String msgidStr = arg.substring(arg.indexOf("=") + 1);
-
- // Record the current message selection
- java.util.List<Long> currentIDs =
_tool.getState().getMessages();
-
- // Use the ToolState class to perform the messasge parsing
- _tool.getState().setMessages(msgidStr);
- msgids = _tool.getState().getMessages();
-
- // Reset the original selection of messages
- _tool.getState().setMessages(currentIDs);
- }
- }
- }
-
- if (toQueue == null)
- {
- _console.println("Queue to copy to not specifed.");
- _console.println(usage());
- return;
- }
-
- if (fromQueue == null)
- {
- _console.println("Queue to copy from not specifed.");
- _console.println(usage());
- return;
- }
-
- performCopy(fromQueue, toQueue, msgids);
+ fromQueue.copyMessagesToAnotherQueue(start, end,
toQueue.getName().toString(), storeContext);
}
- protected void performCopy(AMQQueue fromQueue, AMQQueue toQueue,
java.util.List<Long> msgids)
- {
- Long previous = null;
- Long start = null;
-
- for (long id : msgids)
- {
- if (previous != null)
- {
- if (id == previous + 1)
- {
- if (start == null)
- {
- start = previous;
- }
- }
- else
- {
- if (start != null)
- {
- //move a range of ids
- fromQueue.moveMessagesToAnotherQueue(start, id,
toQueue.getName().toString(), _storeContext);
- }
- else
- {
- //move a single id
- fromQueue.moveMessagesToAnotherQueue(id, id,
toQueue.getName().toString(), _storeContext);
- }
- }
- }
-
- previous = id;
- }
- }
}
Modified:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/List.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/List.java?view=diff&rev=556847&r1=556846&r2=556847
==============================================================================
---
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/List.java
(original)
+++
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/List.java
Tue Jul 17 01:35:35 2007
@@ -20,7 +20,6 @@
*/
package org.apache.qpid.tools.messagestore.commands;
-import org.apache.qpid.AMQException;
import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.server.exchange.Exchange;
import org.apache.qpid.server.queue.AMQQueue;
@@ -234,17 +233,9 @@
{
if (exchange != null)
{
- try
+ if (exchange.isBound(queue))
{
- if (exchange.isBound(queue))
- {
- data.add(queue.toString());
- }
- }
- catch (AMQException e)
- {
- // is never thrown by current impls forced to throw by
interface.
- commandError("Unable to check exchange bindings: " +
e.getMessage(), null);
+ data.add(queue.toString());
}
}
else
@@ -299,17 +290,9 @@
{
if (exchange != null)
{
- try
- {
- if (exchange.isBound(queue))
- {
- data.add(queue.getName().toString());
- }
- }
- catch (AMQException e)
+ if (exchange.isBound(queue))
{
- // is never thrown by current impls forced to throw by
interface.
- commandError("Unable to check exchange bindings: " +
e.getMessage(), null);
+ data.add(queue.getName().toString());
}
}
else
Copied:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Move.java
(from r553480,
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Copy.java)
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Move.java?view=diff&rev=556847&p1=incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Copy.java&r1=553480&p2=incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Move.java&r2=556847
==============================================================================
---
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Copy.java
(original)
+++
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Move.java
Tue Jul 17 01:35:35 2007
@@ -25,7 +25,9 @@
import org.apache.qpid.server.store.StoreContext;
import org.apache.qpid.tools.messagestore.MessageStoreTool;
-public class Copy extends AbstractCommand
+import java.util.List;
+
+public class Move extends AbstractCommand
{
/**
@@ -34,26 +36,26 @@
*/
private StoreContext _storeContext = new StoreContext();
- public Copy(MessageStoreTool tool)
+ public Move(MessageStoreTool tool)
{
super(tool);
}
public String help()
{
- return "Copy messages between queues.\n" +
- "The currently selected message set will be copied to the
specifed queue.\n" +
+ return "Move messages between queues.\n" +
+ "The currently selected message set will be moved to the
specifed queue.\n" +
"Alternatively the values can be provided on the command line.";
}
public String usage()
{
- return "copy to=<queue> [from=<queue>] [msgids=<msgids eg, 1,2,4-10>]";
+ return "move to=<queue> [from=<queue>] [msgids=<msgids eg, 1,2,4-10>]";
}
public String getCommand()
{
- return "copy";
+ return "move";
}
public void execute(String... args)
@@ -95,24 +97,15 @@
}
}
- if (toQueue == null)
+ if (!checkRequirements(fromQueue, toQueue, msgids))
{
- _console.println("Queue to copy to not specifed.");
- _console.println(usage());
return;
}
- if (fromQueue == null)
- {
- _console.println("Queue to copy from not specifed.");
- _console.println(usage());
- return;
- }
-
- performCopy(fromQueue, toQueue, msgids);
+ processIDs(fromQueue, toQueue, msgids);
}
- protected void performCopy(AMQQueue fromQueue, AMQQueue toQueue,
java.util.List<Long> msgids)
+ private void processIDs(AMQQueue fromQueue, AMQQueue toQueue,
java.util.List<Long> msgids)
{
Long previous = null;
Long start = null;
@@ -133,17 +126,41 @@
if (start != null)
{
//move a range of ids
- fromQueue.moveMessagesToAnotherQueue(start, id,
toQueue.getName().toString(), _storeContext);
+ doCommand(fromQueue, start, id, toQueue,
_storeContext);
}
else
{
//move a single id
- fromQueue.moveMessagesToAnotherQueue(id, id,
toQueue.getName().toString(), _storeContext);
+ doCommand(fromQueue, id, id, toQueue, _storeContext);
}
}
}
previous = id;
}
+ }
+
+ protected boolean checkRequirements(AMQQueue fromQueue, AMQQueue toQueue,
List<Long> msgids)
+ {
+ if (toQueue == null)
+ {
+ _console.println("Destination queue not specifed.");
+ _console.println(usage());
+ return false;
+ }
+
+ if (fromQueue == null)
+ {
+ _console.println("Source queue not specifed.");
+ _console.println(usage());
+ return false;
+ }
+
+ return true;
+ }
+
+ protected void doCommand(AMQQueue fromQueue, long start, long id, AMQQueue
toQueue, StoreContext storeContext)
+ {
+ fromQueue.moveMessagesToAnotherQueue(start, id,
toQueue.getName().toString(), _storeContext);
}
}
Propchange:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Move.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Move.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Purge.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Purge.java?view=auto&rev=556847
==============================================================================
---
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Purge.java
(added)
+++
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Purge.java
Tue Jul 17 01:35:35 2007
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *
+ */
+package org.apache.qpid.tools.messagestore.commands;
+
+import org.apache.qpid.server.queue.AMQQueue;
+import org.apache.qpid.server.store.StoreContext;
+import org.apache.qpid.tools.messagestore.MessageStoreTool;
+
+public class Purge extends Move
+{
+ public Purge(MessageStoreTool tool)
+ {
+ super(tool);
+ }
+
+ public String help()
+ {
+ return "Purge messages from a queue.\n" +
+ "The currently selected message set will be purged from the
specifed queue.\n" +
+ "Alternatively the values can be provided on the command line.";
+ }
+
+ public String usage()
+ {
+ return "purge from=<queue> [msgids=<msgids eg, 1,2,4-10>]";
+ }
+
+ public String getCommand()
+ {
+ return "purge";
+ }
+
+
+ protected boolean checkRequirements(AMQQueue fromQueue, AMQQueue toQueue,
java.util.List<Long> msgids)
+ {
+ if (fromQueue == null)
+ {
+ _console.println("Source queue not specifed.");
+ _console.println(usage());
+ return false;
+ }
+
+ return true;
+ }
+
+ protected void doCommand(AMQQueue fromQueue, long start, long end,
AMQQueue toQueue, StoreContext storeContext)
+ {
+ fromQueue.removeMessagesFromQueue(start, end, storeContext);
+ }
+}
Propchange:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Purge.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Purge.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Select.java
URL:
http://svn.apache.org/viewvc/incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Select.java?view=diff&rev=556847&r1=556846&r2=556847
==============================================================================
---
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Select.java
(original)
+++
incubator/qpid/branches/M2/java/broker/src/main/java/org/apache/qpid/tools/messagestore/commands/Select.java
Tue Jul 17 01:35:35 2007
@@ -20,7 +20,6 @@
*/
package org.apache.qpid.tools.messagestore.commands;
-import org.apache.qpid.AMQException;
import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.server.exchange.Exchange;
import org.apache.qpid.server.queue.AMQQueue;
@@ -132,16 +131,9 @@
if (_tool.getState().getQueue() != null)
{
- try
+ if (!exchange.isBound(_tool.getState().getQueue()))
{
- if (!exchange.isBound(_tool.getState().getQueue()))
- {
- _tool.getState().setQueue(null);
- }
- }
- catch (AMQException e)
- {
- //ignore
+ _tool.getState().setQueue(null);
}
}
}
@@ -170,18 +162,11 @@
{
for (AMQShortString exchangeName :
vhost.getExchangeRegistry().getExchangeNames())
{
- try
- {
- Exchange exchange =
vhost.getExchangeRegistry().getExchange(exchangeName);
- if (exchange.isBound(queue))
- {
- _tool.getState().setExchange(exchange);
- break;
- }
- }
- catch (AMQException e)
+ Exchange exchange =
vhost.getExchangeRegistry().getExchange(exchangeName);
+ if (exchange.isBound(queue))
{
- //ignore error
+ _tool.getState().setExchange(exchange);
+ break;
}
}
}