You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/07/23 01:38:50 UTC

[james-project] branch master updated (8da802e -> 8a4afcf)

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git.


    from 8da802e  JAMES-3309 Avoid a NPE in FetchProcessor when SelectedMailbox is unselected
     new 396c012  JAMES-2813 Disable unstable test
     new d41ccba  JAMES-3083 Disable unstable test in RabbitMQEventBusTest
     new ab10167  JAMES-3083 Disable unstable test in RabbitMQDeletedMessageVaultIntegrationTest
     new 03ecec8  fixup! JAMES-3083 Disable unstable test in RabbitMQDeletedMessageVaultIntegrationTest
     new 9cdeb21  JAMES-3008: add test for DistributedTaskManagerTest
     new 8a4afcf  [CHANGELOG] Document recent work

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGELOG.md                                       | 11 ++++
 .../james/mailbox/events/RabbitMQEventBusTest.java |  1 +
 ...RabbitMQDeletedMessageVaultIntegrationTest.java | 13 ++++
 .../vault/DeletedMessageVaultIntegrationTest.java  |  2 +-
 .../distributed/DistributedTaskManagerTest.java    | 75 ++++++++++++++++++++++
 .../MemoryTerminationSubscriberTest.java           | 10 +++
 6 files changed, 111 insertions(+), 1 deletion(-)


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


[james-project] 04/06: fixup! JAMES-3083 Disable unstable test in RabbitMQDeletedMessageVaultIntegrationTest

Posted by bt...@apache.org.
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 03ecec83b8836d0fb4d5f72c25015ee30827a9f6
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Jul 16 15:34:22 2020 +0700

    fixup! JAMES-3083 Disable unstable test in RabbitMQDeletedMessageVaultIntegrationTest
---
 .../webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java b/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
index 86ca7da..de68b44 100644
--- a/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
@@ -481,7 +481,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
 
     @Tag(BasicFeature.TAG)
     @Test
-    public void vaultExportShouldExportZipContainsVaultMessagesToShareeWhenJmapDeleteMessage() throws Exception {
+    void vaultExportShouldExportZipContainsVaultMessagesToShareeWhenJmapDeleteMessage() throws Exception {
         bartSendMessageToHomer();
         WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
         String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);


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


[james-project] 03/06: JAMES-3083 Disable unstable test in RabbitMQDeletedMessageVaultIntegrationTest

Posted by bt...@apache.org.
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 ab10167e46e3831ac064d82b21f46aafc44c39e2
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Jul 16 14:06:54 2020 +0700

    JAMES-3083 Disable unstable test in RabbitMQDeletedMessageVaultIntegrationTest
---
 .../vault/RabbitMQDeletedMessageVaultIntegrationTest.java   | 13 +++++++++++++
 .../vault/DeletedMessageVaultIntegrationTest.java           |  4 ++--
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQDeletedMessageVaultIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQDeletedMessageVaultIntegrationTest.java
index c620031..d4f94d9 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQDeletedMessageVaultIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQDeletedMessageVaultIntegrationTest.java
@@ -23,9 +23,11 @@ import org.apache.james.CassandraExtension;
 import org.apache.james.CassandraRabbitMQJamesConfiguration;
 import org.apache.james.CassandraRabbitMQJamesServerMain;
 import org.apache.james.DockerElasticSearchExtension;
+import org.apache.james.GuiceJamesServer;
 import org.apache.james.JamesServerBuilder;
 import org.apache.james.JamesServerExtension;
 import org.apache.james.SearchConfiguration;
+import org.apache.james.junit.categories.BasicFeature;
 import org.apache.james.modules.AwsS3BlobStoreExtension;
 import org.apache.james.modules.RabbitMQExtension;
 import org.apache.james.modules.TestJMAPServerModule;
@@ -33,6 +35,9 @@ import org.apache.james.modules.blobstore.BlobStoreConfiguration;
 import org.apache.james.modules.vault.TestDeleteMessageVaultPreDeletionHookModule;
 import org.apache.james.webadmin.integration.WebadminIntegrationTestModule;
 import org.apache.james.webadmin.integration.vault.DeletedMessageVaultIntegrationTest;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
 class RabbitMQDeletedMessageVaultIntegrationTest extends DeletedMessageVaultIntegrationTest {
@@ -62,4 +67,12 @@ class RabbitMQDeletedMessageVaultIntegrationTest extends DeletedMessageVaultInte
     protected void awaitSearchUpToDate() {
         ES_EXTENSION.await();
     }
+
+    @Disabled("JAMES-2688 Unstable test")
+    @Test
+    @Tag(BasicFeature.TAG)
+    @Override
+    public void vaultExportShouldExportZipContainsVaultMessagesToShareeWhenImapDeletedMailbox(GuiceJamesServer jmapServer) {
+
+    }
 }
diff --git a/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java b/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
index 5412f23..86ca7da 100644
--- a/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/webadmin-integration-test-common/src/main/java/org/apache/james/webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java
@@ -481,7 +481,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
 
     @Tag(BasicFeature.TAG)
     @Test
-    void vaultExportShouldExportZipContainsVaultMessagesToShareeWhenJmapDeleteMessage() throws Exception {
+    public void vaultExportShouldExportZipContainsVaultMessagesToShareeWhenJmapDeleteMessage() throws Exception {
         bartSendMessageToHomer();
         WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
         String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);
@@ -522,7 +522,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
 
     @Tag(BasicFeature.TAG)
     @Test
-    void vaultExportShouldExportZipContainsVaultMessagesToShareeWhenImapDeletedMailbox(GuiceJamesServer jmapServer) throws Exception {
+    public void vaultExportShouldExportZipContainsVaultMessagesToShareeWhenImapDeletedMailbox(GuiceJamesServer jmapServer) throws Exception {
         bartSendMessageToHomer();
         WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
         String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);


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


[james-project] 05/06: JAMES-3008: add test for DistributedTaskManagerTest

Posted by bt...@apache.org.
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 9cdeb21b77bcb7d672548c7f2691d96ecf90df7d
Author: duc91 <vd...@linagora.com>
AuthorDate: Thu Jul 16 11:19:38 2020 +0700

    JAMES-3008: add test for DistributedTaskManagerTest
---
 .../distributed/DistributedTaskManagerTest.java    | 75 ++++++++++++++++++++++
 1 file changed, 75 insertions(+)

diff --git a/server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/distributed/DistributedTaskManagerTest.java b/server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/distributed/DistributedTaskManagerTest.java
index 37e4b7d..233dd9a 100644
--- a/server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/distributed/DistributedTaskManagerTest.java
+++ b/server/task/task-distributed/src/test/java/org/apache/james/task/eventsourcing/distributed/DistributedTaskManagerTest.java
@@ -20,6 +20,7 @@
 package org.apache.james.task.eventsourcing.distributed;
 
 import static com.rabbitmq.client.MessageProperties.PERSISTENT_TEXT_PLAIN;
+import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.apache.james.backends.cassandra.Scenario.Builder.executeNormally;
 import static org.apache.james.backends.cassandra.Scenario.Builder.fail;
 import static org.apache.james.task.eventsourcing.distributed.RabbitMQWorkQueue.EXCHANGE_NAME;
@@ -102,6 +103,8 @@ import reactor.rabbitmq.Sender;
 
 class DistributedTaskManagerTest implements TaskManagerContract {
 
+    private static final byte[] BAD_PAYLOAD = "BAD_PAYLOAD!".getBytes(UTF_8);
+
     static class TrackedRabbitMQWorkQueueSupplier implements WorkQueueSupplier {
         private final List<RabbitMQWorkQueue> workQueues;
         private final RabbitMQWorkQueueSupplier supplier;
@@ -218,6 +221,78 @@ class DistributedTaskManagerTest implements TaskManagerContract {
     }
 
     @Test
+    void badPayloadShouldNotAffectTaskManagerOnCancelTask() throws TaskManager.ReachedTimeoutException {
+        TaskManager taskManager = taskManager(HOSTNAME);
+        TaskId id = taskManager.submit(new MemoryReferenceTask(() -> {
+            Thread.sleep(250);
+            return Task.Result.COMPLETED;
+        }));
+
+        rabbitMQExtension.getSender()
+            .send(Mono.just(new OutboundMessage(EXCHANGE_NAME, ROUTING_KEY, BAD_PAYLOAD)))
+            .block();
+
+        taskManager.cancel(id);
+        taskManager.await(id, TIMEOUT);
+        assertThat(taskManager.getExecutionDetails(id).getStatus())
+            .isEqualTo(TaskManager.Status.CANCELLED);
+    }
+
+    @Test
+    void badPayloadsShouldNotAffectTaskManagerOnCancelTask() throws TaskManager.ReachedTimeoutException {
+        TaskManager taskManager = taskManager(HOSTNAME);
+        TaskId id = taskManager.submit(new MemoryReferenceTask(() -> {
+            Thread.sleep(250);
+            return Task.Result.COMPLETED;
+        }));
+
+        IntStream.range(0, 100)
+            .forEach(i -> rabbitMQExtension.getSender()
+            .send(Mono.just(new OutboundMessage(EXCHANGE_NAME, ROUTING_KEY, BAD_PAYLOAD)))
+            .block());
+
+        taskManager.cancel(id);
+        taskManager.await(id, TIMEOUT);
+        assertThat(taskManager.getExecutionDetails(id).getStatus())
+            .isEqualTo(TaskManager.Status.CANCELLED);
+    }
+
+    @Test
+    void badPayloadShouldNotAffectTaskManagerOnCompleteTask() throws TaskManager.ReachedTimeoutException {
+        TaskManager taskManager = taskManager(HOSTNAME);
+        TaskId id = taskManager.submit(new MemoryReferenceTask(() -> {
+            Thread.sleep(250);
+            return Task.Result.COMPLETED;
+        }));
+
+        rabbitMQExtension.getSender()
+            .send(Mono.just(new OutboundMessage(EXCHANGE_NAME, ROUTING_KEY, BAD_PAYLOAD)))
+            .block();
+
+        taskManager.await(id, TIMEOUT);
+        assertThat(taskManager.getExecutionDetails(id).getStatus())
+            .isEqualTo(TaskManager.Status.COMPLETED);
+    }
+
+    @Test
+    void badPayloadsShouldNotAffectTaskManagerOnCompleteTask() throws TaskManager.ReachedTimeoutException {
+        TaskManager taskManager = taskManager(HOSTNAME);
+        TaskId id = taskManager.submit(new MemoryReferenceTask(() -> {
+            Thread.sleep(250);
+            return Task.Result.COMPLETED;
+        }));
+
+        IntStream.range(0, 100)
+            .forEach(i -> rabbitMQExtension.getSender()
+            .send(Mono.just(new OutboundMessage(EXCHANGE_NAME, ROUTING_KEY, BAD_PAYLOAD)))
+            .block());
+
+        taskManager.await(id, TIMEOUT);
+        assertThat(taskManager.getExecutionDetails(id).getStatus())
+            .isEqualTo(TaskManager.Status.COMPLETED);
+    }
+
+    @Test
     void givenOneEventStoreTwoEventTaskManagersShareTheSameEvents() {
         try (EventSourcingTaskManager taskManager1 = taskManager();
              EventSourcingTaskManager taskManager2 = taskManager(HOSTNAME_2)) {


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


[james-project] 02/06: JAMES-3083 Disable unstable test in RabbitMQEventBusTest

Posted by bt...@apache.org.
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 d41ccbaf2e513cc49fd5a5498e20e24a7c720b9c
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Jul 16 14:02:38 2020 +0700

    JAMES-3083 Disable unstable test in RabbitMQEventBusTest
---
 .../test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java  | 1 +
 1 file changed, 1 insertion(+)

diff --git a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
index d2eac1f..1fab4cc 100644
--- a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
+++ b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
@@ -581,6 +581,7 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
                 assertThatListenerReceiveOneEvent(listener);
             }
 
+            @Disabled("JAMES-3083 Disable this unstable test")
             @Test
             void dispatchShouldWorkAfterRestartForNewKeyRegistration() throws Exception {
                 eventBus.start();


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


[james-project] 01/06: JAMES-2813 Disable unstable test

Posted by bt...@apache.org.
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 396c012d784d9115b4b790eca7f6e35878758763
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Jul 16 13:59:10 2020 +0700

    JAMES-2813 Disable unstable test
---
 .../task/eventsourcing/MemoryTerminationSubscriberTest.java    | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/MemoryTerminationSubscriberTest.java b/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/MemoryTerminationSubscriberTest.java
index b8d2707..544795f 100644
--- a/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/MemoryTerminationSubscriberTest.java
+++ b/server/task/task-memory/src/test/java/org/apache/james/task/eventsourcing/MemoryTerminationSubscriberTest.java
@@ -20,8 +20,18 @@
 
 package org.apache.james.task.eventsourcing;
 
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+
 class MemoryTerminationSubscriberTest implements TerminationSubscriberContract {
     public TerminationSubscriber subscriber() {
         return new MemoryTerminationSubscriber();
     }
+
+    @Disabled("JAMES-2813 This test is unstable")
+    @Override
+    @Test
+    public void dynamicListeningEventsShouldGetOnlyNewEvents() {
+
+    }
 }


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


[james-project] 06/06: [CHANGELOG] Document recent work

Posted by bt...@apache.org.
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 8a4afcf16fd0a74c386a58986789add7c9f04bff
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Jul 17 09:35:34 2020 +0700

    [CHANGELOG] Document recent work
---
 CHANGELOG.md | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2ca72fb..f5c8690 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,9 @@ of tasks being currently executed.
 - JAMES-3117 Add PeriodicalHealthChecks for periodical calling all health checks
 - JAMES-3143 WebAdmin endpoint to solve Cassandra message inconsistencies
 - JAMES-3138 Webadmin endpoint to recompute users current quotas on top of Guice products
+- JAMES-3296 Webadmin endpoint to rebuild RabbitMQMailQueue in the Distributed Server
+- JAMES-3266 Offer an option to disable ElasticSearch in Distributed James product
+- JAMES-3202 Reindex only outdated documents with the Mode option set to CORRECT in reindexing tasks
 
 ### Changed
 - Switch to Java 11 for build and run
@@ -39,6 +42,12 @@ of tasks being currently executed.
 - JAMES-3122 Log4J2 adoption for Spring product. Log file configuration needs to be updated. See upgrade instructions.
 - JAMES-2760 mailqueue.size.metricsEnabled should be false by default
 - JAMES-3252 DomainList autoDetection should be turned off by default. Operators relying on implicit values for enabling DomainList autoDetection now needs to explicitly configure it.
+- JAMES-3295 Multiple IMAP performance enhancements for the Distributed Server. Some enhancement might transfer to other servers as well.
+- JAMES-3184 Throttling mechanism allow an admin to specify the throughput desired for a given WebAdmin task
+- JAMES-3224 Configuration for Cassandra ConsistencyLevel.{QUORUM, SERIAL} (for multi-dc configuration)
+- JAMES-3263 Optimize RecipientRewriteTable::getMappingsForType
+- JAMES-3176 Rewritte MDN parsing with Parboiled scala (avoid asm library dependency clash within the Distributed Server)
+- JAMES-3194 Rely on DTOConverter in TaskRoute
 
 ### Fixed
 - JAMES-2828 & JAMES-2929 bugs affecting JDBCMailRepository usage with PostgresSQL thanks to Jörg Thomas & Sergey B
@@ -59,6 +68,8 @@ of tasks being currently executed.
 - JAMES-2632 JMAP Draft GetMailboxes performance enhancements when retrieving all mailboxes of a user
 - JAMES-2964 Forbid to create User quota/ Domain quota/ Global quota using negative number
 - JAMES-3074 Fixing UidValidity generation, sanitizing of invalid values upon reads. Read upgrade instructions.
+- JAMES-3305 Avoid crashes upon deserialization issues when consuming RabbitMQ messages, leverage dead-letter feature
+- JAMES-3212 JMAP Handle subcrible/unsubcrible child's folder when update mailbox
 
 ### Deprecated
 - HybridBlobStore. This will be removed after 3.6.0 release. Introduced to fasten small blob access, its usage could be 


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