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/04/02 01:29:38 UTC

[james-project] branch master updated (de97305 -> 18d0359)

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 de97305  [DOCUMENTATION] Better document THE release process (#337)
     new fab5836  JAMES-3255 Decrease Cassandra fork counts to improve stability
     new 5115d6c  JAMES-3255 Try to solve DeletedMessageVaultIntegrationTest::vaultEndpointShouldRestoreImapDeletedMailbox instability
     new 18d0359  [Refactoring] DeletedMessageVaultIntegrationTest should use Await.untilAsserted

The 3 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:
 mailbox/cassandra/pom.xml                          |   2 +-
 mpt/impl/imap-mailbox/cassandra/pom.xml            |   2 +-
 server/data/data-cassandra/pom.xml                 |   2 +-
 .../vault/DeletedMessageVaultIntegrationTest.java  | 152 +++++++++++----------
 4 files changed, 80 insertions(+), 78 deletions(-)

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


[james-project] 03/03: [Refactoring] DeletedMessageVaultIntegrationTest should use Await.untilAsserted

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 18d0359dfa79dd33c3d38ee1292cb21ec985fc9c
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Apr 1 13:45:38 2021 +0700

    [Refactoring] DeletedMessageVaultIntegrationTest should use Await.untilAsserted
    
    Using Await.until do not carry over details (line number, error
    clause) in the test results, making CI results cryptic.
    
    Await.untilAsserted does.
---
 .../vault/DeletedMessageVaultIntegrationTest.java  | 152 ++++++++++-----------
 1 file changed, 76 insertions(+), 76 deletions(-)

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 3ad9c36..b7f8995 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
@@ -96,7 +96,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
         private UpdatableTickingClock clock;
 
         @Override
-        public void beforeEach(ExtensionContext extensionContext) throws Exception {
+        public void beforeEach(ExtensionContext extensionContext) {
             clock = new UpdatableTickingClock(NOW.toInstant());
         }
 
@@ -188,13 +188,13 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultEndpointShouldRestoreJmapDeletedEmail() {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         restoreAllMessagesOfHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String messageId = listMessageIdsForAccount(homerAccessToken).get(0);
         given()
@@ -212,7 +212,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultEndpointShouldRestoreImapDeletedEmail(GuiceJamesServer jmapServer) throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         testIMAPClient.connect(LOCALHOST_IP, jmapServer.getProbe(ImapGuiceProbe.class).getImapPort())
             .login(HOMER, PASSWORD)
@@ -220,10 +220,10 @@ public abstract class DeletedMessageVaultIntegrationTest {
             .setFlagsForAllMessagesInMailbox("\\Deleted");
         testIMAPClient.expunge();
 
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         restoreAllMessagesOfHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String messageId = listMessageIdsForAccount(homerAccessToken).get(0);
         given()
@@ -241,21 +241,21 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultEndpointShouldRestoreImapDeletedMailbox(GuiceJamesServer jmapServer) throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         testIMAPClient.connect(LOCALHOST_IP, jmapServer.getProbe(ImapGuiceProbe.class).getImapPort())
             .login(HOMER, PASSWORD)
             .select(TestIMAPClient.INBOX);
 
         testIMAPClient.moveFirstMessage(MAILBOX_NAME);
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsInMailbox(homerAccessToken, otherMailboxId.serialize()).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsInMailbox(homerAccessToken, otherMailboxId.serialize())).hasSize(1));
 
         testIMAPClient.delete(MAILBOX_NAME);
 
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         restoreAllMessagesOfHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String messageId = listMessageIdsForAccount(homerAccessToken).get(0);
         given()
@@ -272,13 +272,13 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void restoreShouldCreateRestoreMessagesMailbox() {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         restoreAllMessagesOfHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         assertThat(homerHasMailboxWithRole(Role.RESTORED_MESSAGES)).isTrue();
     }
@@ -287,11 +287,11 @@ public abstract class DeletedMessageVaultIntegrationTest {
     void postShouldRestoreMatchingMessages() {
         bartSendMessageToHomerWithSubject("aaaaa");
         bartSendMessageToHomerWithSubject("bbbbb");
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 2);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(2));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
 
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         String query = "{" +
             "  \"combinator\": \"and\"," +
@@ -305,7 +305,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
             "}";
         restoreMessagesForUserWithQuery(webAdminApi, HOMER, query);
 
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String messageId = listMessageIdsForAccount(homerAccessToken).get(0);
         given()
@@ -323,11 +323,11 @@ public abstract class DeletedMessageVaultIntegrationTest {
     void postShouldNotRestoreWhenNoMatchingMessages() throws Exception {
         bartSendMessageToHomerWithSubject("aaaaa");
         bartSendMessageToHomerWithSubject("bbbbb");
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 2);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(2));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
 
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         String query = "{" +
             "  \"combinator\": \"and\"," +
@@ -352,7 +352,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void imapMovedMessageShouldNotEndUpInTheVault(GuiceJamesServer jmapServer) throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         testIMAPClient.connect(LOCALHOST_IP, jmapServer.getProbe(ImapGuiceProbe.class).getImapPort())
             .login(HOMER, PASSWORD)
@@ -362,7 +362,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
 
         //Moved messages should not be moved to the vault
         restoreAllMessagesOfHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
 
         // No messages restored for bart
@@ -372,14 +372,14 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void jmapMovedMessageShouldNotEndUpInTheVault() {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
         String messageId = listMessageIdsForAccount(homerAccessToken).get(0);
 
         homerMovesTheMailInAnotherMailbox(messageId);
 
         //Moved messages should not be moved to the vault
         restoreAllMessagesOfHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
 
         // No messages restored for bart
@@ -389,16 +389,16 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void restoreShouldNotImpactOtherUsers() {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         bartDeletesMessages(listMessageIdsForAccount(bartAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(bartAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(bartAccessToken)).hasSize(0));
 
         restoreAllMessagesOfHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         // No messages restored for bart
         assertThat(listMessageIdsForAccount(bartAccessToken).size()).isEqualTo(0);
@@ -407,22 +407,22 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void restoredMessagesShouldNotBeRemovedFromTheVault() {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         restoreAllMessagesOfHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         restoreAllMessagesOfHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 2);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(2));
     }
 
     @Test
     void vaultEndpointShouldNotRestoreItemsWhenTheVaultIsEmpty() {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         restoreAllMessagesOfHomer();
         awaitSearchUpToDate();
@@ -435,8 +435,8 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultEndpointShouldNotRestoreMessageForSharee() {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(bartAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(bartAccessToken)).hasSize(1));
 
         String messageId = listMessageIdsForAccount(homerAccessToken).get(0);
         homerMovesTheMailInAnotherMailbox(messageId);
@@ -444,7 +444,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
         homerSharesHisMailboxWithBart();
 
         bartDeletesMessages(ImmutableList.of(messageId));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         restoreMessagesFor(BART);
         awaitSearchUpToDate();
@@ -457,7 +457,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultEndpointShouldRestoreMessageForSharer() {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String messageId = listMessageIdsForAccount(homerAccessToken).get(0);
         homerMovesTheMailInAnotherMailbox(messageId);
@@ -465,10 +465,10 @@ public abstract class DeletedMessageVaultIntegrationTest {
         homerSharesHisMailboxWithBart();
 
         bartDeletesMessages(ImmutableList.of(messageId));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         restoreAllMessagesOfHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String newMessageId = listMessageIdsForAccount(homerAccessToken).get(0);
         given()
@@ -486,11 +486,11 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultExportShouldExportZipContainsVaultMessagesToShareeWhenJmapDeleteMessage() throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
         String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         String fileLocation = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
 
@@ -504,7 +504,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultExportShouldExportZipContainsVaultMessagesToShareeWhenImapDeleteMessage(GuiceJamesServer jmapServer) throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
         String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);
 
         testIMAPClient.connect(LOCALHOST_IP, jmapServer.getProbe(ImapGuiceProbe.class).getImapPort())
@@ -513,7 +513,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
             .setFlagsForAllMessagesInMailbox("\\Deleted");
         testIMAPClient.expunge();
 
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         String fileLocation = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
 
@@ -527,7 +527,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     public void vaultExportShouldExportZipContainsVaultMessagesToShareeWhenImapDeletedMailbox(GuiceJamesServer jmapServer) throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
         String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);
 
         testIMAPClient.connect(LOCALHOST_IP, jmapServer.getProbe(ImapGuiceProbe.class).getImapPort())
@@ -538,7 +538,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
 
         testIMAPClient.delete(MAILBOX_NAME);
 
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         String fileLocation = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
 
@@ -551,14 +551,14 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultExportShouldExportZipContainsOnlyMatchedMessages() throws Exception {
         bartSendMessageToHomerWithSubject(FIRST_SUBJECT);
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
         String firstMessageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);
 
         bartSendMessageToHomerWithSubject(SECOND_SUBJECT);
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 2);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(2));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         ExportRequest exportRequest = ExportRequest
             .userExportFrom(HOMER)
@@ -579,10 +579,10 @@ public abstract class DeletedMessageVaultIntegrationTest {
     void vaultExportShouldExportEmptyZipWhenQueryDoesntMatch() throws Exception {
         bartSendMessageToHomerWithSubject(FIRST_SUBJECT);
         bartSendMessageToHomerWithSubject(SECOND_SUBJECT);
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 2);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(2));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         ExportRequest exportRequest = ExportRequest
             .userExportFrom(HOMER)
@@ -611,10 +611,10 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultExportShouldResponseIdempotentSideEffect() throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         String fileLocationFirstExport = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
         String fileLocationSecondExport = exportAndGetFileLocationFromLastMail(EXPORT_ALL_HOMER_MESSAGES_TO_BART, bartAccessToken);
@@ -629,10 +629,10 @@ public abstract class DeletedMessageVaultIntegrationTest {
         bartSendMessageToHomer();
         bartSendMessageToHomer();
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 3);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(3));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         clock.setInstant(TWO_MONTH_AFTER_ONE_YEAR_EXPIRATION.toInstant());
         purgeVault(webAdminApi);
@@ -646,19 +646,19 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultPurgeShouldMakeExportProduceAZipWhenOneMessageIsNotExpired(UpdatableTickingClock clock) throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String messageIdOfNotExpiredMessage = listMessageIdsForAccount(homerAccessToken).get(0);
 
         clock.setInstant(TWO_MONTH_AFTER_ONE_YEAR_EXPIRATION.toInstant());
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         purgeVault(webAdminApi);
 
@@ -674,10 +674,10 @@ public abstract class DeletedMessageVaultIntegrationTest {
         bartSendMessageToHomer();
         bartSendMessageToHomer();
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 3);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(3));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         purgeVault(webAdminApi);
 
@@ -690,10 +690,10 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultPurgeShouldNotAppendMessageToTheUserMailbox(UpdatableTickingClock clock) {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         clock.setInstant(TWO_MONTH_AFTER_ONE_YEAR_EXPIRATION.toInstant());
         purgeVault(webAdminApi);
@@ -705,12 +705,12 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultDeleteShouldDeleteMessageThenExportWithNoEntry() throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         deleteFromVault(webAdminApi, HOMER, messageIdOfHomer);
 
@@ -723,7 +723,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultDeleteShouldNotDeleteEmptyVaultThenExportNoEntry() throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);
 
@@ -738,14 +738,14 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultDeleteShouldNotDeleteNotMatchedMessageInVaultThenExportAnEntry() throws Exception {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
         String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);
 
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(bartAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(bartAccessToken)).hasSize(1));
         String messageIdOfBart = listMessageIdsForAccount(bartAccessToken).get(0);
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         deleteFromVault(webAdminApi, HOMER, messageIdOfBart);
 
@@ -759,12 +759,12 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultDeleteShouldNotAppendMessageToTheUserMailbox() {
         bartSendMessageToHomer();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String messageIdOfHomer = listMessageIdsForAccount(homerAccessToken).get(0);
 
         homerDeletesMessages(listMessageIdsForAccount(homerAccessToken));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         deleteFromVault(webAdminApi, HOMER, messageIdOfHomer);
 
@@ -775,16 +775,16 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultDeleteShouldDeleteAllMessagesHavingSameBlobContent() throws Exception {
         bartSendMessageToHomerAndJack();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String homerInboxMessageId = listMessageIdsForAccount(homerAccessToken).get(0);
         homerDeletesMessages(ImmutableList.of(homerInboxMessageId));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         // the message same with homer's one in inbox
         String jackInboxMessageId = listMessageIdsForAccount(jackAccessToken).get(0);
         jackDeletesMessages(ImmutableList.of(jackInboxMessageId));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(jackAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(jackAccessToken)).hasSize(0));
 
         // delete from homer's vault, expecting the message contains the same blob in jack's vault will be deleted
         deleteFromVault(webAdminApi, HOMER, homerInboxMessageId);
@@ -798,18 +798,18 @@ public abstract class DeletedMessageVaultIntegrationTest {
     @Test
     void vaultDeleteShouldNotDeleteAllMessagesHavingSameBlobContentWhenMessageNotDeletedWithinTheSameMonth(UpdatableTickingClock clock) throws Exception {
         bartSendMessageToHomerAndJack();
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(1));
 
         String homerInboxMessageId = listMessageIdsForAccount(homerAccessToken).get(0);
         homerDeletesMessages(ImmutableList.of(homerInboxMessageId));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(homerAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(homerAccessToken)).hasSize(0));
 
         // one year later, delete jack's message
         clock.setInstant(NOW.plusYears(1).toInstant());
         // the message same with homer's one in inbox
         String jackInboxMessageId = listMessageIdsForAccount(jackAccessToken).get(0);
         jackDeletesMessages(ImmutableList.of(jackInboxMessageId));
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(jackAccessToken).size() == 0);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(jackAccessToken)).hasSize(0));
 
         // delete from homer's vault, expecting jack's vault still be intact
         deleteFromVault(webAdminApi, HOMER, homerInboxMessageId);
@@ -825,7 +825,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
         int currentNumberOfMessages = listMessageIdsForAccount(shareeAccessToken).size();
         exportVaultContent(webAdminApi, exportRequest);
 
-        WAIT_TWO_MINUTES.until(() -> listMessageIdsForAccount(shareeAccessToken).size() == currentNumberOfMessages + 1);
+        WAIT_TWO_MINUTES.untilAsserted(() -> assertThat(listMessageIdsForAccount(shareeAccessToken)).hasSize(currentNumberOfMessages + 1));
         String exportingMessageId = getLatestMessageId(shareeAccessToken, Role.INBOX);
 
         return exportedFileLocationFromMailHeader(exportingMessageId, shareeAccessToken);

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


[james-project] 01/03: JAMES-3255 Decrease Cassandra fork counts to improve stability

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 fab58364e2423f93e16581654b9b4831031c6dd4
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Apr 1 13:30:30 2021 +0700

    JAMES-3255 Decrease Cassandra fork counts to improve stability
---
 mailbox/cassandra/pom.xml               | 2 +-
 mpt/impl/imap-mailbox/cassandra/pom.xml | 2 +-
 server/data/data-cassandra/pom.xml      | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/mailbox/cassandra/pom.xml b/mailbox/cassandra/pom.xml
index 6f6b504..2ea41ed 100644
--- a/mailbox/cassandra/pom.xml
+++ b/mailbox/cassandra/pom.xml
@@ -201,7 +201,7 @@
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
                     <reuseForks>true</reuseForks>
-                    <forkCount>4</forkCount>
+                    <forkCount>2</forkCount>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/mpt/impl/imap-mailbox/cassandra/pom.xml b/mpt/impl/imap-mailbox/cassandra/pom.xml
index 999f614..5b4ed3c 100644
--- a/mpt/impl/imap-mailbox/cassandra/pom.xml
+++ b/mpt/impl/imap-mailbox/cassandra/pom.xml
@@ -104,7 +104,7 @@
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
                     <reuseForks>true</reuseForks>
-                    <forkCount>4</forkCount>
+                    <forkCount>2</forkCount>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/server/data/data-cassandra/pom.xml b/server/data/data-cassandra/pom.xml
index 6ff6ba2..3c69614 100644
--- a/server/data/data-cassandra/pom.xml
+++ b/server/data/data-cassandra/pom.xml
@@ -150,7 +150,7 @@
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
                     <reuseForks>true</reuseForks>
-                    <forkCount>4</forkCount>
+                    <forkCount>2</forkCount>
                 </configuration>
             </plugin>
         </plugins>

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


[james-project] 02/03: JAMES-3255 Try to solve DeletedMessageVaultIntegrationTest::vaultEndpointShouldRestoreImapDeletedMailbox instability

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 5115d6c94436c0a78948af8799e946318c880f92
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Apr 1 13:38:10 2021 +0700

    JAMES-3255 Try to solve DeletedMessageVaultIntegrationTest::vaultEndpointShouldRestoreImapDeletedMailbox instability
    
    Within distributed version, the listing updates happens asynchronously.
    
    Deletion of the mailbox might prevent the search engine update, leading to follow up state assertions failing...
---
 .../webadmin/integration/vault/DeletedMessageVaultIntegrationTest.java  | 2 ++
 1 file changed, 2 insertions(+)

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 2d20ea4..3ad9c36 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
@@ -33,6 +33,7 @@ import static org.apache.james.jmap.JmapCommonRequests.getAllMailboxesIds;
 import static org.apache.james.jmap.JmapCommonRequests.getLatestMessageId;
 import static org.apache.james.jmap.JmapCommonRequests.getOutboxId;
 import static org.apache.james.jmap.JmapCommonRequests.listMessageIdsForAccount;
+import static org.apache.james.jmap.JmapCommonRequests.listMessageIdsInMailbox;
 import static org.apache.james.jmap.LocalHostURIBuilder.baseUri;
 import static org.apache.james.mailbox.backup.ZipAssert.EntryChecks.hasName;
 import static org.apache.james.mailbox.backup.ZipAssert.assertThatZip;
@@ -247,6 +248,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
             .select(TestIMAPClient.INBOX);
 
         testIMAPClient.moveFirstMessage(MAILBOX_NAME);
+        WAIT_TWO_MINUTES.until(() -> listMessageIdsInMailbox(homerAccessToken, otherMailboxId.serialize()).size() == 1);
 
         testIMAPClient.delete(MAILBOX_NAME);
 

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