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 1c67aca05f4a3904317fc3e3cde3488bb71fe53d Author: Rémi KOWALSKI <rkowal...@linagora.com> AuthorDate: Wed Nov 20 16:16:11 2019 +0100 JAMES-2979 add test to demonstrate spooler issue with activeMQ --- .../apache/james/WithCassandraBlobStoreTest.java | 6 ++++ .../apache/james/MailsShouldBeWellReceived.java | 34 ++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java index 7157928..39790a7 100644 --- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java +++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java @@ -22,6 +22,7 @@ package org.apache.james; import org.apache.james.jmap.draft.JmapJamesServerContract; import org.apache.james.jmap.draft.methods.integration.SpamAssassinModuleExtension; import org.apache.james.modules.TestJMAPServerModule; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.extension.RegisterExtension; class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract { @@ -40,4 +41,9 @@ class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShould .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE)) .build(); + + @Override + @Disabled("Fail to spool some mail at the same time with activeMQ") + public void twoHundredMailsShouldBeWellReceived(GuiceJamesServer server) throws Exception { + } } diff --git a/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java b/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java index 99822cc..0088658 100644 --- a/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java +++ b/server/container/guice/guice-common/src/test/java/org/apache/james/MailsShouldBeWellReceived.java @@ -19,6 +19,8 @@ package org.apache.james; +import java.util.UUID; + import org.apache.james.core.Domain; import org.apache.james.modules.protocols.ImapGuiceProbe; import org.apache.james.modules.protocols.SmtpGuiceProbe; @@ -31,6 +33,10 @@ import org.awaitility.Duration; import org.awaitility.core.ConditionFactory; import org.junit.jupiter.api.Test; +import com.github.fge.lambdas.runnable.ThrowingRunnable; +import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; + interface MailsShouldBeWellReceived { String JAMES_SERVER_HOST = "127.0.0.1"; @@ -42,6 +48,8 @@ interface MailsShouldBeWellReceived { .and().pollDelay(Duration.ONE_HUNDRED_MILLISECONDS) .await(); + ConditionFactory CALMLY_AWAIT_FIVE_MINUTE = CALMLY_AWAIT.timeout(Duration.FIVE_MINUTES); + @Test default void mailsShouldBeWellReceived(GuiceJamesServer server) throws Exception { server.getProbe(DataProbeImpl.class).fluent() @@ -63,4 +71,30 @@ interface MailsShouldBeWellReceived { } } + @Test + default void twoHundredMailsShouldBeWellReceived(GuiceJamesServer server) throws Exception { + server.getProbe(DataProbeImpl.class).fluent() + .addDomain(DOMAIN) + .addUser(JAMES_USER, PASSWORD); + + int messageCount = 200; + + try (SMTPMessageSender sender = new SMTPMessageSender(Domain.LOCALHOST.asString())) { + Mono.fromRunnable(((ThrowingRunnable) () -> + sender.connect(JAMES_SERVER_HOST, server.getProbe(SmtpGuiceProbe.class).getSmtpPort()) + .sendMessageWithHeaders("b...@any.com", JAMES_USER, "UUID " + UUID.randomUUID().toString()))) + .repeat(messageCount - 1) + .subscribeOn(Schedulers.elastic()) + .blockLast(); + } + + CALMLY_AWAIT_FIVE_MINUTE.until(() -> server.getProbe(SpoolerProbe.class).processingFinished()); + + try (IMAPMessageReader reader = new IMAPMessageReader()) { + reader.connect(JAMES_SERVER_HOST, server.getProbe(ImapGuiceProbe.class).getImapPort()) + .login(JAMES_USER, PASSWORD) + .select(IMAPMessageReader.INBOX) + .awaitMessageCount(CALMLY_AWAIT_FIVE_MINUTE, messageCount); + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org