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 2020/07/31 09:24:30 UTC

[james-project] 09/28: JAMES-3350 Decrease backoff for RabbitMQEventBusTest

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 0c57b6987178bcdbe745272527f35f20ab91b3a6
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Jul 27 11:41:17 2020 +0700

    JAMES-3350 Decrease backoff for RabbitMQEventBusTest
    
    Use lower backoff values for testing instead of production ones
---
 .../james/mailbox/events/ErrorHandlingContract.java | 21 ++++++++++-----------
 .../james/mailbox/events/EventBusContract.java      |  8 ++++++--
 .../james/mailbox/events/EventBusTestFixture.java   |  5 ++---
 .../james/mailbox/events/RabbitMQEventBusTest.java  |  2 +-
 4 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/ErrorHandlingContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/ErrorHandlingContract.java
index b598ac1..96642cb 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/ErrorHandlingContract.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/ErrorHandlingContract.java
@@ -65,6 +65,10 @@ interface ErrorHandlingContract extends EventBusContract {
             timeElapsed.add(Instant.now());
             throw new RuntimeException("throw to trigger reactor retry");
         }
+
+        public int executionCount() {
+            return timeElapsed.size();
+        }
     }
 
     EventDeadLetters deadLetter();
@@ -114,11 +118,6 @@ interface ErrorHandlingContract extends EventBusContract {
         doThrow(new RuntimeException())
             .doThrow(new RuntimeException())
             .doThrow(new RuntimeException())
-            .doThrow(new RuntimeException())
-            .doThrow(new RuntimeException())
-            .doThrow(new RuntimeException())
-            .doThrow(new RuntimeException())
-            .doThrow(new RuntimeException())
             .doCallRealMethod()
             .when(eventCollector).event(EVENT);
 
@@ -161,12 +160,12 @@ interface ErrorHandlingContract extends EventBusContract {
         eventBus().register(throwingListener, GROUP_A);
         eventBus().dispatch(EVENT, NO_KEYS).block();
 
-        Thread.sleep(getSpeedProfile().getLongWaitTime().toMillis());
-        int numberOfCallsAfterExceedMaxRetries = throwingListener.timeElapsed.size();
-        Thread.sleep(getSpeedProfile().getLongWaitTime().toMillis());
+        getSpeedProfile().shortWaitCondition()
+            .untilAsserted(() -> assertThat(throwingListener.executionCount()).isEqualTo(4));
+        Thread.sleep(getSpeedProfile().getShortWaitTime().toMillis());
 
-        assertThat(throwingListener.timeElapsed.size())
-            .isEqualTo(numberOfCallsAfterExceedMaxRetries);
+        assertThat(throwingListener.executionCount())
+            .isEqualTo(4);
     }
 
     @Test
@@ -176,7 +175,7 @@ interface ErrorHandlingContract extends EventBusContract {
         eventBus().register(throwingListener, GROUP_A);
         eventBus().dispatch(EVENT, NO_KEYS).block();
 
-        Thread.sleep(getSpeedProfile().getLongWaitTime().toMillis());
+        Thread.sleep(getSpeedProfile().getShortWaitTime().toMillis());
         SoftAssertions.assertSoftly(softly -> {
             List<Instant> timeElapsed = throwingListener.timeElapsed;
             softly.assertThat(timeElapsed).hasSize(RETRY_BACKOFF_CONFIGURATION.getMaxRetries() + 1);
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusContract.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusContract.java
index 055eea3..e21644f 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusContract.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusContract.java
@@ -49,11 +49,15 @@ public interface EventBusContract {
         }
 
         public ConditionFactory shortWaitCondition() {
-            return await().timeout(new org.awaitility.Duration(this.getShortWaitTime().toMillis(), TimeUnit.MILLISECONDS));
+            return await().pollDelay(org.awaitility.Duration.ZERO)
+                .pollInterval(org.awaitility.Duration.ONE_HUNDRED_MILLISECONDS)
+                .timeout(new org.awaitility.Duration(this.getShortWaitTime().toMillis(), TimeUnit.MILLISECONDS));
         }
 
         public ConditionFactory longWaitCondition() {
-            return await().timeout(new org.awaitility.Duration(this.getLongWaitTime().toMillis(), TimeUnit.MILLISECONDS));
+            return await().pollDelay(org.awaitility.Duration.ZERO)
+                .pollInterval(org.awaitility.Duration.ONE_HUNDRED_MILLISECONDS)
+                .timeout(new org.awaitility.Duration(this.getLongWaitTime().toMillis(), TimeUnit.MILLISECONDS));
         }
     }
 
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java
index 440ba39..b0bd987 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/events/EventBusTestFixture.java
@@ -20,7 +20,6 @@
 package org.apache.james.mailbox.events;
 
 import static org.apache.james.mailbox.events.RetryBackoffConfiguration.DEFAULT_JITTER_FACTOR;
-import static org.apache.james.mailbox.events.RetryBackoffConfiguration.DEFAULT_MAX_RETRIES;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -115,10 +114,10 @@ public interface EventBusTestFixture {
     GroupC GROUP_C = new GroupC();
     List<Group> ALL_GROUPS = ImmutableList.of(GROUP_A, GROUP_B, GROUP_C);
 
-    java.time.Duration DEFAULT_FIRST_BACKOFF = java.time.Duration.ofMillis(20);
+    java.time.Duration DEFAULT_FIRST_BACKOFF = java.time.Duration.ofMillis(5);
     //Retry backoff configuration for testing with a shorter first backoff to accommodate the shorter retry interval in tests
     RetryBackoffConfiguration RETRY_BACKOFF_CONFIGURATION = RetryBackoffConfiguration.builder()
-        .maxRetries(DEFAULT_MAX_RETRIES)
+        .maxRetries(3)
         .firstBackoff(DEFAULT_FIRST_BACKOFF)
         .jitterFactor(DEFAULT_JITTER_FACTOR)
         .build();
diff --git a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
index 1fab4cc..feb188e 100644
--- a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
+++ b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
@@ -153,7 +153,7 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
     }
 
     private RabbitMQEventBus newEventBus(Sender sender, ReceiverProvider receiverProvider) {
-        return new RabbitMQEventBus(sender, receiverProvider, eventSerializer, RetryBackoffConfiguration.DEFAULT, routingKeyConverter, memoryEventDeadLetters, new RecordingMetricFactory());
+        return new RabbitMQEventBus(sender, receiverProvider, eventSerializer, EventBusTestFixture.RETRY_BACKOFF_CONFIGURATION, routingKeyConverter, memoryEventDeadLetters, new RecordingMetricFactory());
     }
 
     @Override


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