JAMES-2557 RCPT SMTP hooks API should explicitly handle optional sender

Note that thanks to interface defaults, API compatibility is not broken


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

Branch: refs/heads/master
Commit: 585c1729536e900dff5fe82745199ab1a2713d85
Parents: 93be34c
Author: Benoit Tellier <btell...@linagora.com>
Authored: Tue Oct 30 10:59:08 2018 +0700
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Thu Nov 1 10:56:32 2018 +0700

----------------------------------------------------------------------
 .../james/protocols/smtp/hook/RcptHook.java       | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/585c1729/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java
----------------------------------------------------------------------
diff --git 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java
 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java
index 0c09663..49d0efa 100644
--- 
a/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java
+++ 
b/protocols/smtp/src/main/java/org/apache/james/protocols/smtp/hook/RcptHook.java
@@ -19,6 +19,7 @@
 package org.apache.james.protocols.smtp.hook;
 
 import org.apache.james.core.MailAddress;
+import org.apache.james.core.MaybeSender;
 import org.apache.james.protocols.smtp.SMTPSession;
 
 /**
@@ -28,12 +29,27 @@ public interface RcptHook extends Hook {
     
     /**
      * Return the HookResult after run the hook
+     *
+     * @deprecated Use {@link #doRcpt(SMTPSession, MaybeSender, MailAddress)} 
instead
      * 
      * @param session the SMTPSession
      * @param sender the sender MailAddress
      * @param rcpt the recipient MailAddress
      * @return HookResult
      */
-    HookResult doRcpt(SMTPSession session, MailAddress sender, MailAddress 
rcpt);
+    @Deprecated
+    default HookResult doRcpt(SMTPSession session, MailAddress sender, 
MailAddress rcpt) {
+        return doRcpt(session, MaybeSender.of(sender), rcpt);
+    }
+
+    /**
+     * Return the HookResult after run the hook
+     *
+     * this strongly typed version smoothly handle null sender and should be 
prefered.
+     */
+    @SuppressWarnings("deprecated")
+    default HookResult doRcpt(SMTPSession session, MaybeSender sender, 
MailAddress rcpt) {
+        return doRcpt(session, sender.asOptional().orElse(null), rcpt);
+    }
 
 }


---------------------------------------------------------------------
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