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 2017/01/11 09:26:30 UTC

[42/50] [abbrv] james-project git commit: MAILET-115 Introduce listToString in StringUtils

MAILET-115 Introduce listToString in StringUtils


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

Branch: refs/heads/master
Commit: a4094db00cf913aaa472c26a3c6e72738526242d
Parents: 7974e70
Author: Antoine Duprat <ad...@linagora.com>
Authored: Tue Jan 3 13:38:36 2017 +0100
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Jan 11 10:03:32 2017 +0700

----------------------------------------------------------------------
 .../org/apache/mailet/base/StringUtils.java     |  6 ++++
 .../org/apache/mailet/base/StringUtilsTest.java | 32 ++++++++++++++++++++
 .../mailets/redirect/AddressExtractor.java      | 12 +++-----
 3 files changed, 43 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a4094db0/mailet/base/src/main/java/org/apache/mailet/base/StringUtils.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/main/java/org/apache/mailet/base/StringUtils.java b/mailet/base/src/main/java/org/apache/mailet/base/StringUtils.java
index cc0d83e..9c50591 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/StringUtils.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/StringUtils.java
@@ -22,8 +22,10 @@ package org.apache.mailet.base;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
+import java.util.List;
 
 import com.google.common.base.Joiner;
+import com.google.common.collect.Iterables;
 
 /**
  * Collects useful string utility methods.
@@ -123,4 +125,8 @@ public final class StringUtils {
         sb.append("]");
         return sb.toString();
     }
+
+    public static String listToString(List<String> strings) {
+        return arrayToString(Iterables.toArray(strings, String.class));
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/a4094db0/mailet/base/src/test/java/org/apache/mailet/base/StringUtilsTest.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/test/java/org/apache/mailet/base/StringUtilsTest.java b/mailet/base/src/test/java/org/apache/mailet/base/StringUtilsTest.java
index dc0922c..9f5b41a 100644
--- a/mailet/base/src/test/java/org/apache/mailet/base/StringUtilsTest.java
+++ b/mailet/base/src/test/java/org/apache/mailet/base/StringUtilsTest.java
@@ -24,6 +24,8 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 
+import com.google.common.collect.ImmutableList;
+
 public class StringUtilsTest {
 
     @Rule
@@ -58,4 +60,34 @@ public class StringUtilsTest {
         expectedException.expect(NullPointerException.class);
         StringUtils.arrayToString(new String[] { "first", null, "fourth" });
     }
+
+    @Test
+    public void listToStringShouldThrowWhenListIsNull() {
+        expectedException.expect(NullPointerException.class);
+        StringUtils.listToString(null);
+    }
+
+    @Test
+    public void listToStringShouldReturnOnlyBracketsWhenListIsEmpty() {
+        String listToString = StringUtils.listToString(ImmutableList.<String> of());
+        assertThat(listToString).isEqualTo("[]");
+    }
+
+    @Test
+    public void listToStringShouldReturnOneElementWhenListContainsOneElement() {
+        String listToString = StringUtils.listToString(ImmutableList.of("first"));
+        assertThat(listToString).isEqualTo("[first]");
+    }
+
+    @Test
+    public void listToStringShouldReturnSeparatedElementsWhenListContainsMultipleElements() {
+        String listToString = StringUtils.listToString(ImmutableList.of("first", "second", "fourth"));
+        assertThat(listToString).isEqualTo("[first,second,fourth]");
+    }
+
+    @Test
+    public void listToStringShouldThrowWhenListContainsANullElement() {
+        expectedException.expect(NullPointerException.class);
+        StringUtils.listToString(ImmutableList.of("first", null, "fourth"));
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/a4094db0/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java
index fe5d966..afb5e81 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AddressExtractor.java
@@ -28,8 +28,8 @@ import javax.mail.internet.InternetAddress;
 
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.MailetContext;
+import org.apache.mailet.base.StringUtils;
 
-import com.google.common.base.Joiner;
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
@@ -37,6 +37,8 @@ import com.google.common.collect.ImmutableList;
 
 public class AddressExtractor {
 
+    private static final boolean ENFORCE_RFC822_SYNTAX = false;
+
     public static Builder withContext(MailetContext mailetContext) {
         return new Builder(mailetContext);
     }
@@ -81,7 +83,7 @@ public class AddressExtractor {
 
     private List<MailAddress> extract(String addressList) throws MessagingException {
         try {
-            return toMailAddresses(ImmutableList.copyOf(InternetAddress.parse(addressList, false)));
+            return toMailAddresses(ImmutableList.copyOf(InternetAddress.parse(addressList, ENFORCE_RFC822_SYNTAX)));
         } catch (AddressException e) {
             throw new MessagingException("Exception thrown parsing: " + addressList, e);
         }
@@ -126,17 +128,13 @@ public class AddressExtractor {
         Optional<MailAddress> specialAddress = asSpecialAddress(addressString);
         if (specialAddress.isPresent()) {
             if (!isAllowed(addressString, allowedSpecials)) {
-                throw new MessagingException("Special (\"magic\") address found not allowed: " + addressString + ", allowed values are \"" + asString(allowedSpecials) + "\"");
+                throw new MessagingException("Special (\"magic\") address found not allowed: " + addressString + ", allowed values are \"" + StringUtils.listToString(allowedSpecials) + "\"");
             }
             return specialAddress;
         }
         return Optional.absent();
     }
 
-    private String asString(List<String> allowedSpecials) {
-        return "[" + Joiner.on(", ").join(allowedSpecials) + "]";
-    }
-
     private Optional<MailAddress> asSpecialAddress(String addressString) {
         String lowerCaseTrimed = addressString.toLowerCase(Locale.US).trim();
         if (lowerCaseTrimed.equals("postmaster")) {


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