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