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 2019/03/28 03:21:53 UTC

[james-project] 09/23: JAMES-2702 TimeConverter is more a DurationParser

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 02a63a3915a592e9e18902bb7eb0919788edd22c
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Mar 27 10:11:04 2019 +0700

    JAMES-2702 TimeConverter is more a DurationParser
---
 .../custom/mailets/IsDelayedForMoreThan.java       |  4 +-
 .../mailing/QuotaMailingListenerConfiguration.java |  4 +-
 .../modules/mailbox/TikaConfigurationReader.java   |  4 +-
 .../{TimeConverter.java => DurationParser.java}    | 10 ++---
 ...eConverterTest.java => DurationParserTest.java} | 52 +++++++++++-----------
 .../transport/mailets/remote/delivery/Delay.java   |  8 ++--
 .../james/smtpserver/POP3BeforeSMTPHandler.java    |  4 +-
 .../smtpserver/fastfail/JDBCGreylistHandler.java   |  8 ++--
 .../CassandraMailQueueViewConfiguration.java       |  4 +-
 9 files changed, 49 insertions(+), 49 deletions(-)

diff --git a/examples/custom-mailets/src/main/java/org/apache/james/examples/custom/mailets/IsDelayedForMoreThan.java b/examples/custom-mailets/src/main/java/org/apache/james/examples/custom/mailets/IsDelayedForMoreThan.java
index 1c5c72b..aad8b37 100644
--- a/examples/custom-mailets/src/main/java/org/apache/james/examples/custom/mailets/IsDelayedForMoreThan.java
+++ b/examples/custom-mailets/src/main/java/org/apache/james/examples/custom/mailets/IsDelayedForMoreThan.java
@@ -28,7 +28,7 @@ import java.util.Date;
 import javax.mail.MessagingException;
 
 import org.apache.james.core.MailAddress;
-import org.apache.james.util.TimeConverter;
+import org.apache.james.util.DurationParser;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMatcher;
 
@@ -61,7 +61,7 @@ public class IsDelayedForMoreThan extends GenericMatcher {
     @Override
     public void init() {
         String condition = getCondition();
-        maxDelay = TimeConverter.parseDuration(condition, DEFAULT_UNIT);
+        maxDelay = DurationParser.parse(condition, DEFAULT_UNIT);
     }
 
     @Override
diff --git a/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfiguration.java b/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfiguration.java
index ab29dd3..46ff99b 100644
--- a/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfiguration.java
+++ b/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/QuotaMailingListenerConfiguration.java
@@ -31,8 +31,8 @@ import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.filesystem.api.FileSystem;
 import org.apache.james.mailbox.quota.model.QuotaThreshold;
 import org.apache.james.mailbox.quota.model.QuotaThresholds;
+import org.apache.james.util.DurationParser;
 import org.apache.james.util.OptionalUtils;
-import org.apache.james.util.TimeConverter;
 
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.MoreObjects;
@@ -76,7 +76,7 @@ public class QuotaMailingListenerConfiguration {
 
     private static Optional<Duration> readGracePeriod(HierarchicalConfiguration config) {
         return Optional.ofNullable(config.getString(XmlKeys.GRACE_PERIOD, null))
-            .map(string -> TimeConverter.parseDuration(string, ChronoUnit.DAYS));
+            .map(string -> DurationParser.parse(string, ChronoUnit.DAYS));
     }
 
     private static ImmutableMap<QuotaThreshold, RenderingInformation> readThresholds(HierarchicalConfiguration config) {
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
index 07d1936..68763ec 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/TikaConfigurationReader.java
@@ -27,9 +27,9 @@ import java.util.Set;
 import org.apache.commons.configuration.AbstractConfiguration;
 import org.apache.commons.configuration.Configuration;
 import org.apache.james.mailbox.tika.TikaConfiguration;
+import org.apache.james.util.DurationParser;
 import org.apache.james.util.Size;
 import org.apache.james.util.StreamUtils;
-import org.apache.james.util.TimeConverter;
 
 import com.github.fge.lambdas.Throwing;
 import com.google.common.collect.ImmutableSet;
@@ -64,7 +64,7 @@ public class TikaConfigurationReader {
         Optional<Duration> cacheEvictionPeriod = Optional.ofNullable(
             configuration.getString(TIKA_CACHE_EVICTION_PERIOD,
                 null))
-            .map(rawString -> TimeConverter.parseDuration(rawString, ChronoUnit.SECONDS));
+            .map(rawString -> DurationParser.parse(rawString, ChronoUnit.SECONDS));
 
         Optional<Long> cacheWeight = Optional.ofNullable(
             configuration.getString(TIKA_CACHE_WEIGHT_MAX, null))
diff --git a/server/container/util/src/main/java/org/apache/james/util/TimeConverter.java b/server/container/util/src/main/java/org/apache/james/util/DurationParser.java
similarity index 93%
rename from server/container/util/src/main/java/org/apache/james/util/TimeConverter.java
rename to server/container/util/src/main/java/org/apache/james/util/DurationParser.java
index bc7c3cb..9e1095e 100644
--- a/server/container/util/src/main/java/org/apache/james/util/TimeConverter.java
+++ b/server/container/util/src/main/java/org/apache/james/util/DurationParser.java
@@ -30,7 +30,7 @@ import java.util.regex.Pattern;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
 
-public class TimeConverter {
+public class DurationParser {
 
     private static final String PATTERN_STRING = "\\s*([0-9]+)\\s*([a-z,A-Z]*)\\s*";
     private static final int AMOUNT = 1;
@@ -64,7 +64,7 @@ public class TimeConverter {
     }
 
     // Get sure it can not be instantiated
-    private TimeConverter() {
+    private DurationParser() {
     }
 
     /**
@@ -77,11 +77,11 @@ public class TimeConverter {
      * @throws NumberFormatException
      *             Get thrown if an illegal rawString was used
      */
-    public static Duration parseDuration(String rawString) throws NumberFormatException {
-        return parseDuration(rawString, ChronoUnit.MILLIS);
+    public static Duration parse(String rawString) throws NumberFormatException {
+        return parse(rawString, ChronoUnit.MILLIS);
     }
 
-    public static Duration parseDuration(String rawString, ChronoUnit defaultUnit) throws NumberFormatException {
+    public static Duration parse(String rawString, ChronoUnit defaultUnit) throws NumberFormatException {
         Matcher res = PATTERN.matcher(rawString);
         if (res.matches()) {
 
diff --git a/server/container/util/src/test/java/org/apache/james/util/TimeConverterTest.java b/server/container/util/src/test/java/org/apache/james/util/DurationParserTest.java
similarity index 75%
rename from server/container/util/src/test/java/org/apache/james/util/TimeConverterTest.java
rename to server/container/util/src/test/java/org/apache/james/util/DurationParserTest.java
index ca9fe83..7ef870c 100644
--- a/server/container/util/src/test/java/org/apache/james/util/TimeConverterTest.java
+++ b/server/container/util/src/test/java/org/apache/james/util/DurationParserTest.java
@@ -26,155 +26,155 @@ import java.time.temporal.ChronoUnit;
 
 import org.junit.jupiter.api.Test;
 
-class TimeConverterTest {
+class DurationParserTest {
 
     @Test
     void getMilliSecondsShouldConvertValueWhenNoUnitAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2");
+        Duration actual = DurationParser.parse("2");
         assertThat(actual).isEqualTo(Duration.ofMillis(2));
     }
 
     @Test
     void getMilliSecondsShouldUseProvidedUnitWhenNoUnitAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2", ChronoUnit.SECONDS);
+        Duration actual = DurationParser.parse("2", ChronoUnit.SECONDS);
         assertThat(actual).isEqualTo(Duration.ofSeconds(2));
     }
 
     @Test
     void getMilliSecondsShouldNotUseProvidedUnitWhenNoUnitAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 minutes", ChronoUnit.SECONDS);
+        Duration actual = DurationParser.parse("2 minutes", ChronoUnit.SECONDS);
         assertThat(actual).isEqualTo(Duration.ofMinutes(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenMsecAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 msec");
+        Duration actual = DurationParser.parse("2 msec");
         assertThat(actual).isEqualTo(Duration.ofMillis(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenMsAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 ms");
+        Duration actual = DurationParser.parse("2 ms");
         assertThat(actual).isEqualTo(Duration.ofMillis(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenMsCapitalAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 Ms");
+        Duration actual = DurationParser.parse("2 Ms");
         assertThat(actual).isEqualTo(Duration.ofMillis(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenMsecsAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 msecs");
+        Duration actual = DurationParser.parse("2 msecs");
         assertThat(actual).isEqualTo(Duration.ofMillis(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenSAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 s");
+        Duration actual = DurationParser.parse("2 s");
         assertThat(actual).isEqualTo(Duration.ofSeconds(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenSecAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 sec");
+        Duration actual = DurationParser.parse("2 sec");
         assertThat(actual).isEqualTo(Duration.ofSeconds(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenSecCapitalAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 Sec");
+        Duration actual = DurationParser.parse("2 Sec");
         assertThat(actual).isEqualTo(Duration.ofSeconds(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenSecsAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 secs");
+        Duration actual = DurationParser.parse("2 secs");
         assertThat(actual).isEqualTo(Duration.ofSeconds(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenMAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 m");
+        Duration actual = DurationParser.parse("2 m");
         assertThat(actual).isEqualTo(Duration.ofMinutes(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenMinuteAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 minute");
+        Duration actual = DurationParser.parse("2 minute");
         assertThat(actual).isEqualTo(Duration.ofMinutes(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenMinuteCapitalAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 Minute");
+        Duration actual = DurationParser.parse("2 Minute");
         assertThat(actual).isEqualTo(Duration.ofMinutes(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenMinutesAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 minutes");
+        Duration actual = DurationParser.parse("2 minutes");
         assertThat(actual).isEqualTo(Duration.ofMinutes(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenHAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 h");
+        Duration actual = DurationParser.parse("2 h");
         assertThat(actual).isEqualTo(Duration.ofHours(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenHourAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 hour");
+        Duration actual = DurationParser.parse("2 hour");
         assertThat(actual).isEqualTo(Duration.ofHours(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenHourCapitalAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 Hour");
+        Duration actual = DurationParser.parse("2 Hour");
         assertThat(actual).isEqualTo(Duration.ofHours(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenHoursAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 hours");
+        Duration actual = DurationParser.parse("2 hours");
         assertThat(actual).isEqualTo(Duration.ofHours(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenDAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 d");
+        Duration actual = DurationParser.parse("2 d");
         assertThat(actual).isEqualTo(Duration.ofDays(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenDayAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 day");
+        Duration actual = DurationParser.parse("2 day");
         assertThat(actual).isEqualTo(Duration.ofDays(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenDayCapitalAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 Day");
+        Duration actual = DurationParser.parse("2 Day");
         assertThat(actual).isEqualTo(Duration.ofDays(2));
     }
 
     @Test
     void getMilliSecondsShouldConvertValueWhenDaysAmountAsString() {
-        Duration actual = TimeConverter.parseDuration("2 days");
+        Duration actual = DurationParser.parse("2 days");
         assertThat(actual).isEqualTo(Duration.ofDays(2));
     }
 
     @Test
     void getMilliSecondsShouldThrowWhenIllegalUnitInRawString() {
-        assertThatThrownBy(() -> TimeConverter.parseDuration("2 week"))
+        assertThatThrownBy(() -> DurationParser.parse("2 week"))
             .isInstanceOf(NumberFormatException.class);
     }
 
     @Test
     void getMilliSecondsShouldThrowWhenIllegalPattern() {
-        assertThatThrownBy(() -> TimeConverter.parseDuration("illegal pattern"))
+        assertThatThrownBy(() -> DurationParser.parse("illegal pattern"))
             .isInstanceOf(NumberFormatException.class);
     }
 }
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Delay.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Delay.java
index fd04df9..8dcc7c4 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Delay.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/remote/delivery/Delay.java
@@ -24,7 +24,7 @@ import java.util.List;
 
 import javax.mail.MessagingException;
 
-import org.apache.james.util.TimeConverter;
+import org.apache.james.util.DurationParser;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
@@ -35,7 +35,7 @@ import com.google.common.base.Strings;
 public class Delay {
     /**
      * <p> The optional attempt is the number of tries this delay should be used (default = 1).
-     * The delayTime is parsed by {@link TimeConverter}</p>
+     * The delayTime is parsed by {@link DurationParser}</p>
      *
      * @param initString the string to initialize this Delay object from. It has the form "[attempt\*]delaytime[unit]"
      */
@@ -46,14 +46,14 @@ public class Delay {
         List<String> parts = Splitter.on('*').trimResults().splitToList(initString);
 
         if (parts.size() == 1) {
-            return new Delay(DEFAULT_ATTEMPTS, TimeConverter.parseDuration(parts.get(0)));
+            return new Delay(DEFAULT_ATTEMPTS, DurationParser.parse(parts.get(0)));
         }
         if (parts.size() == 2) {
             int attempts = Integer.parseInt(parts.get(0));
             if (attempts < 0) {
                 throw new MessagingException("Number of attempts negative in " + initString);
             }
-            return new Delay(attempts, TimeConverter.parseDuration(parts.get(1)));
+            return new Delay(attempts, DurationParser.parse(parts.get(1)));
         }
         throw new MessagingException(initString + " contains too much parts");
     }
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java
index 5558614..4b8f6f6 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/POP3BeforeSMTPHandler.java
@@ -29,7 +29,7 @@ import org.apache.james.protocols.api.Response;
 import org.apache.james.protocols.api.handler.ConnectHandler;
 import org.apache.james.protocols.lib.POP3BeforeSMTPHelper;
 import org.apache.james.protocols.smtp.SMTPSession;
-import org.apache.james.util.TimeConverter;
+import org.apache.james.util.DurationParser;
 
 /**
  * This ConnectHandler can be used to activate pop-before-smtp
@@ -56,7 +56,7 @@ public class POP3BeforeSMTPHandler implements ConnectHandler<SMTPSession>, Confi
      */
     public void setExpireTime(String rawExpireTime) {
         if (rawExpireTime != null) {
-            this.expireTime = TimeConverter.parseDuration(rawExpireTime);
+            this.expireTime = DurationParser.parse(rawExpireTime);
         }
     }
 
diff --git a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
index 071958f..4f3647a 100644
--- a/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
+++ b/server/protocols/protocols-smtp/src/main/java/org/apache/james/smtpserver/fastfail/JDBCGreylistHandler.java
@@ -47,7 +47,7 @@ import org.apache.james.protocols.api.handler.ProtocolHandler;
 import org.apache.james.protocols.smtp.SMTPSession;
 import org.apache.james.protocols.smtp.core.fastfail.AbstractGreylistHandler;
 import org.apache.james.protocols.smtp.hook.HookResult;
-import org.apache.james.util.TimeConverter;
+import org.apache.james.util.DurationParser;
 import org.apache.james.util.sql.JDBCUtil;
 import org.apache.james.util.sql.SqlResources;
 import org.slf4j.Logger;
@@ -136,7 +136,7 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
      *            The temporary blocking time
      */
     public void setTempBlockTime(String tempBlockTime) {
-        setTempBlockTime(TimeConverter.parseDuration(tempBlockTime));
+        setTempBlockTime(DurationParser.parse(tempBlockTime));
     }
 
     /**
@@ -147,7 +147,7 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
      *            The lifeTime
      */
     public void setAutoWhiteListLifeTime(String autoWhiteListLifeTime) {
-        setAutoWhiteListLifeTime(TimeConverter.parseDuration(autoWhiteListLifeTime));
+        setAutoWhiteListLifeTime(DurationParser.parse(autoWhiteListLifeTime));
     }
 
     /**
@@ -158,7 +158,7 @@ public class JDBCGreylistHandler extends AbstractGreylistHandler implements Prot
      *            The lifetime
      */
     public void setUnseenLifeTime(String unseenLifeTime) {
-        setUnseenLifeTime(TimeConverter.parseDuration(unseenLifeTime));
+        setUnseenLifeTime(DurationParser.parse(unseenLifeTime));
     }
 
     @Inject
diff --git a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/CassandraMailQueueViewConfiguration.java b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/CassandraMailQueueViewConfiguration.java
index dc13b23..dee8f89 100644
--- a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/CassandraMailQueueViewConfiguration.java
+++ b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/view/cassandra/configuration/CassandraMailQueueViewConfiguration.java
@@ -24,7 +24,7 @@ import java.util.Objects;
 import java.util.Optional;
 
 import org.apache.commons.configuration.Configuration;
-import org.apache.james.util.TimeConverter;
+import org.apache.james.util.DurationParser;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Preconditions;
@@ -95,7 +95,7 @@ public class CassandraMailQueueViewConfiguration {
             .bucketCount(bucketCount)
             .updateBrowseStartPace(updateBrowseStartPace)
             .sliceWindow(sliceWindowAsString
-                .map(TimeConverter::parseDuration)
+                .map(DurationParser::parse)
                 .orElse(DEFAULT_SLICE_WINDOW))
             .build();
     }


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