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 fbd6fc64147d345ff570676be0d9e2bf83b8f20e
Author: LanKhuat <[email protected]>
AuthorDate: Wed Apr 1 02:18:22 2020 +0700

    JAMES-3117 Add PeriodicalHealthChecksConfiguration/Test
---
 .../james/PeriodicalHealthChecksConfiguration.java | 20 +++++++++++----
 .../PeriodicalHealthChecksConfigurationTest.java   | 29 ++++++++--------------
 2 files changed, 26 insertions(+), 23 deletions(-)

diff --git 
a/server/container/guice/guice-common/src/main/java/org/apache/james/PeriodicalHealthChecksConfiguration.java
 
b/server/container/guice/guice-common/src/main/java/org/apache/james/PeriodicalHealthChecksConfiguration.java
index 444ef4e..beac23b 100644
--- 
a/server/container/guice/guice-common/src/main/java/org/apache/james/PeriodicalHealthChecksConfiguration.java
+++ 
b/server/container/guice/guice-common/src/main/java/org/apache/james/PeriodicalHealthChecksConfiguration.java
@@ -23,6 +23,7 @@ import java.time.Duration;
 import java.util.Objects;
 
 import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.james.util.DurationParser;
 
 import com.google.common.annotations.VisibleForTesting;
@@ -31,9 +32,10 @@ import com.google.common.base.Preconditions;
 public class PeriodicalHealthChecksConfiguration {
 
     private static final String HEALTH_CHECK_PERIOD = "healthcheck.period";
-    private static final String DEFAULT_HEALTH_CHECK_PERIOD = "60s";
+    private static final Duration DEFAULT_HEALTH_CHECK_PERIOD = 
Duration.ofSeconds(60);
+    private static final Duration MINIMAL_HEALTH_CHECK_PERIOD = 
Duration.ofSeconds(10);
     public static final PeriodicalHealthChecksConfiguration 
DEFAULT_CONFIGURATION = builder()
-        .period(DurationParser.parse(DEFAULT_HEALTH_CHECK_PERIOD))
+        .period(DEFAULT_HEALTH_CHECK_PERIOD)
         .build();
 
     public interface Builder {
@@ -51,8 +53,8 @@ public class PeriodicalHealthChecksConfiguration {
             }
 
             PeriodicalHealthChecksConfiguration build() {
-                Preconditions.checkArgument(!period.isNegative(), "'period' 
must be positive");
-                Preconditions.checkArgument(!period.isZero(), "'period' must 
be greater than zero");
+                
Preconditions.checkArgument(period.compareTo(MINIMAL_HEALTH_CHECK_PERIOD) >= 0,
+                    "'period' must be equal or greater than " + 
MINIMAL_HEALTH_CHECK_PERIOD.toMillis() + "ms");
 
                 return new PeriodicalHealthChecksConfiguration(period);
             }
@@ -65,7 +67,7 @@ public class PeriodicalHealthChecksConfiguration {
 
     public static PeriodicalHealthChecksConfiguration from(Configuration 
configuration) {
         return builder()
-            
.period(DurationParser.parse(configuration.getString(HEALTH_CHECK_PERIOD, 
DEFAULT_HEALTH_CHECK_PERIOD)))
+            .period(getDurationFromConfiguration(configuration))
             .build();
     }
 
@@ -94,4 +96,12 @@ public class PeriodicalHealthChecksConfiguration {
     public final int hashCode() {
         return Objects.hash(period);
     }
+
+    private static Duration getDurationFromConfiguration(Configuration 
configuration) {
+        if (StringUtils.isEmpty(configuration.getString(HEALTH_CHECK_PERIOD))) 
{
+           return DEFAULT_HEALTH_CHECK_PERIOD;
+        }
+
+        return 
DurationParser.parse(configuration.getString(HEALTH_CHECK_PERIOD));
+    }
 }
\ No newline at end of file
diff --git 
a/server/container/guice/guice-common/src/test/java/org/apache/james/PeriodicalHealthChecksConfigurationTest.java
 
b/server/container/guice/guice-common/src/test/java/org/apache/james/PeriodicalHealthChecksConfigurationTest.java
index 10fdcf5..6fc8cb7 100644
--- 
a/server/container/guice/guice-common/src/test/java/org/apache/james/PeriodicalHealthChecksConfigurationTest.java
+++ 
b/server/container/guice/guice-common/src/test/java/org/apache/james/PeriodicalHealthChecksConfigurationTest.java
@@ -34,7 +34,7 @@ import nl.jqno.equalsverifier.EqualsVerifier;
 public class PeriodicalHealthChecksConfigurationTest {
 
     private static final String HEALTH_CHECK_PERIOD = "healthcheck.period";
-    private static final String PERIOD = "5s";
+    private static final String PERIOD = "10s";
     private static final String EMPTY_STRING = "";
     private static final String RANDOM_STRING = "abcdsfsfs";
 
@@ -61,17 +61,9 @@ public class PeriodicalHealthChecksConfigurationTest {
     }
 
     @Test
-    void builderShouldThrowWhenPeriodIsNegative() {
+    void builderShouldThrowWhenPeriodIsLessThanMinimalValue() {
         assertThatThrownBy(() -> PeriodicalHealthChecksConfiguration.builder()
-            .period(DurationParser.parse("-" + PERIOD))
-            .build())
-            .isInstanceOf(IllegalArgumentException.class);
-    }
-
-    @Test
-    void builderShouldThrowWhenPeriodIsZero() {
-        assertThatThrownBy(() -> PeriodicalHealthChecksConfiguration.builder()
-            .period(Duration.ZERO)
+            .period(Duration.ofSeconds(1))
             .build())
             .isInstanceOf(IllegalArgumentException.class);
     }
@@ -86,17 +78,18 @@ public class PeriodicalHealthChecksConfigurationTest {
     }
 
     @Test
-    void fromShouldThrowWhenPeriodIsEmpty() {
+    void fromShouldReturnDefaultConfigurationWhenPeriodIsMissing() {
         PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty(HEALTH_CHECK_PERIOD, EMPTY_STRING);
 
-        assertThatThrownBy(() -> 
PeriodicalHealthChecksConfiguration.from(configuration))
-            .isInstanceOf(NumberFormatException.class);
+        
assertThat(PeriodicalHealthChecksConfiguration.from(configuration)).isEqualTo(PeriodicalHealthChecksConfiguration.builder()
+            .period(DEFAULT_CONFIGURATION.getPeriod())
+            .build());
     }
 
     @Test
-    void fromShouldReturnConfigurationWithDefaultValueWhenPeriodIsMissing() {
+    void fromShouldReturnDefaultConfigurationWhenPeriodIsNull() {
         PropertiesConfiguration configuration = new PropertiesConfiguration();
+        configuration.addProperty(HEALTH_CHECK_PERIOD, null);
 
         
assertThat(PeriodicalHealthChecksConfiguration.from(configuration)).isEqualTo(PeriodicalHealthChecksConfiguration.builder()
             .period(DEFAULT_CONFIGURATION.getPeriod())
@@ -104,9 +97,9 @@ public class PeriodicalHealthChecksConfigurationTest {
     }
 
     @Test
-    void fromShouldReturnConfigurationWithDefaultValueWhenPeriodIsNull() {
+    void fromShouldReturnDefaultConfigurationWhenPeriodIsEmpty() {
         PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty(HEALTH_CHECK_PERIOD, null);
+        configuration.addProperty(HEALTH_CHECK_PERIOD, EMPTY_STRING);
 
         
assertThat(PeriodicalHealthChecksConfiguration.from(configuration)).isEqualTo(PeriodicalHealthChecksConfiguration.builder()
             .period(DEFAULT_CONFIGURATION.getPeriod())


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to