You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2021/02/04 05:02:33 UTC

[james-project] 07/18: JAMES-3498 event-bus-* should not depend on mailbox-*

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 9f39436ea4baed6aaa45970b3a2b4b028ddf6795
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Jan 25 15:21:35 2021 +0700

    JAMES-3498 event-bus-* should not depend on mailbox-*
---
 event-bus/api/pom.xml                              |  11 --
 .../apache/james/events/EventBusTestFixture.java   | 178 ++++++++++++++++++---
 .../james/events/EventDeadLettersContract.java     |  18 +--
 .../EventDeadLettersHealthCheckContract.java       |  14 +-
 .../org/apache/james/events/GroupContract.java     |  14 +-
 .../java/org/apache/james/events/KeyContract.java  |   9 +-
 event-bus/cassandra/pom.xml                        |  29 +---
 .../events/CassandraEventDeadLettersDAOTest.java   |   6 +-
 .../CassandraEventDeadLettersHealthCheckTest.java  |   7 +-
 .../events/CassandraEventDeadLettersTest.java      |   7 +-
 event-bus/distributed/pom.xml                      |  53 ++----
 .../james/events/LocalListenerRegistryTest.java    |   3 +-
 .../org/apache/james/events/NetworkErrorTest.java  |  11 +-
 ...RabbitMQEventBusDeadLetterQueueUpgradeTest.java |  12 +-
 .../apache/james/events/RabbitMQEventBusTest.java  |  18 +--
 .../james/events/RoutingKeyConverterTest.java      |  39 ++---
 event-bus/in-vm/pom.xml                            |  20 +--
 .../AbstractMessageIdManagerSideEffectTest.java    |   3 +-
 .../mailbox/store/StoreMailboxManagerTest.java     |  11 +-
 19 files changed, 250 insertions(+), 213 deletions(-)

diff --git a/event-bus/api/pom.xml b/event-bus/api/pom.xml
index df7be49..6a577f1 100644
--- a/event-bus/api/pom.xml
+++ b/event-bus/api/pom.xml
@@ -34,17 +34,6 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-core</artifactId>
         </dependency>
         <dependency>
diff --git a/event-bus/api/src/test/java/org/apache/james/events/EventBusTestFixture.java b/event-bus/api/src/test/java/org/apache/james/events/EventBusTestFixture.java
index 9398247..917e24a 100644
--- a/event-bus/api/src/test/java/org/apache/james/events/EventBusTestFixture.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/EventBusTestFixture.java
@@ -25,18 +25,16 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.util.List;
+import java.util.Objects;
+import java.util.UUID;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.james.core.Username;
-import org.apache.james.events.MailboxEvents.MailboxAdded;
-import org.apache.james.events.MailboxEvents.MailboxEvent;
-import org.apache.james.events.MailboxEvents.MailboxRenamed;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.model.MailboxConstants;
-import org.apache.james.mailbox.model.MailboxId;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.TestId;
 
+import com.github.steveash.guavate.Guavate;
+import com.google.common.base.Joiner;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Splitter;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 
@@ -93,25 +91,161 @@ public interface EventBusTestFixture {
 
     }
 
-    MailboxSession.SessionId SESSION_ID = MailboxSession.SessionId.of(42);
+    class TestEvent implements Event {
+        private final EventId eventId;
+        private final Username username;
+
+        public TestEvent(EventId eventId, Username username) {
+            this.eventId = eventId;
+            this.username = username;
+        }
+
+        @Override
+        public Username getUsername() {
+            return username;
+        }
+
+        @Override
+        public boolean isNoop() {
+            return username.asString().equals("noop");
+        }
+
+        @Override
+        public EventId getEventId() {
+            return eventId;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o instanceof TestEvent) {
+                TestEvent that = (TestEvent) o;
+
+                return Objects.equals(this.eventId, that.eventId)
+                    && Objects.equals(this.username, that.username);
+            }
+            return false;
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(eventId, username);
+        }
+    }
+
+    class UnsupportedEvent implements Event {
+        private final EventId eventId;
+        private final Username username;
+
+        public UnsupportedEvent(EventId eventId, Username username) {
+            this.eventId = eventId;
+            this.username = username;
+        }
+
+        @Override
+        public Username getUsername() {
+            return username;
+        }
+
+        @Override
+        public boolean isNoop() {
+            return false;
+        }
+
+        @Override
+        public EventId getEventId() {
+            return eventId;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o instanceof UnsupportedEvent) {
+                UnsupportedEvent that = (UnsupportedEvent) o;
+
+                return Objects.equals(this.eventId, that.eventId)
+                    && Objects.equals(this.username, that.username);
+            }
+            return false;
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(eventId, username);
+        }
+    }
+
+    class TestEventSerializer implements EventSerializer {
+        @Override
+        public String toJson(Event event) {
+            Preconditions.checkArgument(event instanceof TestEvent || event instanceof UnsupportedEvent);
+            return event.getClass().getCanonicalName() + "&" + event.getEventId().getId().toString() + "&" + event.getUsername().asString();
+        }
+
+        @Override
+        public Event asEvent(String serialized) {
+            Preconditions.checkArgument(serialized.contains("&"));
+            List<String> parts = Splitter.on("&").splitToList(serialized);
+            Preconditions.checkArgument(parts.get(0).equals(TestEvent.class.getCanonicalName()));
+
+            Event.EventId eventId = Event.EventId.of(UUID.fromString(parts.get(1)));
+            Username username = Username.of(Joiner.on("&").join(parts.stream().skip(2).collect(Guavate.toImmutableList())));
+            return new TestEvent(eventId, username);
+        }
+    }
+
+    class TestRegistrationKey implements RegistrationKey {
+        private final String value;
+
+        public TestRegistrationKey(String value) {
+            this.value = value;
+        }
+
+        @Override
+        public String asString() {
+            return value;
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (o instanceof TestRegistrationKey) {
+                TestRegistrationKey that = (TestRegistrationKey) o;
+
+                return Objects.equals(this.value, that.value);
+            }
+            return false;
+        }
+
+        @Override
+        public int hashCode() {
+            return Objects.hash(value);
+        }
+    }
+
+    class TestRegistrationKeyFactory implements RegistrationKey.Factory {
+        @Override
+        public Class<? extends RegistrationKey> forClass() {
+            return TestRegistrationKey.class;
+        }
+
+        @Override
+        public RegistrationKey fromString(String asString) {
+            return new TestRegistrationKey(asString);
+        }
+    }
+
     Username USERNAME = Username.of("user");
-    MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, USERNAME, "mailboxName");
-    TestId TEST_ID = TestId.of(18);
     Event.EventId EVENT_ID = Event.EventId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b4");
     Event.EventId EVENT_ID_2 = Event.EventId.of("5a7a9f3f-5f03-44be-b457-a51e93760645");
-    MailboxEvent EVENT = new MailboxAdded(SESSION_ID, USERNAME, MAILBOX_PATH, TEST_ID, EVENT_ID);
-    MailboxEvent EVENT_2 = new MailboxAdded(SESSION_ID, USERNAME, MAILBOX_PATH, TEST_ID, EVENT_ID_2);
-    MailboxRenamed EVENT_UNSUPPORTED_BY_LISTENER = new MailboxRenamed(SESSION_ID, USERNAME, MAILBOX_PATH, TEST_ID, MAILBOX_PATH, EVENT_ID_2);
+    Event EVENT = new TestEvent(EVENT_ID, USERNAME);
+    Event EVENT_2 = new TestEvent(EVENT_ID_2, USERNAME);
+    Event EVENT_UNSUPPORTED_BY_LISTENER = new UnsupportedEvent(EVENT_ID_2, USERNAME);
 
     java.time.Duration ONE_SECOND = java.time.Duration.ofSeconds(1);
     java.time.Duration FIVE_HUNDRED_MS = java.time.Duration.ofMillis(500);
-    MailboxId ID_1 = TEST_ID;
-    MailboxId ID_2 = TestId.of(24);
-    MailboxId ID_3 = TestId.of(36);
+
     ImmutableSet<RegistrationKey> NO_KEYS = ImmutableSet.of();
-    MailboxIdRegistrationKey KEY_1 = new MailboxIdRegistrationKey(ID_1);
-    MailboxIdRegistrationKey KEY_2 = new MailboxIdRegistrationKey(ID_2);
-    MailboxIdRegistrationKey KEY_3 = new MailboxIdRegistrationKey(ID_3);
+    RegistrationKey KEY_1 = new TestRegistrationKey("a");
+    RegistrationKey KEY_2 = new TestRegistrationKey("b");
+    RegistrationKey KEY_3 = new TestRegistrationKey("c");
     GroupA GROUP_A = new GroupA();
     GroupB GROUP_B = new GroupB();
     GroupC GROUP_C = new GroupC();
@@ -128,14 +262,14 @@ public interface EventBusTestFixture {
     static EventListener newListener() {
         EventListener listener = mock(EventListener.class);
         when(listener.getExecutionMode()).thenReturn(EventListener.ExecutionMode.SYNCHRONOUS);
-        when(listener.isHandling(any(MailboxAdded.class))).thenReturn(true);
+        when(listener.isHandling(any(TestEvent.class))).thenReturn(true);
         return listener;
     }
 
     static EventListener newAsyncListener() {
         EventListener listener = mock(EventListener.class);
         when(listener.getExecutionMode()).thenReturn(EventListener.ExecutionMode.ASYNCHRONOUS);
-        when(listener.isHandling(any(MailboxAdded.class))).thenReturn(true);
+        when(listener.isHandling(any(TestEvent.class))).thenReturn(true);
         return listener;
     }
 }
diff --git a/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java b/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java
index 88b674d..e351e26 100644
--- a/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java
@@ -31,11 +31,7 @@ import java.util.stream.IntStream;
 import java.util.stream.Stream;
 
 import org.apache.james.core.Username;
-import org.apache.james.events.MailboxEvents.MailboxAdded;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.model.MailboxConstants;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.TestId;
+import org.apache.james.events.EventBusTestFixture.TestEvent;
 import org.apache.james.util.concurrency.ConcurrentTestRunner;
 import org.junit.jupiter.api.Test;
 
@@ -94,7 +90,7 @@ interface EventDeadLettersContract {
     }
 
     static Event event(Event.EventId eventId) {
-        return new MailboxAdded(SESSION_ID, USERNAME, MAILBOX_PATH, MAILBOX_ID, eventId);
+        return new TestEvent(eventId, USERNAME);
     }
 
     List<Group> CONCURRENT_GROUPS = ImmutableList.of(new Group0(), new Group1(), new Group2(), new Group3(), new Group4(), new Group5(),
@@ -104,15 +100,13 @@ interface EventDeadLettersContract {
     int OPERATION_COUNT = 50;
 
     Username USERNAME = Username.of("user");
-    MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, USERNAME, "mailboxName");
-    MailboxSession.SessionId SESSION_ID = MailboxSession.SessionId.of(235);
-    TestId MAILBOX_ID = TestId.of(563);
+
     Event.EventId EVENT_ID_1 = Event.EventId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b4");
     Event.EventId EVENT_ID_2 = Event.EventId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b5");
     Event.EventId EVENT_ID_3 = Event.EventId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b6");
-    MailboxAdded EVENT_1 = new MailboxAdded(SESSION_ID, USERNAME, MAILBOX_PATH, MAILBOX_ID, EVENT_ID_1);
-    MailboxAdded EVENT_2 = new MailboxAdded(SESSION_ID, USERNAME, MAILBOX_PATH, MAILBOX_ID, EVENT_ID_2);
-    MailboxAdded EVENT_3 = new MailboxAdded(SESSION_ID, USERNAME, MAILBOX_PATH, MAILBOX_ID, EVENT_ID_3);
+    Event EVENT_1 = new TestEvent(EVENT_ID_1, USERNAME);
+    Event EVENT_2 = new TestEvent(EVENT_ID_2, USERNAME);
+    Event EVENT_3 = new TestEvent(EVENT_ID_3, USERNAME);
     EventDeadLetters.InsertionId INSERTION_ID_1 = EventDeadLetters.InsertionId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b7");
     EventDeadLetters.InsertionId INSERTION_ID_2 = EventDeadLetters.InsertionId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b8");
     EventDeadLetters.InsertionId INSERTION_ID_3 = EventDeadLetters.InsertionId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b9");
diff --git a/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java b/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java
index 7a0b5d5..335f1c7 100644
--- a/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java
@@ -24,11 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import org.apache.james.core.Username;
 import org.apache.james.core.healthcheck.ComponentName;
 import org.apache.james.core.healthcheck.Result;
-import org.apache.james.events.MailboxEvents.MailboxAdded;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.model.MailboxConstants;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.TestId;
+import org.apache.james.events.EventBusTestFixture.TestEvent;
 import org.junit.jupiter.api.Test;
 
 interface EventDeadLettersHealthCheckContract {
@@ -37,13 +33,11 @@ interface EventDeadLettersHealthCheckContract {
     String EXPECTED_DEGRADED_MESSAGE = "EventDeadLetters contain events. This might indicate transient failure on mailbox event processing.";
 
     Username USERNAME = Username.of("user");
-    MailboxPath MAILBOX_PATH = new MailboxPath(MailboxConstants.USER_NAMESPACE, USERNAME, "mailboxName");
-    MailboxSession.SessionId SESSION_ID = MailboxSession.SessionId.of(235);
-    TestId MAILBOX_ID = TestId.of(563);
+
     Event.EventId EVENT_ID_1 = Event.EventId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b4");
     Event.EventId EVENT_ID_2 = Event.EventId.of("6e0dd59d-660e-4d9b-b22f-0354479f47b5");
-    MailboxAdded EVENT_1 = new MailboxAdded(SESSION_ID, USERNAME, MAILBOX_PATH, MAILBOX_ID, EVENT_ID_1);
-    MailboxAdded EVENT_2 = new MailboxAdded(SESSION_ID, USERNAME, MAILBOX_PATH, MAILBOX_ID, EVENT_ID_2);
+    Event EVENT_1 = new TestEvent(EVENT_ID_1, USERNAME);
+    Event EVENT_2 = new TestEvent(EVENT_ID_2, USERNAME);
 
     Group GROUP_A = new EventBusTestFixture.GroupA();
     Group GROUP_B = new EventBusTestFixture.GroupB();
diff --git a/event-bus/api/src/test/java/org/apache/james/events/GroupContract.java b/event-bus/api/src/test/java/org/apache/james/events/GroupContract.java
index dc97bfb..246f6b7 100644
--- a/event-bus/api/src/test/java/org/apache/james/events/GroupContract.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/GroupContract.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.events;
 
+import static org.apache.james.events.EventBusTestFixture.EVENT_ID;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -38,16 +39,11 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.IntStream;
 
 import org.apache.james.core.Username;
-import org.apache.james.events.MailboxEvents.Added;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.TestId;
 import org.apache.james.events.EventBusTestFixture.TestEvent;
 import org.apache.james.mailbox.events.GenericGroup;
 import org.junit.jupiter.api.Test;
 
 import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedMap;
 
 import reactor.core.scheduler.Schedulers;
 
@@ -150,7 +146,7 @@ public interface GroupContract {
         default void listenersShouldBeAbleToDispatch() {
             AtomicBoolean successfulRetry = new AtomicBoolean(false);
             EventListener listener = event -> {
-                if (event.getEventId().equals(EventBusTestFixture.EVENT_ID)) {
+                if (event.getEventId().equals(EVENT_ID)) {
                     eventBus().dispatch(EventBusTestFixture.EVENT_2, EventBusTestFixture.NO_KEYS)
                         .subscribeOn(Schedulers.elastic())
                         .block();
@@ -193,8 +189,7 @@ public interface GroupContract {
 
             eventBus().register(listener, EventBusTestFixture.GROUP_A);
 
-            Username bob = Username.of("bob");
-            Added noopEvent = new Added(MailboxSession.SessionId.of(18), bob, MailboxPath.forUser(bob, "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random());
+            Event noopEvent = new TestEvent(EVENT_ID, Username.of("noop"));
             eventBus().dispatch(noopEvent, EventBusTestFixture.NO_KEYS).block();
 
             verify(listener, after(EventBusTestFixture.FIVE_HUNDRED_MS.toMillis()).never())
@@ -404,8 +399,7 @@ public interface GroupContract {
 
             eventBus().register(listener, EventBusTestFixture.GROUP_A);
 
-            Username bob = Username.of("bob");
-            Added noopEvent = new Added(MailboxSession.SessionId.of(18), bob, MailboxPath.forUser(bob, "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random());
+            Event noopEvent = new TestEvent(EVENT_ID, Username.of("noop"));
             eventBus().reDeliver(EventBusTestFixture.GROUP_A, noopEvent).block();
 
             verify(listener, after(EventBusTestFixture.FIVE_HUNDRED_MS.toMillis()).never()).event(any());
diff --git a/event-bus/api/src/test/java/org/apache/james/events/KeyContract.java b/event-bus/api/src/test/java/org/apache/james/events/KeyContract.java
index 6b2ae6b..190b517 100644
--- a/event-bus/api/src/test/java/org/apache/james/events/KeyContract.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/KeyContract.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.events;
 
+import static org.apache.james.events.EventBusTestFixture.EVENT_ID;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.junit.jupiter.api.Assertions.assertTimeout;
@@ -40,14 +41,9 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.IntStream;
 
 import org.apache.james.core.Username;
-import org.apache.james.events.MailboxEvents.Added;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.TestId;
 import org.junit.jupiter.api.Test;
 
 import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.ImmutableSortedMap;
 
 import reactor.core.publisher.Mono;
 import reactor.core.scheduler.Schedulers;
@@ -116,8 +112,7 @@ public interface KeyContract extends EventBusContract {
 
             Mono.from(eventBus().register(listener, EventBusTestFixture.KEY_1)).block();
 
-            Username bob = Username.of("bob");
-            Added noopEvent = new Added(MailboxSession.SessionId.of(18), bob, MailboxPath.forUser(bob, "mailbox"), TestId.of(58), ImmutableSortedMap.of(), Event.EventId.random());
+            Event noopEvent = new EventBusTestFixture.TestEvent(EVENT_ID, Username.of("noop"));
             eventBus().dispatch(noopEvent, EventBusTestFixture.KEY_1).block();
 
             verify(listener, after(EventBusTestFixture.FIVE_HUNDRED_MS.toMillis()).never())
diff --git a/event-bus/cassandra/pom.xml b/event-bus/cassandra/pom.xml
index 6982714..b085d77 100644
--- a/event-bus/cassandra/pom.xml
+++ b/event-bus/cassandra/pom.xml
@@ -33,11 +33,6 @@
 
     <dependencies>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>apache-james-backends-cassandra</artifactId>
         </dependency>
@@ -48,25 +43,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-event-json</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-store</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>event-bus-api</artifactId>
         </dependency>
@@ -77,6 +53,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>testcontainers</artifactId>
             <scope>test</scope>
diff --git a/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersDAOTest.java b/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersDAOTest.java
index 18fd9a6..114022d 100644
--- a/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersDAOTest.java
+++ b/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersDAOTest.java
@@ -23,10 +23,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.CassandraClusterExtension;
-import org.apache.james.event.json.MailboxEventSerializer;
-import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.model.TestMessageId;
-import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -40,7 +36,7 @@ class CassandraEventDeadLettersDAOTest {
 
     @BeforeEach
     void setUp(CassandraCluster cassandraCluster) {
-        MailboxEventSerializer eventSerializer = new MailboxEventSerializer(new TestId.Factory(), new TestMessageId.Factory(), new DefaultUserQuotaRootResolver.DefaultQuotaRootDeserializer());
+        EventSerializer eventSerializer = new EventBusTestFixture.TestEventSerializer();
         cassandraEventDeadLettersDAO = new CassandraEventDeadLettersDAO(cassandraCluster.getConf(), eventSerializer);
     }
 
diff --git a/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersHealthCheckTest.java b/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersHealthCheckTest.java
index dc2e218..7a47797 100644
--- a/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersHealthCheckTest.java
+++ b/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersHealthCheckTest.java
@@ -22,10 +22,7 @@ package org.apache.james.events;
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.CassandraClusterExtension;
 import org.apache.james.backends.cassandra.DockerCassandra;
-import org.apache.james.event.json.MailboxEventSerializer;
-import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.model.TestMessageId;
-import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
+import org.apache.james.events.EventBusTestFixture.TestEventSerializer;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
@@ -39,7 +36,7 @@ class CassandraEventDeadLettersHealthCheckTest implements EventDeadLettersHealth
 
     @BeforeEach
     void setUp(CassandraCluster cassandraCluster, DockerCassandra dockerCassandra) {
-        MailboxEventSerializer eventSerializer = new MailboxEventSerializer(new TestId.Factory(), new TestMessageId.Factory(), new DefaultUserQuotaRootResolver.DefaultQuotaRootDeserializer());
+        EventSerializer eventSerializer = new TestEventSerializer();
         eventDeadLetters = new CassandraEventDeadLetters(new CassandraEventDeadLettersDAO(cassandraCluster.getConf(), eventSerializer),
                                                          new CassandraEventDeadLettersGroupDAO(cassandraCluster.getConf()));
         testee = new EventDeadLettersHealthCheck(eventDeadLetters);
diff --git a/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersTest.java b/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersTest.java
index 8b0dd15..e9ba83a 100644
--- a/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersTest.java
+++ b/event-bus/cassandra/src/test/java/org/apache/james/events/CassandraEventDeadLettersTest.java
@@ -21,10 +21,7 @@ package org.apache.james.events;
 
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.CassandraClusterExtension;
-import org.apache.james.event.json.MailboxEventSerializer;
-import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.model.TestMessageId;
-import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
+import org.apache.james.events.EventBusTestFixture.TestEventSerializer;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
@@ -37,7 +34,7 @@ class CassandraEventDeadLettersTest implements EventDeadLettersContract.AllContr
 
     @BeforeEach
     void setUp(CassandraCluster cassandraCluster) {
-        MailboxEventSerializer eventSerializer = new MailboxEventSerializer(new TestId.Factory(), new TestMessageId.Factory(), new DefaultUserQuotaRootResolver.DefaultQuotaRootDeserializer());
+        EventSerializer eventSerializer = new TestEventSerializer();
         eventDeadLetters = new CassandraEventDeadLetters(new CassandraEventDeadLettersDAO(cassandraCluster.getConf(), eventSerializer),
                                                          new CassandraEventDeadLettersGroupDAO(cassandraCluster.getConf()));
     }
diff --git a/event-bus/distributed/pom.xml b/event-bus/distributed/pom.xml
index be6d2a1..ea6a729 100644
--- a/event-bus/distributed/pom.xml
+++ b/event-bus/distributed/pom.xml
@@ -33,30 +33,6 @@
 
     <dependencies>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-store</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-lifecycle-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-testing</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>metrics-tests</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>apache-james-backends-rabbitmq</artifactId>
         </dependency>
@@ -67,37 +43,42 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-api</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-event-json</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-in-vm</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>event-bus-api</artifactId>
+            <artifactId>james-server-lifecycle-api</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>event-bus-api</artifactId>
-            <type>test-jar</type>
+            <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>metrics-api</artifactId>
+        </dependency>
+        <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>event-bus-in-vm</artifactId>
+            <artifactId>metrics-tests</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>metrics-api</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>io.projectreactor</groupId>
diff --git a/event-bus/distributed/src/test/java/org/apache/james/events/LocalListenerRegistryTest.java b/event-bus/distributed/src/test/java/org/apache/james/events/LocalListenerRegistryTest.java
index a3de3f6..36953c6 100644
--- a/event-bus/distributed/src/test/java/org/apache/james/events/LocalListenerRegistryTest.java
+++ b/event-bus/distributed/src/test/java/org/apache/james/events/LocalListenerRegistryTest.java
@@ -26,7 +26,6 @@ import java.time.Duration;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.james.mailbox.model.TestId;
 import org.apache.james.util.concurrency.ConcurrentTestRunner;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
@@ -36,7 +35,7 @@ import reactor.core.publisher.Mono;
 import reactor.core.scheduler.Schedulers;
 
 class LocalListenerRegistryTest {
-    private static final MailboxIdRegistrationKey KEY_1 = new MailboxIdRegistrationKey(TestId.of(42));
+    private static final RegistrationKey KEY_1 = new EventBusTestFixture.TestRegistrationKey("a");
 
     private LocalListenerRegistry testee;
 
diff --git a/event-bus/distributed/src/test/java/org/apache/james/events/NetworkErrorTest.java b/event-bus/distributed/src/test/java/org/apache/james/events/NetworkErrorTest.java
index 6584860..56d903c 100644
--- a/event-bus/distributed/src/test/java/org/apache/james/events/NetworkErrorTest.java
+++ b/event-bus/distributed/src/test/java/org/apache/james/events/NetworkErrorTest.java
@@ -29,10 +29,7 @@ import static org.mockito.Mockito.verify;
 
 import org.apache.james.backends.rabbitmq.RabbitMQExtension;
 import org.apache.james.backends.rabbitmq.RabbitMQFixture;
-import org.apache.james.event.json.MailboxEventSerializer;
-import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.model.TestMessageId;
-import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
+import org.apache.james.events.EventBusTestFixture.TestEventSerializer;
 import org.apache.james.metrics.tests.RecordingMetricFactory;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
@@ -50,9 +47,9 @@ class NetworkErrorTest {
     void setUp() {
         MemoryEventDeadLetters memoryEventDeadLetters = new MemoryEventDeadLetters();
 
-        TestId.Factory mailboxIdFactory = new TestId.Factory();
-        MailboxEventSerializer eventSerializer = new MailboxEventSerializer(mailboxIdFactory, new TestMessageId.Factory(), new DefaultUserQuotaRootResolver.DefaultQuotaRootDeserializer());
-        RoutingKeyConverter routingKeyConverter = RoutingKeyConverter.forFactories(new MailboxIdRegistrationKey.Factory(mailboxIdFactory));
+
+        EventSerializer eventSerializer = new TestEventSerializer();
+        RoutingKeyConverter routingKeyConverter = RoutingKeyConverter.forFactories(new EventBusTestFixture.TestRegistrationKeyFactory());
 
         eventBus = new RabbitMQEventBus(rabbitMQExtension.getSender(), rabbitMQExtension.getReceiverProvider(),
             eventSerializer, RETRY_BACKOFF_CONFIGURATION, routingKeyConverter,
diff --git a/event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQEventBusDeadLetterQueueUpgradeTest.java b/event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQEventBusDeadLetterQueueUpgradeTest.java
index 4f46d3f..9e9f284 100644
--- a/event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQEventBusDeadLetterQueueUpgradeTest.java
+++ b/event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQEventBusDeadLetterQueueUpgradeTest.java
@@ -26,13 +26,10 @@ import static org.apache.james.events.EventBusTestFixture.RETRY_BACKOFF_CONFIGUR
 import static org.assertj.core.api.Assertions.assertThatCode;
 
 import org.apache.james.backends.rabbitmq.RabbitMQExtension;
-import org.apache.james.event.json.MailboxEventSerializer;
 import org.apache.james.events.EventBusTestFixture.GroupA;
+import org.apache.james.events.EventBusTestFixture.TestEventSerializer;
+import org.apache.james.events.EventBusTestFixture.TestRegistrationKeyFactory;
 import org.apache.james.events.GroupRegistration.WorkQueueName;
-import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.model.TestMessageId;
-import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
-import org.apache.james.mailbox.util.EventCollector;
 import org.apache.james.metrics.tests.RecordingMetricFactory;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
@@ -52,9 +49,8 @@ class RabbitMQEventBusDeadLetterQueueUpgradeTest {
     void setUp() {
         MemoryEventDeadLetters memoryEventDeadLetters = new MemoryEventDeadLetters();
 
-        TestId.Factory mailboxIdFactory = new TestId.Factory();
-        MailboxEventSerializer eventSerializer = new MailboxEventSerializer(mailboxIdFactory, new TestMessageId.Factory(), new DefaultUserQuotaRootResolver.DefaultQuotaRootDeserializer());
-        RoutingKeyConverter routingKeyConverter = RoutingKeyConverter.forFactories(new MailboxIdRegistrationKey.Factory(mailboxIdFactory));
+        EventSerializer eventSerializer = new TestEventSerializer();
+        RoutingKeyConverter routingKeyConverter = RoutingKeyConverter.forFactories(new TestRegistrationKeyFactory());
 
         eventBus = new RabbitMQEventBus(rabbitMQExtension.getSender(), rabbitMQExtension.getReceiverProvider(),
             eventSerializer, RETRY_BACKOFF_CONFIGURATION, routingKeyConverter,
diff --git a/event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQEventBusTest.java b/event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQEventBusTest.java
index fb0e353..5641089 100644
--- a/event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQEventBusTest.java
+++ b/event-bus/distributed/src/test/java/org/apache/james/events/RabbitMQEventBusTest.java
@@ -63,14 +63,12 @@ import org.apache.james.backends.rabbitmq.RabbitMQExtension.DockerRestartPolicy;
 import org.apache.james.backends.rabbitmq.RabbitMQFixture;
 import org.apache.james.backends.rabbitmq.RabbitMQManagementAPI;
 import org.apache.james.backends.rabbitmq.ReceiverProvider;
-import org.apache.james.event.json.MailboxEventSerializer;
 import org.apache.james.events.EventBusTestFixture.EventListenerCountingSuccessfulExecution;
 import org.apache.james.events.EventBusTestFixture.GroupA;
+import org.apache.james.events.EventBusTestFixture.TestEventSerializer;
+import org.apache.james.events.EventBusTestFixture.TestRegistrationKeyFactory;
 import org.apache.james.events.EventDispatcher.DispatchingFailureGroup;
 import org.apache.james.events.RoutingKeyConverter.RoutingKey;
-import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.model.TestMessageId;
-import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
 import org.apache.james.metrics.tests.RecordingMetricFactory;
 import org.apache.james.util.concurrency.ConcurrentTestRunner;
 import org.assertj.core.data.Percentage;
@@ -106,7 +104,7 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
     private RabbitMQEventBus eventBus2;
     private RabbitMQEventBus eventBus3;
     private RabbitMQEventBus eventBusWithKeyHandlerNotStarted;
-    private MailboxEventSerializer eventSerializer;
+    private EventSerializer eventSerializer;
     private RoutingKeyConverter routingKeyConverter;
     private MemoryEventDeadLetters memoryEventDeadLetters;
 
@@ -119,9 +117,8 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
     void setUp() {
         memoryEventDeadLetters = new MemoryEventDeadLetters();
 
-        TestId.Factory mailboxIdFactory = new TestId.Factory();
-        eventSerializer = new MailboxEventSerializer(mailboxIdFactory, new TestMessageId.Factory(), new DefaultUserQuotaRootResolver.DefaultQuotaRootDeserializer());
-        routingKeyConverter = RoutingKeyConverter.forFactories(new MailboxIdRegistrationKey.Factory(mailboxIdFactory));
+        eventSerializer = new TestEventSerializer();
+        routingKeyConverter = RoutingKeyConverter.forFactories(new TestRegistrationKeyFactory());
 
         eventBus = newEventBus();
         eventBus2 = newEventBus();
@@ -279,7 +276,7 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
 
     @Test
     void deserializeEventCollectorGroup() throws Exception {
-        assertThat(Group.deserialize("org.apache.james.mailbox.util.EventCollector$EventCollectorGroup"))
+        assertThat(Group.deserialize("org.apache.james.events.EventCollector$EventCollectorGroup"))
             .isEqualTo(new EventCollector.EventCollectorGroup());
     }
 
@@ -417,8 +414,7 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
                     .blockFirst()
                     .getBody();
 
-                return eventSerializer.fromJson(new String(eventInBytes, StandardCharsets.UTF_8))
-                    .get();
+                return eventSerializer.asEvent(new String(eventInBytes, StandardCharsets.UTF_8));
             }
         }
     }
diff --git a/event-bus/distributed/src/test/java/org/apache/james/events/RoutingKeyConverterTest.java b/event-bus/distributed/src/test/java/org/apache/james/events/RoutingKeyConverterTest.java
index d07d95a..f41bfa3 100644
--- a/event-bus/distributed/src/test/java/org/apache/james/events/RoutingKeyConverterTest.java
+++ b/event-bus/distributed/src/test/java/org/apache/james/events/RoutingKeyConverterTest.java
@@ -24,26 +24,27 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import java.util.Objects;
 
-import org.apache.james.mailbox.model.TestId;
+import org.apache.james.events.EventBusTestFixture.TestRegistrationKey;
+import org.apache.james.events.EventBusTestFixture.TestRegistrationKeyFactory;
 import org.junit.jupiter.api.Test;
 
 class RoutingKeyConverterTest {
-    static class TestRegistrationKey implements RegistrationKey {
+    static class OtherTestRegistrationKey implements RegistrationKey {
         static class Factory implements RegistrationKey.Factory {
             @Override
             public Class<? extends RegistrationKey> forClass() {
-                return TestRegistrationKey.class;
+                return OtherTestRegistrationKey.class;
             }
 
             @Override
             public RegistrationKey fromString(String asString) {
-                return new TestRegistrationKey(asString);
+                return new OtherTestRegistrationKey(asString);
             }
         }
 
         private final String value;
 
-        TestRegistrationKey(String value) {
+        OtherTestRegistrationKey(String value) {
             this.value = value;
         }
 
@@ -54,8 +55,8 @@ class RoutingKeyConverterTest {
 
         @Override
         public final boolean equals(Object o) {
-            if (o instanceof TestRegistrationKey) {
-                TestRegistrationKey that = (TestRegistrationKey) o;
+            if (o instanceof OtherTestRegistrationKey) {
+                OtherTestRegistrationKey that = (OtherTestRegistrationKey) o;
 
                 return Objects.equals(this.value, that.value);
             }
@@ -68,12 +69,12 @@ class RoutingKeyConverterTest {
         }
     }
 
-    private static final RegistrationKey REGISTRATION_KEY_1 = new MailboxIdRegistrationKey(TestId.of(42));
-    private static final String ROUTING_KEY_1 = "org.apache.james.mailbox.events.MailboxIdRegistrationKey:42";
+    private static final RegistrationKey REGISTRATION_KEY_1 = new TestRegistrationKey("a");
+    private static final String ROUTING_KEY_1 = "org.apache.james.events.EventBusTestFixture$TestRegistrationKey:a";
 
     private RoutingKeyConverter testee = RoutingKeyConverter.forFactories(
-        new TestRegistrationKey.Factory(),
-        new MailboxIdRegistrationKey.Factory(new TestId.Factory()));
+        new OtherTestRegistrationKey.Factory(),
+        new TestRegistrationKeyFactory());
 
     @Test
     void toRoutingKeyShouldTransformAKeyIntoAString() {
@@ -89,26 +90,26 @@ class RoutingKeyConverterTest {
 
     @Test
     void toRoutingKeyShouldAcceptSeparator() {
-        assertThat(RoutingKeyConverter.RoutingKey.of(new TestRegistrationKey("a:b")).asString())
-            .isEqualTo("org.apache.james.mailbox.events.RoutingKeyConverterTest$TestRegistrationKey:a:b");
+        assertThat(RoutingKeyConverter.RoutingKey.of(new OtherTestRegistrationKey("a:b")).asString())
+            .isEqualTo("org.apache.james.events.RoutingKeyConverterTest$OtherTestRegistrationKey:a:b");
     }
 
     @Test
     void toRegistrationKeyShouldAcceptSeparator() {
-        assertThat(testee.toRegistrationKey("org.apache.james.mailbox.events.RoutingKeyConverterTest$TestRegistrationKey:a:b"))
-            .isEqualTo(new TestRegistrationKey("a:b"));
+        assertThat(testee.toRegistrationKey("org.apache.james.events.RoutingKeyConverterTest$OtherTestRegistrationKey:a:b"))
+            .isEqualTo(new OtherTestRegistrationKey("a:b"));
     }
 
     @Test
     void toRoutingKeyShouldAcceptEmptyValue() {
-        assertThat(RoutingKeyConverter.RoutingKey.of(new TestRegistrationKey("")).asString())
-            .isEqualTo("org.apache.james.mailbox.events.RoutingKeyConverterTest$TestRegistrationKey:");
+        assertThat(RoutingKeyConverter.RoutingKey.of(new OtherTestRegistrationKey("")).asString())
+            .isEqualTo("org.apache.james.events.RoutingKeyConverterTest$OtherTestRegistrationKey:");
     }
 
     @Test
     void toRegistrationKeyShouldAcceptEmptyValue() {
-        assertThat(testee.toRegistrationKey("org.apache.james.mailbox.events.RoutingKeyConverterTest$TestRegistrationKey:"))
-            .isEqualTo(new TestRegistrationKey(""));
+        assertThat(testee.toRegistrationKey("org.apache.james.events.RoutingKeyConverterTest$OtherTestRegistrationKey:"))
+            .isEqualTo(new OtherTestRegistrationKey(""));
     }
 
     @Test
diff --git a/event-bus/in-vm/pom.xml b/event-bus/in-vm/pom.xml
index 69208ba..00a3536 100644
--- a/event-bus/in-vm/pom.xml
+++ b/event-bus/in-vm/pom.xml
@@ -34,32 +34,22 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>metrics-tests</artifactId>
-            <scope>test</scope>
+            <artifactId>event-bus-api</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
+            <artifactId>event-bus-api</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>event-bus-api</artifactId>
+            <artifactId>metrics-tests</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>event-bus-api</artifactId>
-            <type>test-jar</type>
+            <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
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 c420f61..a32c06e 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
@@ -39,7 +39,6 @@ import org.apache.james.core.quota.QuotaCountUsage;
 import org.apache.james.core.quota.QuotaSizeLimit;
 import org.apache.james.core.quota.QuotaSizeUsage;
 import org.apache.james.events.EventBus;
-import org.apache.james.events.EventBusTestFixture;
 import org.apache.james.events.InVMEventBus;
 import org.apache.james.events.MailboxEvents.Added;
 import org.apache.james.events.MailboxEvents.Expunged;
@@ -110,7 +109,7 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
 
     @BeforeEach
     void setUp() throws Exception {
-        eventBus = new InVMEventBus(new InVmEventDelivery(new RecordingMetricFactory()), EventBusTestFixture.RETRY_BACKOFF_CONFIGURATION, new MemoryEventDeadLetters());
+        eventBus = new InVMEventBus(new InVmEventDelivery(new RecordingMetricFactory()), StoreMailboxManagerTest.RETRY_BACKOFF_CONFIGURATION, 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 2126d3f..2eec7fc 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
@@ -26,9 +26,9 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import org.apache.james.core.Username;
-import org.apache.james.events.EventBusTestFixture;
 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.AttachmentContentLoader;
 import org.apache.james.mailbox.MailboxSession;
@@ -72,6 +72,13 @@ 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;
@@ -89,7 +96,7 @@ class StoreMailboxManagerTest {
         authenticator.addUser(CURRENT_USER, CURRENT_USER_PASSWORD);
         authenticator.addUser(ADMIN, ADMIN_PASSWORD);
 
-        InVMEventBus eventBus = new InVMEventBus(new InVmEventDelivery(new RecordingMetricFactory()), EventBusTestFixture.RETRY_BACKOFF_CONFIGURATION, new MemoryEventDeadLetters());
+        InVMEventBus eventBus = new InVMEventBus(new InVmEventDelivery(new RecordingMetricFactory()), RETRY_BACKOFF_CONFIGURATION, new MemoryEventDeadLetters());
 
         StoreRightManager storeRightManager = new StoreRightManager(mockedMapperFactory, new UnionMailboxACLResolver(),
                                                                     new SimpleGroupMembershipResolver(), eventBus);


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