MAILET-115 getReplyTo with original mail returns an Optional
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f2671b82 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f2671b82 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f2671b82 Branch: refs/heads/master Commit: f2671b82edbf6e1ead1f87b65e415d1d89ff1f93 Parents: 3f90dc1 Author: Antoine Duprat <[email protected]> Authored: Tue Nov 22 14:44:44 2016 +0100 Committer: Benoit Tellier <[email protected]> Committed: Wed Jan 11 10:03:31 2017 +0700 ---------------------------------------------------------------------- .../org/apache/james/transport/mailets/Bounce.java | 2 +- .../apache/james/transport/mailets/DSNBounce.java | 2 +- .../org/apache/james/transport/mailets/Forward.java | 2 +- .../james/transport/mailets/NotifyPostmaster.java | 2 +- .../james/transport/mailets/NotifySender.java | 2 +- .../apache/james/transport/mailets/Redirect.java | 2 +- .../org/apache/james/transport/mailets/Resend.java | 2 +- .../transport/mailets/redirect/MailModifier.java | 5 +++-- .../transport/mailets/redirect/RedirectNotify.java | 4 ++-- .../apache/james/transport/util/ReplyToUtils.java | 10 ++++++---- .../james/transport/util/ReplyToUtilsTest.java | 16 +++++++++------- 11 files changed, 27 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java index ef2dbb4..8cd05c1 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java @@ -201,7 +201,7 @@ public class Bounce extends GenericMailet implements RedirectNotify { } @Override - public MailAddress getReplyTo(Mail originalMail) throws MessagingException { + public Optional<MailAddress> getReplyTo(Mail originalMail) throws MessagingException { return ReplyToUtils.from(getReplyTo()).getReplyTo(originalMail); } http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java index 69b425c..a293f38 100755 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/DSNBounce.java @@ -189,7 +189,7 @@ public class DSNBounce extends GenericMailet implements RedirectNotify { } @Override - public MailAddress getReplyTo(Mail originalMail) throws MessagingException { + public Optional<MailAddress> getReplyTo(Mail originalMail) throws MessagingException { return ReplyToUtils.from(getReplyTo()).getReplyTo(originalMail); } http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java index 90c426f..8b495cc 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java @@ -206,7 +206,7 @@ public class Forward extends GenericMailet implements RedirectNotify { } @Override - public MailAddress getReplyTo(Mail originalMail) throws MessagingException { + public Optional<MailAddress> getReplyTo(Mail originalMail) throws MessagingException { return ReplyToUtils.from(getReplyTo()).getReplyTo(originalMail); } http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java index bbb02b8..e79a63e 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java @@ -217,7 +217,7 @@ public class NotifyPostmaster extends GenericMailet implements RedirectNotify { } @Override - public MailAddress getReplyTo(Mail originalMail) throws MessagingException { + public Optional<MailAddress> getReplyTo(Mail originalMail) throws MessagingException { return ReplyToUtils.from(getReplyTo()).getReplyTo(originalMail); } http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java index defb204..bb17a82 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java @@ -217,7 +217,7 @@ public class NotifySender extends GenericMailet implements RedirectNotify { } @Override - public MailAddress getReplyTo(Mail originalMail) throws MessagingException { + public Optional<MailAddress> getReplyTo(Mail originalMail) throws MessagingException { return ReplyToUtils.from(getReplyTo()).getReplyTo(originalMail); } http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java index cc252c6..21a2be8 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java @@ -423,7 +423,7 @@ public class Redirect extends GenericMailet implements RedirectNotify { } @Override - public MailAddress getReplyTo(Mail originalMail) throws MessagingException { + public Optional<MailAddress> getReplyTo(Mail originalMail) throws MessagingException { return ReplyToUtils.from(getReplyTo()).getReplyTo(originalMail); } http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java index ece3541..d62a4a6 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java @@ -377,7 +377,7 @@ public class Resend extends GenericMailet implements RedirectNotify { } @Override - public MailAddress getReplyTo(Mail originalMail) throws MessagingException { + public Optional<MailAddress> getReplyTo(Mail originalMail) throws MessagingException { return ReplyToUtils.from(getReplyTo()).getReplyTo(originalMail); } http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java index 010cdce..990cd55 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/MailModifier.java @@ -135,8 +135,9 @@ public class MailModifier { * If the requested value is <code>SpecialAddress.NULL</code> will remove * the "Reply-To:" header. If the requested value is null does nothing.</p> */ - public void setReplyTo(MailAddress replyTo, Mail originalMail) throws MessagingException { - if (replyTo != null) { + public void setReplyTo(Optional<MailAddress> optionalReplyTo, Mail originalMail) throws MessagingException { + if (optionalReplyTo.isPresent()) { + MailAddress replyTo = optionalReplyTo.get(); if (replyTo.equals(SpecialAddress.NULL)) { mail.getMessage().setReplyTo(null); if (mailet.getInitParameters().isDebug()) { http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java index b354c20..028bdf0 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/RedirectNotify.java @@ -219,11 +219,11 @@ public interface RedirectNotify extends Mailet, MailetConfig { * Gets the <code>replyTo</code> property, built dynamically using the * original Mail object. Is a "getX(Mail)" method. * - * @return {@link #getReplyTo()} replacing + * @return Optional of {@link #getReplyTo()} replacing * <code>SpecialAddress.UNALTERED</code> if applicable with null and * <code>SpecialAddress.SENDER</code> with the original mail sender */ - MailAddress getReplyTo(Mail originalMail) throws MessagingException; + Optional<MailAddress> getReplyTo(Mail originalMail) throws MessagingException; /** * Gets the <code>reversePath</code> property. Returns the reverse-path of http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java index d06269d..0704192 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/ReplyToUtils.java @@ -24,6 +24,8 @@ import org.apache.james.transport.mailets.redirect.SpecialAddress; import org.apache.mailet.Mail; import org.apache.mailet.MailAddress; +import com.google.common.base.Optional; + public class ReplyToUtils { public static ReplyToUtils from(MailAddress replyTo) { @@ -36,13 +38,13 @@ public class ReplyToUtils { this.replyTo = replyTo; } - public MailAddress getReplyTo(Mail originalMail) throws MessagingException { + public Optional<MailAddress> getReplyTo(Mail originalMail) throws MessagingException { if (replyTo != null) { if (replyTo.equals(SpecialAddress.UNALTERED)) { - return null; + return Optional.absent(); } - return originalMail.getSender(); + return Optional.fromNullable(originalMail.getSender()); } - return null; + return Optional.absent(); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/f2671b82/server/mailet/mailets/src/test/java/org/apache/james/transport/util/ReplyToUtilsTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/ReplyToUtilsTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/ReplyToUtilsTest.java index 9bfa637..74c5440 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/util/ReplyToUtilsTest.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/util/ReplyToUtilsTest.java @@ -18,13 +18,15 @@ ****************************************************************/ package org.apache.james.transport.util; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.guava.api.Assertions.assertThat; import org.apache.james.transport.mailets.redirect.SpecialAddress; import org.apache.mailet.MailAddress; import org.apache.mailet.base.test.FakeMail; import org.junit.Test; +import com.google.common.base.Optional; + public class ReplyToUtilsTest { @Test @@ -33,9 +35,9 @@ public class ReplyToUtilsTest { FakeMail fakeMail = FakeMail.defaultFakeMail(); - MailAddress replyTo = testee.getReplyTo(fakeMail); + Optional<MailAddress> replyTo = testee.getReplyTo(fakeMail); - assertThat(replyTo).isNull(); + assertThat(replyTo).isAbsent(); } @Test @@ -44,9 +46,9 @@ public class ReplyToUtilsTest { FakeMail fakeMail = FakeMail.defaultFakeMail(); - MailAddress replyTo = testee.getReplyTo(fakeMail); + Optional<MailAddress> replyTo = testee.getReplyTo(fakeMail); - assertThat(replyTo).isNull(); + assertThat(replyTo).isAbsent(); } @Test @@ -59,8 +61,8 @@ public class ReplyToUtilsTest { .sender(expectedMailAddress) .build(); - MailAddress replyTo = testee.getReplyTo(fakeMail); + Optional<MailAddress> replyTo = testee.getReplyTo(fakeMail); - assertThat(replyTo).isEqualTo(expectedMailAddress); + assertThat(replyTo).contains(expectedMailAddress); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
