You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2010/01/25 15:21:28 UTC

svn commit: r902816 - /activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/ExpiredMessagesTest.java

Author: dejanb
Date: Mon Jan 25 14:21:27 2010
New Revision: 902816

URL: http://svn.apache.org/viewvc?rev=902816&view=rev
Log:
making ExpiredMessagesTest pass on very slow machines

Modified:
    activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/ExpiredMessagesTest.java

Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/ExpiredMessagesTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/ExpiredMessagesTest.java?rev=902816&r1=902815&r2=902816&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/ExpiredMessagesTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/usecases/ExpiredMessagesTest.java Mon Jan 25 14:21:27 2010
@@ -16,6 +16,21 @@
  */
 package org.apache.activemq.usecases;
 
+import java.io.File;
+import java.util.concurrent.atomic.AtomicLong;
+
+import javax.jms.Connection;
+import javax.jms.DeliveryMode;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
+import javax.management.InstanceNotFoundException;
+import javax.management.ObjectName;
+
+import junit.framework.Test;
+
 import org.apache.activemq.ActiveMQConnectionFactory;
 import org.apache.activemq.CombinationTestSupport;
 import org.apache.activemq.broker.BrokerService;
@@ -29,17 +44,6 @@
 import org.apache.activemq.util.Wait;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import java.io.File;
-import java.util.concurrent.atomic.AtomicLong;
-import javax.jms.Connection;
-import javax.jms.DeliveryMode;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageProducer;
-import javax.jms.Session;
-import javax.management.InstanceNotFoundException;
-import javax.management.ObjectName;
-import junit.framework.Test;
 
 public class ExpiredMessagesTest extends CombinationTestSupport {
 
@@ -177,16 +181,30 @@
         assertEquals("memory usage is back to duck egg", 0, view.getMemoryPercentUsage());
         assertTrue("memory usage is increased ", 0 < dlqView.getMemoryPercentUsage());    
         
-        // verify DQL
+        // verify DLQ
         MessageConsumer dlqConsumer = createDlqConsumer(connection);
+        final DLQListener dlqListener = new DLQListener();
+        dlqConsumer.setMessageListener(dlqListener);
+        
+        Wait.waitFor(new Wait.Condition() {
+            public boolean isSatisified() throws Exception {
+                return totalExpiredCount == dlqListener.count;
+            }
+        }, 60 * 1000);
+        
+        assertEquals("dlq returned all expired", dlqListener.count, totalExpiredCount);
+	}
+
+    class DLQListener implements MessageListener {
+        
         int count = 0;
-        while (dlqConsumer.receive(4000) != null) {
+        
+        public void onMessage(Message message) {
             count++;
         }
-        assertEquals("dlq returned all expired", count, totalExpiredCount);
-	}
-
-	
+        
+    };
+    
 	private MessageConsumer createDlqConsumer(Connection connection) throws Exception {
 	    return connection.createSession(false, Session.AUTO_ACKNOWLEDGE).createConsumer(dlqDestination);
     }
@@ -272,7 +290,7 @@
 	    BrokerService broker = new BrokerService();
         broker.setBrokerName("localhost");
         AMQPersistenceAdapter adaptor = new AMQPersistenceAdapter();
-        adaptor.setDirectory(new File("data/"));
+        adaptor.setDirectory(new File("target/expiredtest-data/"));
         adaptor.setForceRecoverReferenceStore(true);
         broker.setPersistenceAdapter(adaptor);