You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/12/25 21:09:11 UTC
svn commit: r1052800 - in /james/server/trunk:
queue-activemq/src/test/java/org/apache/james/queue/activemq/
queue-jms/src/test/java/org/apache/james/queue/jms/
Author: norman
Date: Sat Dec 25 20:09:10 2010
New Revision: 1052800
URL: http://svn.apache.org/viewvc?rev=1052800&view=rev
Log:
Move mail priority support test to JMSMailQueueTest as its not specific to AMQ API and should work with every worker that support handling of JMSPriority Property.
Modified:
james/server/trunk/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java
james/server/trunk/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
james/server/trunk/queue-jms/src/test/java/org/apache/james/queue/jms/JMSMailQueueTest.java
Modified: james/server/trunk/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java?rev=1052800&r1=1052799&r2=1052800&view=diff
==============================================================================
--- james/server/trunk/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java (original)
+++ james/server/trunk/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueBlobTest.java Sat Dec 25 20:09:10 2010
@@ -23,12 +23,8 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import javax.jms.ConnectionFactory;
-
import org.apache.activemq.ActiveMQConnectionFactory;
-import org.apache.commons.logging.impl.SimpleLog;
import org.apache.james.filesystem.api.FileSystem;
-import org.apache.james.queue.jms.JMSMailQueue;
public class ActiveMQMailQueueBlobTest extends ActiveMQMailQueueTest{
public final static String BASE_DIR = "file://target/james-test";
@@ -36,7 +32,7 @@ public class ActiveMQMailQueueBlobTest e
private MyFileSystem fs;
protected ActiveMQConnectionFactory createConnectionFactory() {
- ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost?create=false");
+ ActiveMQConnectionFactory factory = super.createConnectionFactory();
FileSystemBlobTransferPolicy policy = new FileSystemBlobTransferPolicy();
policy.setFileSystem(fs);
@@ -62,11 +58,8 @@ public class ActiveMQMailQueueBlobTest e
}
@Override
- protected JMSMailQueue createQueue(ConnectionFactory factory) {
- SimpleLog log = new SimpleLog("MockLog");
- log.setLevel(SimpleLog.LOG_LEVEL_DEBUG);
- ActiveMQMailQueue queue = new ActiveMQMailQueue(factory, "test", true,log);
- return queue;
+ protected boolean useBlobMessages() {
+ return true;
}
private final class MyFileSystem implements FileSystem {
Modified: james/server/trunk/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java?rev=1052800&r1=1052799&r2=1052800&view=diff
==============================================================================
--- james/server/trunk/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java (original)
+++ james/server/trunk/queue-activemq/src/test/java/org/apache/james/queue/activemq/ActiveMQMailQueueTest.java Sat Dec 25 20:09:10 2010
@@ -18,22 +18,14 @@
****************************************************************/
package org.apache.james.queue.activemq;
-import java.io.IOException;
-import java.util.Arrays;
-
import javax.jms.ConnectionFactory;
-import javax.mail.MessagingException;
import org.apache.activemq.broker.BrokerPlugin;
import org.apache.activemq.broker.BrokerService;
-import org.apache.activemq.broker.region.policy.PolicyEntry;
-import org.apache.activemq.broker.region.policy.PolicyMap;
import org.apache.activemq.plugin.StatisticsBrokerPlugin;
import org.apache.commons.logging.impl.SimpleLog;
-import org.apache.james.queue.api.MailQueue.MailQueueItem;
import org.apache.james.queue.jms.JMSMailQueue;
import org.apache.james.queue.jms.JMSMailQueueTest;
-import org.apache.mailet.Mail;
public class ActiveMQMailQueueTest extends JMSMailQueueTest{
@@ -44,62 +36,22 @@ public class ActiveMQMailQueueTest exten
// Enable statistics
broker.setPlugins(new BrokerPlugin[] {new StatisticsBrokerPlugin()});
broker.setEnableStatistics(true);
-
- // Enable priority support
- PolicyMap pMap = new PolicyMap();
- PolicyEntry entry = new PolicyEntry();
- entry.setPrioritizedMessages(true);
- entry.setQueue("test");
- pMap.setPolicyEntries(Arrays.asList(entry));
- broker.setDestinationPolicy(pMap);
+
return broker;
}
@Override
- protected JMSMailQueue createQueue(ConnectionFactory factory) {
+ protected JMSMailQueue createQueue(ConnectionFactory factory, String queueName) {
SimpleLog log = new SimpleLog("MockLog");
log.setLevel(SimpleLog.LOG_LEVEL_DEBUG);
- ActiveMQMailQueue queue = new ActiveMQMailQueue(factory, "test", false,log);
+ ActiveMQMailQueue queue = new ActiveMQMailQueue(factory, queueName, useBlobMessages(),log);
return queue;
}
- public void testPrioritySupport() throws InterruptedException, MessagingException, IOException {
- // should be empty
- assertEquals(0, queue.getSize());
-
- Mail mail = createMail();
- Mail mail2 =createMail();
- mail2.setAttribute(ActiveMQMailQueue.MAIL_PRIORITY, ActiveMQMailQueue.HIGH_PRIORITY);
-
- queue.enQueue(mail);
- queue.enQueue(mail2);
-
- Thread.sleep(200);
-
- assertEquals(2, queue.getSize());
-
-
- // we should get mail2 first as it has a higher priority set
- assertEquals(2, queue.getSize());
- MailQueueItem item2 = queue.deQueue();
- checkMail(mail2, item2.getMail());
- item2.done(true);
-
- Thread.sleep(200);
-
-
-
- assertEquals(1, queue.getSize());
- MailQueueItem item3 = queue.deQueue();
- checkMail(mail, item3.getMail());
- item3.done(true);
-
- Thread.sleep(200);
-
- // should be empty
- assertEquals(0, queue.getSize());
- }
-
+ protected boolean useBlobMessages() {
+ return false;
+ }
+
}
Modified: james/server/trunk/queue-jms/src/test/java/org/apache/james/queue/jms/JMSMailQueueTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/queue-jms/src/test/java/org/apache/james/queue/jms/JMSMailQueueTest.java?rev=1052800&r1=1052799&r2=1052800&view=diff
==============================================================================
--- james/server/trunk/queue-jms/src/test/java/org/apache/james/queue/jms/JMSMailQueueTest.java (original)
+++ james/server/trunk/queue-jms/src/test/java/org/apache/james/queue/jms/JMSMailQueueTest.java Sat Dec 25 20:09:10 2010
@@ -34,6 +34,8 @@ import javax.mail.internet.MimeMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.broker.BrokerService;
+import org.apache.activemq.broker.region.policy.PolicyEntry;
+import org.apache.activemq.broker.region.policy.PolicyMap;
import org.apache.commons.logging.impl.SimpleLog;
import org.apache.james.core.MailImpl;
import org.apache.james.queue.api.ManageableMailQueue;
@@ -46,13 +48,14 @@ import junit.framework.TestCase;
public class JMSMailQueueTest extends TestCase{
protected JMSMailQueue queue;
private BrokerService broker;
+ protected final static String QUEUE_NAME = "test";
public void setUp() throws Exception{
broker = createBroker();
broker.start();
ConnectionFactory connectionFactory = createConnectionFactory();
- queue = createQueue(connectionFactory);
+ queue = createQueue(connectionFactory, QUEUE_NAME);
super.setUp();
@@ -66,14 +69,24 @@ public class JMSMailQueueTest extends Te
broker.setPersistent(false);
broker.setUseJmx(false);
broker.addConnector("tcp://127.0.0.1:61616");
+
+
+ // Enable priority support
+ PolicyMap pMap = new PolicyMap();
+ PolicyEntry entry = new PolicyEntry();
+ entry.setPrioritizedMessages(true);
+ entry.setQueue(QUEUE_NAME);
+ pMap.setPolicyEntries(Arrays.asList(entry));
+ broker.setDestinationPolicy(pMap);
+
return broker;
}
- protected JMSMailQueue createQueue(ConnectionFactory factory) {
+ protected JMSMailQueue createQueue(ConnectionFactory factory, String queueName) {
SimpleLog log = new SimpleLog("MockLog");
log.setLevel(SimpleLog.LOG_LEVEL_DEBUG);
- JMSMailQueue queue = new JMSMailQueue(factory, "testqueue", log );
+ JMSMailQueue queue = new JMSMailQueue(factory, queueName, log );
return queue;
}
@@ -338,4 +351,43 @@ public class JMSMailQueueTest extends Te
}
+
+ public void testPrioritySupport() throws InterruptedException, MessagingException, IOException {
+ // should be empty
+ assertEquals(0, queue.getSize());
+
+ Mail mail = createMail();
+ Mail mail2 =createMail();
+ mail2.setAttribute(JMSMailQueue.MAIL_PRIORITY, JMSMailQueue.HIGH_PRIORITY);
+
+ queue.enQueue(mail);
+ queue.enQueue(mail2);
+
+ Thread.sleep(200);
+
+ assertEquals(2, queue.getSize());
+
+
+ // we should get mail2 first as it has a higher priority set
+ assertEquals(2, queue.getSize());
+ MailQueueItem item2 = queue.deQueue();
+ checkMail(mail2, item2.getMail());
+ item2.done(true);
+
+ Thread.sleep(200);
+
+
+
+ assertEquals(1, queue.getSize());
+ MailQueueItem item3 = queue.deQueue();
+ checkMail(mail, item3.getMail());
+ item3.done(true);
+
+ Thread.sleep(200);
+
+ // should be empty
+ assertEquals(0, queue.getSize());
+ }
+
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org