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 ro...@apache.org on 2016/11/23 13:50:35 UTC

[32/46] james-project git commit: JAMES-1854 Mailets should not have to handle ghosted mails

JAMES-1854 Mailets should not have to handle ghosted mails


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/dfb09fec
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/dfb09fec
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/dfb09fec

Branch: refs/heads/master
Commit: dfb09fec4dbd75c29143d60511498ce7f90f2b0f
Parents: 55582f5
Author: Benoit Tellier <bt...@linagora.com>
Authored: Fri Nov 18 12:48:10 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Nov 23 18:19:25 2016 +0700

----------------------------------------------------------------------
 .../james/transport/mailets/LocalDelivery.java  |  6 ++----
 .../transport/mailets/SieveLocalDelivery.java   |  6 ++----
 .../mailets/SieveToRecipientFolder.java         |  6 ++----
 .../transport/mailets/ToRecipientFolder.java    |  6 ++----
 .../mailets/delivery/MailDispatcher.java        | 20 ++++++++++++++------
 .../mailets/delivery/MailDispatcherTest.java    | 14 +++++++-------
 6 files changed, 29 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/dfb09fec/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
index 74c664c..71dd0f5 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/LocalDelivery.java
@@ -63,9 +63,7 @@ public class LocalDelivery extends GenericMailet {
 
     public void service(Mail mail) throws MessagingException {
         recipientRewriteTable.service(mail);
-        if (!mail.getState().equals(Mail.GHOST)) {
-            mailDispatcher.dispatch(mail);
-        }
+        mailDispatcher.dispatch(mail);
     }
 
     public String getMailetInfo() {
@@ -82,7 +80,7 @@ public class LocalDelivery extends GenericMailet {
             .build();
 
         mailDispatcher = MailDispatcher.builder()
-            .mailStorer(SimpleMailStore.builder()
+            .mailStore(SimpleMailStore.builder()
                 .mailboxAppender(new MailboxAppender(mailboxManager, getMailetContext().getLogger()))
                 .usersRepository(usersRepository)
                 .folder(MailboxConstants.INBOX)

http://git-wip-us.apache.org/repos/asf/james-project/blob/dfb09fec/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java
index 835da00..99154bc 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveLocalDelivery.java
@@ -66,9 +66,7 @@ public class SieveLocalDelivery extends GenericMailet {
 
     public void service(Mail mail) throws MessagingException {
         recipientRewriteTable.service(mail);
-        if (!mail.getState().equals(Mail.GHOST)) {
-            mailDispatcher.dispatch(mail);
-        }
+        mailDispatcher.dispatch(mail);
     }
 
     public String getMailetInfo() {
@@ -85,7 +83,7 @@ public class SieveLocalDelivery extends GenericMailet {
             .build();
 
         mailDispatcher = MailDispatcher.builder()
-            .mailStorer(SieveMailStore.builder()
+            .mailStore(SieveMailStore.builder()
                 .sievePoster(new SievePoster(
                     new MailboxAppender(mailboxManager, getMailetContext().getLogger()),
                     MailboxConstants.INBOX,

http://git-wip-us.apache.org/repos/asf/james-project/blob/dfb09fec/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java
index 0ce02ef..ca66055 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/SieveToRecipientFolder.java
@@ -71,9 +71,7 @@ public class SieveToRecipientFolder extends GenericMailet {
 
     @Override
     public void service(Mail mail) throws MessagingException {
-        if (!mail.getState().equals(Mail.GHOST)) {
-            mailDispatcher.dispatch(mail);
-        }
+        mailDispatcher.dispatch(mail);
     }
 
     @Override
@@ -85,7 +83,7 @@ public class SieveToRecipientFolder extends GenericMailet {
             .build();
         String folder = getInitParameter(FOLDER_PARAMETER, MailboxConstants.INBOX);
         mailDispatcher = MailDispatcher.builder()
-            .mailStorer(SieveMailStore.builder()
+            .mailStore(SieveMailStore.builder()
                 .sievePoster(new SievePoster(new MailboxAppender(mailboxManager, getMailetContext().getLogger()), folder, usersRepository))
                 .usersRepository(usersRepository)
                 .resourceLocator(ResourceLocatorImpl.instanciate(usersRepository, sieveRepository))

http://git-wip-us.apache.org/repos/asf/james-project/blob/dfb09fec/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
index 4644641..9cebeb1 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/ToRecipientFolder.java
@@ -66,9 +66,7 @@ public class ToRecipientFolder extends GenericMailet {
 
     @Override
     public void service(Mail mail) throws MessagingException {
-        if (!mail.getState().equals(Mail.GHOST)) {
-            mailDispatcher.dispatch(mail);
-        }
+        mailDispatcher.dispatch(mail);
     }
 
     @Override
@@ -79,7 +77,7 @@ public class ToRecipientFolder extends GenericMailet {
             .verbose(getInitParameter("verbose", false))
             .build();
         mailDispatcher = MailDispatcher.builder()
-            .mailStorer(SimpleMailStore.builder()
+            .mailStore(SimpleMailStore.builder()
                 .mailboxAppender(new MailboxAppender(mailboxManager, getMailetContext().getLogger()))
                 .usersRepository(usersRepository)
                 .folder(getInitParameter(FOLDER_PARAMETER, MailboxConstants.INBOX))

http://git-wip-us.apache.org/repos/asf/james-project/blob/dfb09fec/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
index 43ef1a0..21c2b2d 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/MailDispatcher.java
@@ -45,7 +45,7 @@ public class MailDispatcher {
     }
 
     public static class Builder {
-        public static final boolean CONSUME_DEFAULT_VALUE = true;
+        public static final boolean CONSUME = true;
         private MailStore mailStore;
         private Optional<Boolean> consume = Optional.absent();
         private MailetContext mailetContext;
@@ -56,7 +56,7 @@ public class MailDispatcher {
             return this;
         }
 
-        public Builder mailStorer(MailStore mailStore) {
+        public Builder mailStore(MailStore mailStore) {
             this.mailStore = mailStore;
             return this;
         }
@@ -75,7 +75,7 @@ public class MailDispatcher {
             Preconditions.checkNotNull(mailStore);
             Preconditions.checkNotNull(log);
             Preconditions.checkNotNull(mailetContext);
-            return new MailDispatcher(mailStore, consume.or(CONSUME_DEFAULT_VALUE), log, mailetContext);
+            return new MailDispatcher(mailStore, consume.or(CONSUME), log, mailetContext);
         }
 
     }
@@ -116,15 +116,23 @@ public class MailDispatcher {
         // This only works because there is a placeholder inserted by MimeMessageWrapper
         message.setHeader(RFC2822Headers.RETURN_PATH, DeliveryUtils.prettyPrint(mail.getSender()));
 
+        List<String> deliveredToHeader = removeDeliveryHeaders(message);
+        Collection<MailAddress> errors = deliver(mail, message);
+        putDeliveryHeadersBack(message, deliveredToHeader);
+
+        return errors;
+    }
+
+    private List<String> removeDeliveryHeaders(MimeMessage message) throws MessagingException {
         List<String> deliveredToHeader = Arrays.asList(Optional.fromNullable(message.getHeader(DELIVERED_TO)).or(NO_HEADERS));
         message.removeHeader(DELIVERED_TO);
+        return deliveredToHeader;
+    }
 
-        Collection<MailAddress> errors = deliver(mail, message);
-
+    private void putDeliveryHeadersBack(MimeMessage message, List<String> deliveredToHeader) throws MessagingException {
         for (String deliveredTo : deliveredToHeader) {
             message.addHeader(DELIVERED_TO, deliveredTo);
         }
-        return errors;
     }
 
     private Collection<MailAddress> deliver(Mail mail, MimeMessage message) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/dfb09fec/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java
index 3c8de2b..20f4eb0 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/MailDispatcherTest.java
@@ -69,7 +69,7 @@ public class MailDispatcherTest {
         MailDispatcher testee = MailDispatcher.builder()
             .log(mock(Log.class))
             .mailetContext(fakeMailContext)
-            .mailStorer(mailStore)
+            .mailStore(mailStore)
             .consume(true)
             .build();
 
@@ -91,7 +91,7 @@ public class MailDispatcherTest {
         MailDispatcher testee = MailDispatcher.builder()
             .log(mock(Log.class))
             .mailetContext(fakeMailContext)
-            .mailStorer(mailStore)
+            .mailStore(mailStore)
             .consume(true)
             .build();
 
@@ -110,7 +110,7 @@ public class MailDispatcherTest {
         MailDispatcher testee = MailDispatcher.builder()
             .log(mock(Log.class))
             .mailetContext(fakeMailContext)
-            .mailStorer(mailStore)
+            .mailStore(mailStore)
             .consume(false)
             .build();
 
@@ -130,7 +130,7 @@ public class MailDispatcherTest {
         MailDispatcher testee = MailDispatcher.builder()
             .log(mock(Log.class))
             .mailetContext(fakeMailContext)
-            .mailStorer(mailStore)
+            .mailStore(mailStore)
             .consume(true)
             .build();
         doThrow(new MessagingException())
@@ -173,7 +173,7 @@ public class MailDispatcherTest {
         MailDispatcher testee = MailDispatcher.builder()
             .log(mock(Log.class))
             .mailetContext(fakeMailContext)
-            .mailStorer(mailStore)
+            .mailStore(mailStore)
             .consume(false)
             .build();
 
@@ -197,7 +197,7 @@ public class MailDispatcherTest {
         MailDispatcher testee = MailDispatcher.builder()
             .log(mock(Log.class))
             .mailetContext(fakeMailContext)
-            .mailStorer(mailStore)
+            .mailStore(mailStore)
             .consume(false)
             .build();
 
@@ -223,7 +223,7 @@ public class MailDispatcherTest {
         MailDispatcher testee = MailDispatcher.builder()
             .log(mock(Log.class))
             .mailetContext(fakeMailContext)
-            .mailStorer(accumulator)
+            .mailStore(accumulator)
             .consume(false)
             .build();
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org