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:31 UTC

[james-project] 05/18: JAMES-3498 Move the event-bus contracts out of mailbox-api

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 a76f45fff45534295cdbed240e9b781498f99b05
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Jan 25 14:24:03 2021 +0700

    JAMES-3498 Move the event-bus contracts out of mailbox-api
---
 event-bus/api/pom.xml                              | 41 +++++++++++++++++++++
 .../james/events/RetryBackoffConfiguration.java    |  0
 .../apache/james/events/ErrorHandlingContract.java |  1 -
 .../events/EventBusConcurrentTestContract.java     |  0
 .../org/apache/james/events/EventBusContract.java  |  0
 .../apache/james/events/EventBusTestFixture.java   |  2 +-
 .../org/apache/james/events/EventCollector.java    | 42 ++++++++++------------
 .../james/events/EventDeadLettersContract.java     |  2 +-
 .../EventDeadLettersHealthCheckContract.java       |  2 +-
 .../org/apache/james/events/GroupContract.java     |  2 +-
 .../java/org/apache/james/events/GroupTest.java    |  4 +--
 .../org/apache/james/events/InsertionIdTest.java   |  1 -
 .../java/org/apache/james/events/KeyContract.java  |  2 +-
 .../events/RetryBackoffConfigurationTest.java      |  0
 event-bus/cassandra/pom.xml                        | 10 ++++++
 event-bus/distributed/pom.xml                      | 10 ++++++
 event-bus/in-vm/pom.xml                            | 10 ++++++
 mailbox/maildir/pom.xml                            |  6 ++++
 pom.xml                                            |  6 ++++
 protocols/imap/pom.xml                             |  6 ++++
 20 files changed, 115 insertions(+), 32 deletions(-)

diff --git a/event-bus/api/pom.xml b/event-bus/api/pom.xml
index cbf7cc8..df7be49 100644
--- a/event-bus/api/pom.xml
+++ b/event-bus/api/pom.xml
@@ -34,9 +34,35 @@
     <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>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-util</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>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
@@ -48,5 +74,20 @@
             <groupId>javax.inject</groupId>
             <artifactId>javax.inject</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>java-hamcrest</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 </project>
\ No newline at end of file
diff --git a/mailbox/api/src/main/java/org/apache/james/events/RetryBackoffConfiguration.java b/event-bus/api/src/main/java/org/apache/james/events/RetryBackoffConfiguration.java
similarity index 100%
rename from mailbox/api/src/main/java/org/apache/james/events/RetryBackoffConfiguration.java
rename to event-bus/api/src/main/java/org/apache/james/events/RetryBackoffConfiguration.java
diff --git a/mailbox/api/src/test/java/org/apache/james/events/ErrorHandlingContract.java b/event-bus/api/src/test/java/org/apache/james/events/ErrorHandlingContract.java
similarity index 99%
rename from mailbox/api/src/test/java/org/apache/james/events/ErrorHandlingContract.java
rename to event-bus/api/src/test/java/org/apache/james/events/ErrorHandlingContract.java
index 3d20090..76c25a8 100644
--- a/mailbox/api/src/test/java/org/apache/james/events/ErrorHandlingContract.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/ErrorHandlingContract.java
@@ -37,7 +37,6 @@ import java.util.List;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.apache.james.mailbox.util.EventCollector;
 import org.assertj.core.api.SoftAssertions;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
diff --git a/mailbox/api/src/test/java/org/apache/james/events/EventBusConcurrentTestContract.java b/event-bus/api/src/test/java/org/apache/james/events/EventBusConcurrentTestContract.java
similarity index 100%
rename from mailbox/api/src/test/java/org/apache/james/events/EventBusConcurrentTestContract.java
rename to event-bus/api/src/test/java/org/apache/james/events/EventBusConcurrentTestContract.java
diff --git a/mailbox/api/src/test/java/org/apache/james/events/EventBusContract.java b/event-bus/api/src/test/java/org/apache/james/events/EventBusContract.java
similarity index 100%
rename from mailbox/api/src/test/java/org/apache/james/events/EventBusContract.java
rename to event-bus/api/src/test/java/org/apache/james/events/EventBusContract.java
diff --git a/mailbox/api/src/test/java/org/apache/james/events/EventBusTestFixture.java b/event-bus/api/src/test/java/org/apache/james/events/EventBusTestFixture.java
similarity index 100%
rename from mailbox/api/src/test/java/org/apache/james/events/EventBusTestFixture.java
rename to event-bus/api/src/test/java/org/apache/james/events/EventBusTestFixture.java
index e415382..9398247 100644
--- a/mailbox/api/src/test/java/org/apache/james/events/EventBusTestFixture.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/EventBusTestFixture.java
@@ -28,10 +28,10 @@ import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.james.core.Username;
-import org.apache.james.mailbox.MailboxSession;
 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;
diff --git a/mailbox/api/src/test/java/org/apache/james/events/InsertionIdTest.java b/event-bus/api/src/test/java/org/apache/james/events/EventCollector.java
similarity index 53%
copy from mailbox/api/src/test/java/org/apache/james/events/InsertionIdTest.java
copy to event-bus/api/src/test/java/org/apache/james/events/EventCollector.java
index d592590..077e61b 100644
--- a/mailbox/api/src/test/java/org/apache/james/events/InsertionIdTest.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/EventCollector.java
@@ -19,39 +19,35 @@
 
 package org.apache.james.events;
 
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import java.util.Collection;
+import java.util.concurrent.ConcurrentLinkedDeque;
 
-import java.util.UUID;
+public class EventCollector implements EventListener.GroupEventListener {
+    public static class EventCollectorGroup extends Group {
 
-import org.apache.james.events.EventDeadLetters;
-import org.junit.jupiter.api.Test;
+    }
 
-import nl.jqno.equalsverifier.EqualsVerifier;
+    private static final Group GROUP = new EventCollectorGroup();
 
-class InsertionIdTest {
-    private static final UUID UUID_1 = UUID.fromString("6e0dd59d-660e-4d9b-b22f-0354479f47b4");
+    private final ConcurrentLinkedDeque<Event> events = new ConcurrentLinkedDeque<>();
 
-    @Test
-    void eventIdShouldMatchBeanContract() {
-        EqualsVerifier.forClass(EventDeadLetters.InsertionId.class).verify();
+    @Override
+    public Group getDefaultGroup() {
+        return GROUP;
     }
 
-    @Test
-    void ofShouldDeserializeUUIDs() {
-        assertThat(EventDeadLetters.InsertionId.of(UUID_1.toString()))
-            .isEqualTo(EventDeadLetters.InsertionId.of(UUID_1));
+    public Collection<Event> getEvents() {
+        return events;
     }
 
-    @Test
-    void ofStringShouldThrowOnNullValue() {
-        assertThatThrownBy(() -> EventDeadLetters.InsertionId.of((String) null))
-            .isInstanceOf(NullPointerException.class);
+    @Override
+    public boolean isHandling(Event event) {
+        return true;
     }
 
-    @Test
-    void ofUuidShouldThrowOnNullValue() {
-        assertThatThrownBy(() -> EventDeadLetters.InsertionId.of((UUID) null))
-            .isInstanceOf(NullPointerException.class);
+    @Override
+    public void event(Event event) {
+        events.add(event);
     }
+
 }
diff --git a/mailbox/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java b/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java
similarity index 99%
rename from mailbox/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java
rename to event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java
index c8f158c..88b674d 100644
--- a/mailbox/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersContract.java
@@ -31,8 +31,8 @@ import java.util.stream.IntStream;
 import java.util.stream.Stream;
 
 import org.apache.james.core.Username;
-import org.apache.james.mailbox.MailboxSession;
 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;
diff --git a/mailbox/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java b/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java
similarity index 100%
rename from mailbox/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java
rename to event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java
index 6e4dc63..7a0b5d5 100644
--- a/mailbox/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/EventDeadLettersHealthCheckContract.java
@@ -24,8 +24,8 @@ 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.mailbox.MailboxSession;
 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;
diff --git a/mailbox/api/src/test/java/org/apache/james/events/GroupContract.java b/event-bus/api/src/test/java/org/apache/james/events/GroupContract.java
similarity index 100%
rename from mailbox/api/src/test/java/org/apache/james/events/GroupContract.java
rename to event-bus/api/src/test/java/org/apache/james/events/GroupContract.java
index 648b6e2..dc97bfb 100644
--- a/mailbox/api/src/test/java/org/apache/james/events/GroupContract.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/GroupContract.java
@@ -38,8 +38,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.IntStream;
 
 import org.apache.james.core.Username;
-import org.apache.james.mailbox.MailboxSession;
 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;
diff --git a/mailbox/api/src/test/java/org/apache/james/events/GroupTest.java b/event-bus/api/src/test/java/org/apache/james/events/GroupTest.java
similarity index 96%
rename from mailbox/api/src/test/java/org/apache/james/events/GroupTest.java
rename to event-bus/api/src/test/java/org/apache/james/events/GroupTest.java
index 1b02148..5326e3f 100644
--- a/mailbox/api/src/test/java/org/apache/james/events/GroupTest.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/GroupTest.java
@@ -76,7 +76,7 @@ class GroupTest {
 
     @Test
     void asStringShouldReturnFqdnByDefault() {
-        assertThat(new EventBusTestFixture.GroupA().asString()).isEqualTo("org.apache.james.mailbox.events.EventBusTestFixture$GroupA");
+        assertThat(new EventBusTestFixture.GroupA().asString()).isEqualTo("org.apache.james.events.EventBusTestFixture$GroupA");
     }
 
     @Test
@@ -98,7 +98,7 @@ class GroupTest {
 
     @Test
     void deserializeShouldReturnGroupWhenExtendsGroup() throws Exception {
-        assertThat(Group.deserialize("org.apache.james.mailbox.events.EventBusTestFixture$GroupA"))
+        assertThat(Group.deserialize("org.apache.james.events.EventBusTestFixture$GroupA"))
             .isEqualTo(new EventBusTestFixture.GroupA());
     }
 
diff --git a/mailbox/api/src/test/java/org/apache/james/events/InsertionIdTest.java b/event-bus/api/src/test/java/org/apache/james/events/InsertionIdTest.java
similarity index 97%
rename from mailbox/api/src/test/java/org/apache/james/events/InsertionIdTest.java
rename to event-bus/api/src/test/java/org/apache/james/events/InsertionIdTest.java
index d592590..bcc5a61 100644
--- a/mailbox/api/src/test/java/org/apache/james/events/InsertionIdTest.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/InsertionIdTest.java
@@ -24,7 +24,6 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import java.util.UUID;
 
-import org.apache.james.events.EventDeadLetters;
 import org.junit.jupiter.api.Test;
 
 import nl.jqno.equalsverifier.EqualsVerifier;
diff --git a/mailbox/api/src/test/java/org/apache/james/events/KeyContract.java b/event-bus/api/src/test/java/org/apache/james/events/KeyContract.java
similarity index 100%
rename from mailbox/api/src/test/java/org/apache/james/events/KeyContract.java
rename to event-bus/api/src/test/java/org/apache/james/events/KeyContract.java
index 9eb4819..6b2ae6b 100644
--- a/mailbox/api/src/test/java/org/apache/james/events/KeyContract.java
+++ b/event-bus/api/src/test/java/org/apache/james/events/KeyContract.java
@@ -40,8 +40,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.IntStream;
 
 import org.apache.james.core.Username;
-import org.apache.james.mailbox.MailboxSession;
 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;
diff --git a/mailbox/api/src/test/java/org/apache/james/events/RetryBackoffConfigurationTest.java b/event-bus/api/src/test/java/org/apache/james/events/RetryBackoffConfigurationTest.java
similarity index 100%
rename from mailbox/api/src/test/java/org/apache/james/events/RetryBackoffConfigurationTest.java
rename to event-bus/api/src/test/java/org/apache/james/events/RetryBackoffConfigurationTest.java
diff --git a/event-bus/cassandra/pom.xml b/event-bus/cassandra/pom.xml
index 12763a8..6982714 100644
--- a/event-bus/cassandra/pom.xml
+++ b/event-bus/cassandra/pom.xml
@@ -67,6 +67,16 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-api</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>testcontainers</artifactId>
             <scope>test</scope>
diff --git a/event-bus/distributed/pom.xml b/event-bus/distributed/pom.xml
index 9bd7f5c..be6d2a1 100644
--- a/event-bus/distributed/pom.xml
+++ b/event-bus/distributed/pom.xml
@@ -82,6 +82,16 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-api</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>event-bus-in-vm</artifactId>
             <scope>test</scope>
         </dependency>
diff --git a/event-bus/in-vm/pom.xml b/event-bus/in-vm/pom.xml
index a0a178c..69208ba 100644
--- a/event-bus/in-vm/pom.xml
+++ b/event-bus/in-vm/pom.xml
@@ -53,6 +53,16 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-api</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>james-server-util</artifactId>
         </dependency>
diff --git a/mailbox/maildir/pom.xml b/mailbox/maildir/pom.xml
index 562dcca..f42b5e8 100644
--- a/mailbox/maildir/pom.xml
+++ b/mailbox/maildir/pom.xml
@@ -48,6 +48,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-api</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>event-bus-in-vm</artifactId>
             <scope>test</scope>
         </dependency>
diff --git a/pom.xml b/pom.xml
index 146ba5a..dd59b37 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1156,6 +1156,12 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
+                <artifactId>event-bus-api</artifactId>
+                <type>test-jar</type>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
                 <artifactId>event-bus-distributed</artifactId>
                 <version>${project.version}</version>
             </dependency>
diff --git a/protocols/imap/pom.xml b/protocols/imap/pom.xml
index 4d44ce1..91bd67c 100644
--- a/protocols/imap/pom.xml
+++ b/protocols/imap/pom.xml
@@ -50,6 +50,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>event-bus-api</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>


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