JAMES-2641 IMAP components should use the EventBus directly This enables the MailboxManager to no more be an EventBus proxy
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/4c14a757 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4c14a757 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4c14a757 Branch: refs/heads/master Commit: 4c14a757d46267827932474f17870aea50745971 Parents: f398e3f Author: Benoit Tellier <btell...@linagora.com> Authored: Thu Jan 10 15:57:25 2019 +0700 Committer: Benoit Tellier <btell...@linagora.com> Committed: Thu Jan 17 10:23:41 2019 +0700 ---------------------------------------------------------------------- .../james/mailbox/MailboxManagerStressTest.java | 13 ++++++++----- .../cassandra/CassandraMailboxManagerStressTest.java | 12 ++++++++---- .../mailbox/jpa/JpaMailboxManagerStressTest.java | 14 +++++++++----- .../DomainUserMaildirMailboxManagerStressTest.java | 11 ++++++++--- .../FullUserMaildirMailboxManagerStressTest.java | 12 ++++++++---- .../maildir/UserMaildirMailboxManagerStressTest.java | 12 ++++++++---- .../inmemory/MemoryMailboxManagerStressTest.java | 12 ++++++++---- 7 files changed, 57 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/4c14a757/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java index d769815..12dcce1 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerStressTest.java @@ -31,6 +31,8 @@ import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; +import org.apache.james.mailbox.events.EventBus; +import org.apache.james.mailbox.events.MailboxIdRegistrationKey; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.ComposedMessageId; import org.apache.james.mailbox.model.MailboxId; @@ -41,14 +43,15 @@ import org.junit.Test; import com.google.common.collect.ImmutableSet; -public abstract class MailboxManagerStressTest { +public abstract class MailboxManagerStressTest<T extends MailboxManager> { private static final int APPEND_OPERATIONS = 200; - private MailboxManager mailboxManager; + private T mailboxManager; - protected abstract MailboxManager provideManager() throws MailboxException; + protected abstract T provideManager() throws MailboxException; + protected abstract EventBus retrieveEventBus(T mailboxManager); public void setUp() throws Exception { this.mailboxManager = provideManager(); @@ -66,11 +69,11 @@ public abstract class MailboxManagerStressTest { mailboxManager.startProcessingRequest(session); MailboxPath path = MailboxPath.forUser(username, "INBOX"); MailboxId mailboxId = mailboxManager.createMailbox(path, session).get(); - mailboxManager.register( + retrieveEventBus(mailboxManager).register( event -> { MessageUid u = ((MailboxListener.Added) event).getUids().iterator().next(); uList.add(u); - }, mailboxId); + }, new MailboxIdRegistrationKey(mailboxId)); mailboxManager.endProcessingRequest(session); mailboxManager.logout(session, false); http://git-wip-us.apache.org/repos/asf/james-project/blob/4c14a757/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerStressTest.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerStressTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerStressTest.java index 75b7b3c..94d3092 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerStressTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerStressTest.java @@ -21,16 +21,16 @@ package org.apache.james.mailbox.cassandra; import org.apache.james.backends.cassandra.CassandraCluster; import org.apache.james.backends.cassandra.DockerCassandraRule; -import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxManagerStressTest; import org.apache.james.mailbox.cassandra.mail.MailboxAggregateModule; +import org.apache.james.mailbox.events.EventBus; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.ClassRule; -public class CassandraMailboxManagerStressTest extends MailboxManagerStressTest { +public class CassandraMailboxManagerStressTest extends MailboxManagerStressTest<CassandraMailboxManager> { @ClassRule public static DockerCassandraRule cassandraServer = new DockerCassandraRule(); @@ -47,13 +47,17 @@ public class CassandraMailboxManagerStressTest extends MailboxManagerStressTest } @Override - protected MailboxManager provideManager() { + protected CassandraMailboxManager provideManager() { return CassandraMailboxManagerProvider.provideMailboxManager(cassandra.getConf(), cassandra.getTypesProvider()); } + @Override + protected EventBus retrieveEventBus(CassandraMailboxManager mailboxManager) { + return mailboxManager.getEventBus(); + } @After - public void tearDown() throws Exception { + public void tearDown() { cassandra.clearTables(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/4c14a757/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java index 758bd66..f3a262a 100644 --- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java +++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/JpaMailboxManagerStressTest.java @@ -22,14 +22,13 @@ package org.apache.james.mailbox.jpa; import java.util.Optional; import org.apache.james.backends.jpa.JpaTestCluster; -import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxManagerStressTest; -import org.apache.james.mailbox.exception.MailboxException; +import org.apache.james.mailbox.events.EventBus; import org.apache.james.mailbox.jpa.openjpa.OpenJPAMailboxManager; import org.junit.After; import org.junit.Before; -public class JpaMailboxManagerStressTest extends MailboxManagerStressTest { +public class JpaMailboxManagerStressTest extends MailboxManagerStressTest<OpenJPAMailboxManager> { private static final JpaTestCluster JPA_TEST_CLUSTER = JpaTestCluster.create(JPAMailboxFixture.MAILBOX_PERSISTANCE_CLASSES); private Optional<OpenJPAMailboxManager> openJPAMailboxManager = Optional.empty(); @@ -41,15 +40,20 @@ public class JpaMailboxManagerStressTest extends MailboxManagerStressTest { } @Override - protected MailboxManager provideManager() { + protected OpenJPAMailboxManager provideManager() { if (!openJPAMailboxManager.isPresent()) { openJPAMailboxManager = Optional.of(JpaMailboxManagerProvider.provideMailboxManager(JPA_TEST_CLUSTER)); } return openJPAMailboxManager.get(); } + @Override + protected EventBus retrieveEventBus(OpenJPAMailboxManager mailboxManager) { + return mailboxManager.getEventBus(); + } + @After - public void tearDown() throws MailboxException { + public void tearDown() { JPA_TEST_CLUSTER.clear(JPAMailboxFixture.MAILBOX_TABLE_NAMES); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/4c14a757/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/DomainUserMaildirMailboxManagerStressTest.java ---------------------------------------------------------------------- diff --git a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/DomainUserMaildirMailboxManagerStressTest.java b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/DomainUserMaildirMailboxManagerStressTest.java index 6e385e2..aaa895c 100644 --- a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/DomainUserMaildirMailboxManagerStressTest.java +++ b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/DomainUserMaildirMailboxManagerStressTest.java @@ -19,13 +19,14 @@ package org.apache.james.mailbox.maildir; -import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxManagerStressTest; +import org.apache.james.mailbox.events.EventBus; +import org.apache.james.mailbox.store.StoreMailboxManager; import org.junit.Before; import org.junit.Rule; import org.junit.rules.TemporaryFolder; -public class DomainUserMaildirMailboxManagerStressTest extends MailboxManagerStressTest { +public class DomainUserMaildirMailboxManagerStressTest extends MailboxManagerStressTest<StoreMailboxManager> { @Rule public TemporaryFolder tmpFolder = new TemporaryFolder(); @@ -36,7 +37,7 @@ public class DomainUserMaildirMailboxManagerStressTest extends MailboxManagerStr } @Override - protected MailboxManager provideManager() { + protected StoreMailboxManager provideManager() { try { return MaildirMailboxManagerProvider.createMailboxManager("/%domain/%user", tmpFolder); } catch (Exception e) { @@ -44,4 +45,8 @@ public class DomainUserMaildirMailboxManagerStressTest extends MailboxManagerStr } } + @Override + protected EventBus retrieveEventBus(StoreMailboxManager mailboxManager) { + return mailboxManager.getEventBus(); + } } http://git-wip-us.apache.org/repos/asf/james-project/blob/4c14a757/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/FullUserMaildirMailboxManagerStressTest.java ---------------------------------------------------------------------- diff --git a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/FullUserMaildirMailboxManagerStressTest.java b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/FullUserMaildirMailboxManagerStressTest.java index dafe7e0..5eacedc 100644 --- a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/FullUserMaildirMailboxManagerStressTest.java +++ b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/FullUserMaildirMailboxManagerStressTest.java @@ -19,13 +19,14 @@ package org.apache.james.mailbox.maildir; -import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxManagerStressTest; +import org.apache.james.mailbox.events.EventBus; +import org.apache.james.mailbox.store.StoreMailboxManager; import org.junit.Before; import org.junit.Rule; import org.junit.rules.TemporaryFolder; -public class FullUserMaildirMailboxManagerStressTest extends MailboxManagerStressTest { +public class FullUserMaildirMailboxManagerStressTest extends MailboxManagerStressTest<StoreMailboxManager> { @Rule public TemporaryFolder tmpFolder = new TemporaryFolder(); @@ -36,7 +37,7 @@ public class FullUserMaildirMailboxManagerStressTest extends MailboxManagerStres } @Override - protected MailboxManager provideManager() { + protected StoreMailboxManager provideManager() { try { return MaildirMailboxManagerProvider.createMailboxManager("/%fulluser", tmpFolder); } catch (Exception e) { @@ -44,5 +45,8 @@ public class FullUserMaildirMailboxManagerStressTest extends MailboxManagerStres } } - + @Override + protected EventBus retrieveEventBus(StoreMailboxManager mailboxManager) { + return mailboxManager.getEventBus(); + } } http://git-wip-us.apache.org/repos/asf/james-project/blob/4c14a757/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/UserMaildirMailboxManagerStressTest.java ---------------------------------------------------------------------- diff --git a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/UserMaildirMailboxManagerStressTest.java b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/UserMaildirMailboxManagerStressTest.java index 05f55fe..457f12d 100644 --- a/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/UserMaildirMailboxManagerStressTest.java +++ b/mailbox/maildir/src/test/java/org/apache/james/mailbox/maildir/UserMaildirMailboxManagerStressTest.java @@ -19,13 +19,14 @@ package org.apache.james.mailbox.maildir; -import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxManagerStressTest; +import org.apache.james.mailbox.events.EventBus; +import org.apache.james.mailbox.store.StoreMailboxManager; import org.junit.Before; import org.junit.Rule; import org.junit.rules.TemporaryFolder; -public class UserMaildirMailboxManagerStressTest extends MailboxManagerStressTest { +public class UserMaildirMailboxManagerStressTest extends MailboxManagerStressTest<StoreMailboxManager> { @Rule public TemporaryFolder tmpFolder = new TemporaryFolder(); @@ -36,7 +37,7 @@ public class UserMaildirMailboxManagerStressTest extends MailboxManagerStressTes } @Override - protected MailboxManager provideManager() { + protected StoreMailboxManager provideManager() { try { return MaildirMailboxManagerProvider.createMailboxManager("/%user", tmpFolder); } catch (Exception e) { @@ -44,5 +45,8 @@ public class UserMaildirMailboxManagerStressTest extends MailboxManagerStressTes } } - + @Override + protected EventBus retrieveEventBus(StoreMailboxManager mailboxManager) { + return mailboxManager.getEventBus(); + } } http://git-wip-us.apache.org/repos/asf/james-project/blob/4c14a757/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerStressTest.java ---------------------------------------------------------------------- diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerStressTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerStressTest.java index bc0f1e3..f264ef3 100644 --- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerStressTest.java +++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/MemoryMailboxManagerStressTest.java @@ -19,12 +19,11 @@ package org.apache.james.mailbox.inmemory; -import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxManagerStressTest; -import org.apache.james.mailbox.exception.MailboxException; +import org.apache.james.mailbox.events.EventBus; import org.junit.Before; -public class MemoryMailboxManagerStressTest extends MailboxManagerStressTest { +public class MemoryMailboxManagerStressTest extends MailboxManagerStressTest<InMemoryMailboxManager> { @Override @Before @@ -33,7 +32,12 @@ public class MemoryMailboxManagerStressTest extends MailboxManagerStressTest { } @Override - protected MailboxManager provideManager() throws MailboxException { + protected InMemoryMailboxManager provideManager() { return MemoryMailboxManagerProvider.provideMailboxManager(); } + + @Override + protected EventBus retrieveEventBus(InMemoryMailboxManager mailboxManager) { + return mailboxManager.getEventBus(); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org