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

Reply via email to