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 44fc6b06dd991c942da0ed843f4737efd13a25d8
Author: Benoit TELLIER <[email protected]>
AuthorDate: Tue Jan 6 09:50:24 2026 +0100

    [ENHANCEMENT] Have a convenience RetryBackoffConfiguration.FAST constant
---
 .../org/apache/james/events/RetryBackoffConfiguration.java     |  5 +++++
 .../mailbox/store/AbstractMessageIdManagerSideEffectTest.java  |  3 ++-
 .../apache/james/mailbox/store/StoreMailboxManagerTest.java    |  9 +--------
 .../event/ComputeMessageFastViewProjectionListenerTest.java    |  9 ++-------
 .../james/jmap/event/PopulateEmailQueryViewListenerTest.java   | 10 ++--------
 .../integration/rabbitmq/ConsistencyTasksIntegrationTest.java  |  7 +------
 .../rabbitmq/MailReceptionCheckIntegrationTest.java            |  6 +-----
 .../rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java      |  6 +-----
 .../rabbitmq/RabbitMQReindexingWithEventDeadLettersTest.java   |  6 +-----
 9 files changed, 16 insertions(+), 45 deletions(-)

diff --git 
a/event-bus/api/src/main/java/org/apache/james/events/RetryBackoffConfiguration.java
 
b/event-bus/api/src/main/java/org/apache/james/events/RetryBackoffConfiguration.java
index ba853db9c3..f40cce8d35 100644
--- 
a/event-bus/api/src/main/java/org/apache/james/events/RetryBackoffConfiguration.java
+++ 
b/event-bus/api/src/main/java/org/apache/james/events/RetryBackoffConfiguration.java
@@ -72,6 +72,11 @@ public class RetryBackoffConfiguration {
         DEFAULT_MAX_RETRIES,
         DEFAULT_FIRST_BACKOFF,
         DEFAULT_JITTER_FACTOR);
+    public static final RetryBackoffConfiguration FAST = 
RetryBackoffConfiguration.builder()
+        .maxRetries(2)
+        .firstBackoff(Duration.ofMillis(1))
+        .jitterFactor(0.5)
+        .build();
 
     private final int maxRetries;
     private final Duration firstBackoff;
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
index 16ec78a2f2..af196317eb 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
@@ -42,6 +42,7 @@ import org.apache.james.core.quota.QuotaSizeUsage;
 import org.apache.james.events.EventBus;
 import org.apache.james.events.InVMEventBus;
 import org.apache.james.events.MemoryEventDeadLetters;
+import org.apache.james.events.RetryBackoffConfiguration;
 import org.apache.james.events.delivery.InVmEventDelivery;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MailboxSessionUtil;
@@ -110,7 +111,7 @@ public abstract class 
AbstractMessageIdManagerSideEffectTest {
 
     @BeforeEach
     void setUp() throws Exception {
-        eventBus = new InVMEventBus(new InVmEventDelivery(new 
RecordingMetricFactory()), StoreMailboxManagerTest.RETRY_BACKOFF_CONFIGURATION, 
new MemoryEventDeadLetters());
+        eventBus = new InVMEventBus(new InVmEventDelivery(new 
RecordingMetricFactory()), RetryBackoffConfiguration.FAST, new 
MemoryEventDeadLetters());
         eventCollector = new EventCollector();
         quotaManager = mock(QuotaManager.class);
 
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
index 212eb28afc..60adfe4b46 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxManagerTest.java
@@ -75,13 +75,6 @@ class StoreMailboxManagerTest {
     static final Username UNKNOWN_USER = Username.of("otheruser");
     static final String BAD_PASSWORD = "badpassword";
     static final String EMPTY_PREFIX = "";
-    static final double DEFAULT_JITTER_FACTOR = 0.5;
-    static final java.time.Duration DEFAULT_FIRST_BACKOFF = 
java.time.Duration.ofMillis(5);
-    public static final RetryBackoffConfiguration RETRY_BACKOFF_CONFIGURATION 
= RetryBackoffConfiguration.builder()
-        .maxRetries(3)
-        .firstBackoff(DEFAULT_FIRST_BACKOFF)
-        .jitterFactor(DEFAULT_JITTER_FACTOR)
-        .build();
 
     StoreMailboxManager storeMailboxManager;
     MailboxMapper mockedMailboxMapper;
@@ -100,7 +93,7 @@ class StoreMailboxManagerTest {
         authenticator.addUser(CURRENT_USER, CURRENT_USER_PASSWORD);
         authenticator.addUser(ADMIN, ADMIN_PASSWORD);
 
-        InVMEventBus eventBus = new InVMEventBus(new InVmEventDelivery(new 
RecordingMetricFactory()), RETRY_BACKOFF_CONFIGURATION, new 
MemoryEventDeadLetters());
+        InVMEventBus eventBus = new InVMEventBus(new InVmEventDelivery(new 
RecordingMetricFactory()), RetryBackoffConfiguration.FAST, new 
MemoryEventDeadLetters());
 
         StoreRightManager storeRightManager = new 
StoreRightManager(mockedMapperFactory, new UnionMailboxACLResolver(), eventBus);
 
diff --git 
a/server/protocols/jmap-rfc-8621/src/test/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListenerTest.java
 
b/server/protocols/jmap-rfc-8621/src/test/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListenerTest.java
index 1751e10054..b745910d39 100644
--- 
a/server/protocols/jmap-rfc-8621/src/test/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListenerTest.java
+++ 
b/server/protocols/jmap-rfc-8621/src/test/java/org/apache/james/jmap/event/ComputeMessageFastViewProjectionListenerTest.java
@@ -30,7 +30,6 @@ import static org.mockito.Mockito.verify;
 
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
-import java.time.Duration;
 
 import org.apache.james.core.Username;
 import org.apache.james.events.Group;
@@ -110,15 +109,11 @@ class ComputeMessageFastViewProjectionListenerTest {
         eventDeadLetters = new MemoryEventDeadLetters();
         // Default RetryBackoffConfiguration leads each events to be 
re-executed for 30s which is too long
         // Reducing the wait time for the event bus allow a faster test suite 
execution without harming test correctness
-        RetryBackoffConfiguration backoffConfiguration = 
RetryBackoffConfiguration.builder()
-            .maxRetries(2)
-            .firstBackoff(Duration.ofMillis(1))
-            .jitterFactor(0.5)
-            .build();
+
         InMemoryIntegrationResources resources = 
InMemoryIntegrationResources.builder()
             .preProvisionnedFakeAuthenticator()
             .fakeAuthorizator()
-            .eventBus(new InVMEventBus(new InVmEventDelivery(new 
RecordingMetricFactory()), backoffConfiguration, eventDeadLetters))
+            .eventBus(new InVMEventBus(new InVmEventDelivery(new 
RecordingMetricFactory()), RetryBackoffConfiguration.FAST, eventDeadLetters))
             .defaultAnnotationLimits()
             .defaultMessageParser()
             .scanningSearchIndex()
diff --git 
a/server/protocols/jmap-rfc-8621/src/test/java/org/apache/james/jmap/event/PopulateEmailQueryViewListenerTest.java
 
b/server/protocols/jmap-rfc-8621/src/test/java/org/apache/james/jmap/event/PopulateEmailQueryViewListenerTest.java
index f109c64c5b..bbe44d03c4 100644
--- 
a/server/protocols/jmap-rfc-8621/src/test/java/org/apache/james/jmap/event/PopulateEmailQueryViewListenerTest.java
+++ 
b/server/protocols/jmap-rfc-8621/src/test/java/org/apache/james/jmap/event/PopulateEmailQueryViewListenerTest.java
@@ -25,7 +25,6 @@ import static 
org.apache.james.mailbox.events.MailboxEvents.Added.IS_DELIVERY;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.nio.charset.StandardCharsets;
-import java.time.Duration;
 import java.time.ZonedDateTime;
 import java.util.Date;
 import java.util.Optional;
@@ -71,7 +70,7 @@ import com.google.common.collect.ImmutableSortedMap;
 
 import reactor.core.publisher.Mono;
 
-public class PopulateEmailQueryViewListenerTest {
+class PopulateEmailQueryViewListenerTest {
     private static final Username BOB = Username.of("bob");
     private static final MailboxPath BOB_INBOX_PATH = MailboxPath.inbox(BOB);
     private static final MailboxPath BOB_OTHER_BOX_PATH = 
MailboxPath.forUser(BOB, "otherBox");
@@ -92,15 +91,10 @@ public class PopulateEmailQueryViewListenerTest {
     void setup() throws Exception {
         // Default RetryBackoffConfiguration leads each events to be 
re-executed for 30s which is too long
         // Reducing the wait time for the event bus allow a faster test suite 
execution without harming test correctness
-        RetryBackoffConfiguration backoffConfiguration = 
RetryBackoffConfiguration.builder()
-            .maxRetries(2)
-            .firstBackoff(Duration.ofMillis(1))
-            .jitterFactor(0.5)
-            .build();
         InMemoryIntegrationResources resources = 
InMemoryIntegrationResources.builder()
             .preProvisionnedFakeAuthenticator()
             .fakeAuthorizator()
-            .eventBus(new InVMEventBus(new InVmEventDelivery(new 
RecordingMetricFactory()), backoffConfiguration, new MemoryEventDeadLetters()))
+            .eventBus(new InVMEventBus(new InVmEventDelivery(new 
RecordingMetricFactory()), RetryBackoffConfiguration.FAST, new 
MemoryEventDeadLetters()))
             .defaultAnnotationLimits()
             .defaultMessageParser()
             .scanningSearchIndex()
diff --git 
a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/ConsistencyTasksIntegrationTest.java
 
b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/ConsistencyTasksIntegrationTest.java
index c0eef95628..89345760e2 100644
--- 
a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/ConsistencyTasksIntegrationTest.java
+++ 
b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/ConsistencyTasksIntegrationTest.java
@@ -38,7 +38,6 @@ import static org.hamcrest.Matchers.hasSize;
 import static org.hamcrest.Matchers.is;
 
 import java.io.IOException;
-import java.time.Duration;
 
 import org.apache.james.CassandraExtension;
 import org.apache.james.CassandraRabbitMQJamesConfiguration;
@@ -143,11 +142,7 @@ class ConsistencyTasksIntegrationTest {
         .server(configuration -> 
CassandraRabbitMQJamesServerMain.createServer(configuration)
             // Enforce a single eventBus retry. Required as Current Quotas are 
handled by the eventBus.
             .overrideWith(binder -> 
binder.bind(RetryBackoffConfiguration.class)
-                .toInstance(RetryBackoffConfiguration.builder()
-                    .maxRetries(1)
-                    .firstBackoff(Duration.ofMillis(2))
-                    .jitterFactor(0.5)
-                    .build()))
+                .toInstance(RetryBackoffConfiguration.FAST))
             .overrideWith(new TestingSessionModule()))
         .build();
 
diff --git 
a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/MailReceptionCheckIntegrationTest.java
 
b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/MailReceptionCheckIntegrationTest.java
index 2ca45f44fd..9355718856 100644
--- 
a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/MailReceptionCheckIntegrationTest.java
+++ 
b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/MailReceptionCheckIntegrationTest.java
@@ -82,11 +82,7 @@ class MailReceptionCheckIntegrationTest {
                     Optional.of(ALICE), Duration.ofSeconds(10))))
             // Enforce a single eventBus retry. Required as Current Quotas are 
handled by the eventBus.
             .overrideWith(binder -> 
binder.bind(RetryBackoffConfiguration.class)
-                .toInstance(RetryBackoffConfiguration.builder()
-                    .maxRetries(1)
-                    .firstBackoff(Duration.ofMillis(2))
-                    .jitterFactor(0.5)
-                    .build())))
+                .toInstance(RetryBackoffConfiguration.FAST)))
         .build();
 
     @BeforeEach
diff --git 
a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
 
b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
index f1fb1cdd7e..ee8d015cb6 100644
--- 
a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
+++ 
b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
@@ -221,11 +221,7 @@ class RabbitMQEventDeadLettersIntegrationTest {
         .extension(new RetryEventsListenerExtension())
         .server(configuration -> 
CassandraRabbitMQJamesServerMain.createServer(configuration)
             .overrideWith(binder -> 
binder.bind(RetryBackoffConfiguration.class)
-                .toInstance(RetryBackoffConfiguration.builder()
-                    .maxRetries(MAX_RETRIES)
-                    .firstBackoff(java.time.Duration.ofMillis(5))
-                    .jitterFactor(0.2)
-                    .build())))
+                .toInstance(RetryBackoffConfiguration.FAST)))
         .build();
 
     private static final String DOMAIN = "domain.tld";
diff --git 
a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQReindexingWithEventDeadLettersTest.java
 
b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQReindexingWithEventDeadLettersTest.java
index 3ed49537c9..79fe246c97 100644
--- 
a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQReindexingWithEventDeadLettersTest.java
+++ 
b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQReindexingWithEventDeadLettersTest.java
@@ -97,11 +97,7 @@ class RabbitMQReindexingWithEventDeadLettersTest {
         .server(configuration -> 
CassandraRabbitMQJamesServerMain.createServer(configuration)
             .overrideWith(new TestJMAPServerModule())
             .overrideWith(binder -> 
binder.bind(RetryBackoffConfiguration.class)
-                .toInstance(RetryBackoffConfiguration.builder()
-                    .maxRetries(2)
-                    .firstBackoff(java.time.Duration.ofMillis(10))
-                    .jitterFactor(0.2)
-                    .build())))
+                .toInstance(RetryBackoffConfiguration.FAST)))
         .build();
 
     private RequestSpecification webAdminApi;


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

Reply via email to