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]

Reply via email to