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