Author: norman
Date: Sun Sep 11 17:14:56 2011
New Revision: 1169482
URL: http://svn.apache.org/viewvc?rev=1169482&view=rev
Log:
Allow to use higher priorities for new emails in RemoteDelivery. See JAMES-1311
Modified:
james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
Modified:
james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java?rev=1169482&r1=1169481&r2=1169482&view=diff
==============================================================================
---
james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
(original)
+++
james/server/trunk/mailets/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
Sun Sep 11 17:14:56 2011
@@ -25,6 +25,7 @@ import org.apache.james.dnsservice.libra
import org.apache.james.domainlist.api.DomainList;
import org.apache.james.domainlist.api.DomainListException;
import org.apache.james.lifecycle.api.LifecycleUtil;
+import org.apache.james.queue.api.MailPrioritySupport;
import org.apache.james.queue.api.MailQueue;
import org.apache.james.queue.api.MailQueueFactory;
import org.apache.james.queue.api.MailQueue.MailQueueException;
@@ -196,6 +197,8 @@ public class RemoteDelivery extends Gene
private MailetContextLog logAdapter;
+ private boolean usePriority;
+
@Resource(name = "mailqueuefactory")
public void setMailQueueFactory(MailQueueFactory queueFactory) {
this.queueFactory = queueFactory;
@@ -354,6 +357,7 @@ public class RemoteDelivery extends Gene
log("Invalid bind setting (" + bindAddress + "): " + e.toString());
}
+
// deal with <mail.*> attributes, passing them to javamail
Iterator<String> i = getInitParameterNames();
while (i.hasNext()) {
@@ -371,6 +375,11 @@ public class RemoteDelivery extends Gene
heloName = getInitParameter("heloName");
+ String prio = getInitParameter("usePriority");
+ if (prio != null) {
+ usePriority = Boolean.valueOf(prio);
+ }
+
// Start Workers Threads.
workersThreadCount =
Integer.parseInt(getInitParameter("deliveryThreads"));
initDeliveryThreads();
@@ -571,6 +580,11 @@ public class RemoteDelivery extends Gene
}
Collection<MailAddress> recipients = mail.getRecipients();
+ if (usePriority) {
+
+ // Use highest prio for new emails. See JAMES-1311
+ mail.setAttribute(MailPrioritySupport.MAIL_PRIORITY,
MailPrioritySupport.HIGH_PRIORITY);
+ }
if (gatewayServer == null) {
// Must first organize the recipients into distinct servers (name
// made case insensitive)
@@ -734,6 +748,11 @@ public class RemoteDelivery extends Gene
}
long delay = getNextDelay(retries);
+
+ if (usePriority) {
+ // Use lowest priority for retries. See
JAMES-1311
+
mail.setAttribute(MailPrioritySupport.MAIL_PRIORITY,
MailPrioritySupport.LOW_PRIORITY);
+ }
queue.enQueue(mail, delay, TimeUnit.MILLISECONDS);
LifecycleUtil.dispose(mail);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]