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 bt...@apache.org on 2016/09/02 06:23:28 UTC

[03/11] james-project git commit: MAILET-121 SenderIsTest should match our coding conventions

MAILET-121 SenderIsTest should match our coding conventions


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

Branch: refs/heads/master
Commit: 5eb9b61d28e55200ab643a09d8f6dc4237f1b921
Parents: 260b5ec
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Aug 31 15:12:18 2016 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Fri Sep 2 13:22:32 2016 +0700

----------------------------------------------------------------------
 .../james/transport/matchers/SenderIs.java      | 47 ++++++++++++++------
 1 file changed, 34 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/5eb9b61d/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderIs.java
----------------------------------------------------------------------
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderIs.java b/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderIs.java
index 3438689..60cb5ea 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderIs.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/matchers/SenderIs.java
@@ -17,30 +17,51 @@
  * under the License.                                           *
  ****************************************************************/
 
+package org.apache.james.transport.matchers;
 
+import java.util.Collection;
+import java.util.Set;
 
-package org.apache.james.transport.matchers;
+import javax.mail.MessagingException;
+import javax.mail.internet.AddressException;
 
-import org.apache.mailet.base.GenericMatcher;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
+import org.apache.mailet.base.GenericMatcher;
 
-import java.util.Collection;
-import java.util.StringTokenizer;
+import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Function;
+import com.google.common.base.Splitter;
+import com.google.common.base.Strings;
+import com.google.common.base.Throwables;
+import com.google.common.collect.FluentIterable;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
 
-/**
- * Matches mail where the sender is contained in a configurable list.
- * @version 1.0.0, 24/04/1999
- */
 public class SenderIs extends GenericMatcher {
 
-    private Collection<MailAddress> senders;
+    private Set<MailAddress> senders;
+
+    @VisibleForTesting
+    Set<MailAddress> getSenders() {
+        return senders;
+    }
 
     public void init() throws javax.mail.MessagingException {
-        StringTokenizer st = new StringTokenizer(getCondition(), ", \t", false);
-        senders = new java.util.HashSet<MailAddress>();
-        while (st.hasMoreTokens()) {
-            senders.add(new MailAddress(st.nextToken()));
+        if (Strings.isNullOrEmpty(getCondition())) {
+            throw new MessagingException("SenderIs should have at least one address as parameter");
+        }
+        senders = FluentIterable.from(Splitter.on(", ").split(getCondition())).transform(new Function<String, MailAddress>() {
+            public MailAddress apply(String s) {
+                try {
+                    return new MailAddress(s);
+                } catch (AddressException e) {
+                    throw Throwables.propagate(e);
+                }
+            }
+        }).toSet();
+        if (senders.size() < 1) {
+            throw new MessagingException("SenderIs should have at least one address as parameter");
         }
     }
 


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