Repository: james-project
Updated Branches:
  refs/heads/master c424accd9 -> cba3030e6


JAMES-2260 RemoteDelivery retry delays configuration can contain spaces


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

Branch: refs/heads/master
Commit: 1a7b6a94bfa24a48dc965a99b8b8c165514eeef3
Parents: c424acc
Author: apptaro <appt...@gmail.com>
Authored: Mon Dec 18 15:46:22 2017 +0900
Committer: benwa <btell...@linagora.com>
Committed: Wed Dec 20 08:23:05 2017 +0700

----------------------------------------------------------------------
 server/app/src/main/resources/mailetcontainer.xml           | 9 +--------
 .../james/transport/mailets/remoteDelivery/Delay.java       | 2 +-
 .../transport/mailets/remoteDelivery/DelaysAndMaxRetry.java | 1 +
 .../james/transport/mailets/remoteDelivery/DelayTest.java   | 5 +++++
 .../mailets/remoteDelivery/DelaysAndMaxRetryTest.java       | 7 +++++++
 5 files changed, 15 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/1a7b6a94/server/app/src/main/resources/mailetcontainer.xml
----------------------------------------------------------------------
diff --git a/server/app/src/main/resources/mailetcontainer.xml 
b/server/app/src/main/resources/mailetcontainer.xml
index 93760a9..bce475e 100644
--- a/server/app/src/main/resources/mailetcontainer.xml
+++ b/server/app/src/main/resources/mailetcontainer.xml
@@ -294,14 +294,7 @@ Regards, Postmaster XXX.YYY
           <!-- 5 day retry period, with 4 attempts in the first
                  hour, two more within the first 6 hours, and then
                  every 6 hours for the rest of the period.
-                 This format is not yet supported, instead, use a unique
-                 tag with the list of delays in milliseconds separated by 
commas.
-          <delayTime>5 minutes</delayTime>
-          <delayTime>10 minutes</delayTime>
-          <delayTime>45 minutes</delayTime>
-          <delayTime>2 hours</delayTime>
-          <delayTime>3 hours</delayTime>
-          <delayTime>6 hours</delayTime>
+          <delayTime>4 * 15 minutes, 2 * 3 hours, 18 * 6 hours</delayTime>
           -->
           <delayTime>5000, 100000, 500000</delayTime>
           <maxRetries>25</maxRetries>

http://git-wip-us.apache.org/repos/asf/james-project/blob/1a7b6a94/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/Delay.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/Delay.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/Delay.java
index d293f13..8d48757 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/Delay.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/Delay.java
@@ -43,7 +43,7 @@ public class Delay {
         if (Strings.isNullOrEmpty(initString)) {
             throw new NumberFormatException("Null or Empty strings are not 
permitted");
         }
-        List<String> parts = Splitter.on('*').splitToList(initString);
+        List<String> parts = 
Splitter.on('*').trimResults().splitToList(initString);
 
         if (parts.size() == 1) {
             return new Delay(DEFAULT_ATTEMPTS, 
TimeConverter.getMilliSeconds(parts.get(0)));

http://git-wip-us.apache.org/repos/asf/james-project/blob/1a7b6a94/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetry.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetry.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetry.java
index e627ea0..ecd9deb 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetry.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetry.java
@@ -81,6 +81,7 @@ public class DelaysAndMaxRetry {
 
         List<String> delayStrings = Splitter.on(',')
             .omitEmptyStrings()
+            .trimResults()
             .splitToList(delaysAsString);
 
         ImmutableList.Builder<Delay> builder = ImmutableList.builder();

http://git-wip-us.apache.org/repos/asf/james-project/blob/1a7b6a94/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DelayTest.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DelayTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DelayTest.java
index b940c3e..6adb15d 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DelayTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DelayTest.java
@@ -94,6 +94,11 @@ public class DelayTest {
     public void stringConstructorShouldWorkForNumberAttemptsAndUnit() throws 
Exception {
         assertThat(Delay.from("2*36s")).isEqualTo(new Delay(2, 36000));
     }
+    
+    @Test
+    public void 
stringConstructorShouldWorkForNumberAttemptsAndUnitWithSpaces() throws 
Exception {
+       assertThat(Delay.from("2 * 36 s")).isEqualTo(new Delay(2, 36000));
+    }
 
     @Test
     public void stringConstructorShouldThrowOnInvalidInput() throws Exception {

http://git-wip-us.apache.org/repos/asf/james-project/blob/1a7b6a94/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetryTest.java
----------------------------------------------------------------------
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetryTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetryTest.java
index dbab3c4..223acb2 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetryTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/remoteDelivery/DelaysAndMaxRetryTest.java
@@ -133,4 +133,11 @@ public class DelaysAndMaxRetryTest {
 
         assertThat(testee.getExpendedDelays()).containsExactly(1000L, 2000L, 
2000L, 5000L, 5000L);
     }
+    
+    @Test
+    public void getExpendedDelaysShouldExpandMultipleDelaysWithSpaces() throws 
Exception {
+       DelaysAndMaxRetry testee = DelaysAndMaxRetry.from(3, "1 * 1 S, 2 * 2 S 
, 2 * 5 S");
+       
+       assertThat(testee.getExpendedDelays()).containsExactly(1000L, 2000L, 
2000L, 5000L, 5000L);
+    }
 }


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