summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/systests/src/main/java/org/apache/qpid/test/VMTestCase.java35
1 files changed, 35 insertions, 0 deletions
diff --git a/java/systests/src/main/java/org/apache/qpid/test/VMTestCase.java b/java/systests/src/main/java/org/apache/qpid/test/VMTestCase.java
index 624d9c9f3d..b6646ba0e4 100644
--- a/java/systests/src/main/java/org/apache/qpid/test/VMTestCase.java
+++ b/java/systests/src/main/java/org/apache/qpid/test/VMTestCase.java
@@ -26,10 +26,19 @@ import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.jndi.PropertiesFileInitialContextFactory;
import org.apache.qpid.server.registry.ApplicationRegistry;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.Session;
import javax.naming.Context;
+import javax.naming.NamingException;
import javax.naming.spi.InitialContextFactory;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Hashtable;
+import java.util.Iterator;
import java.util.Map;
public class VMTestCase extends TestCase
@@ -104,12 +113,38 @@ public class VMTestCase extends TestCase
protected void tearDown() throws Exception
{
+ purgeQueues();
+
TransportConnection.killVMBroker(1);
ApplicationRegistry.remove(1);
super.tearDown();
}
+ private void purgeQueues() throws NamingException, JMSException
+ {
+ Connection connection = ((ConnectionFactory) _context.lookup("connection")).createConnection();
+
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ Iterator<String> queueNames = new HashSet<String>(_queues.values()).iterator();
+
+
+ //todo this could be replaced with an AMQP purge queue command.
+ while (queueNames.hasNext())
+ {
+ MessageConsumer consumer = session.createConsumer(session.createQueue(queueNames.next()));
+
+ Message message = consumer.receive(RECEIVE_TIMEOUT);
+
+ while (message != null)
+ {
+ message = consumer.receive(RECEIVE_TIMEOUT);
+ }
+
+ }
+ }
+
public int getMessageCount(String queueName)
{
return ApplicationRegistry.getInstance().getVirtualHostRegistry().getVirtualHost(_virtualhost.substring(1))