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: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org