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]
