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