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/25 02:21:58 UTC

[james-project] branch master updated (864e1c3 -> c099168)

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 864e1c3  JAMES-2514 Upgrade Cassandra 3.11.3 -> 3.11.10
     new 443e78c  JAMES-3410 Email/set deletes should not delete mails when no delete right
     new a37ff1e  JAMES-3438 des-ambiguity error message for Email/set create Content-Transfer-Encoding rejection
     new 2c66a16  JAMES-2514 Fix broken links
     new 0499a24  JAMES-2514 Changelog and Upgrade instructions for Cassandra 3.11.10
     new e3565a9  JAMES-3225 Reduce deploy parallelism
     new 2ce8df8  JAMES-3225 Tag LinshareBlobExportMechanismProvidingTest as unstable
     new e304620  JAMES-3225 Tag CassandraMailboxManagerConsistencyTest$FailuresOnDeletion$DeleteTwiceThenCreate.createMailboxShouldCreateWhenMailboxPathDaoFailsOnDeleteByPath as unstable
     new c099168  JAMES-3225 Tag RabbitMQEventDeadLettersIntegrationTest multipleFailedEventsShouldBeCorrectlyProcessedByListenerAfterSuccessfulGroupRedelivery as unstable

The 8 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                                       |   4 +
 Jenkinsfile                                        |   2 +-
 .../servers/pages/distributed/operate/guide.adoc   |   6 +-
 .../CassandraMailboxManagerConsistencyTest.java    |   1 +
 .../james/mailbox/store/StoreMessageIdManager.java |  10 +-
 .../store/AbstractMessageIdManagerStorageTest.java |   9 ++
 .../LinshareBlobExportMechanismProvidingTest.java  |   3 +
 .../rfc8621/contract/EmailSetMethodContract.scala  | 128 ++++++++++++++++++++-
 .../james/jmap/json/EmailSetSerializer.scala       |   9 +-
 .../RabbitMQEventDeadLettersIntegrationTest.java   |   2 +
 .../vault/DeletedMessageVaultIntegrationTest.java  |   2 +-
 .../server/manage-guice-distributed-james.md       |   6 +-
 upgrade-instructions.md                            |  24 ++++
 13 files changed, 188 insertions(+), 18 deletions(-)


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


[james-project] 03/08: JAMES-2514 Fix broken links

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 2c66a1602702860e7df85e3e7963bbc4451020bd
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Feb 23 17:05:20 2021 +0700

    JAMES-2514 Fix broken links
---
 docs/modules/servers/pages/distributed/operate/guide.adoc  | 6 +++---
 src/site/markdown/server/manage-guice-distributed-james.md | 6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/docs/modules/servers/pages/distributed/operate/guide.adoc b/docs/modules/servers/pages/distributed/operate/guide.adoc
index 13f0195..e7029ab 100644
--- a/docs/modules/servers/pages/distributed/operate/guide.adoc
+++ b/docs/modules/servers/pages/distributed/operate/guide.adoc
@@ -357,7 +357,7 @@ echo -e "\nauthorizer: org.apache.cassandra.auth.CassandraAuthorizer" >> /etc/ca
 ==== Create a role
 
 Have a look at
-http://cassandra.apache.org/doc/3.11.10/cql/security.html[cassandra documentation] section `CREATE ROLE` for more information
+http://cassandra.apache.org/doc/3.11.11/cql/security.html[cassandra documentation] section `CREATE ROLE` for more information
 
 E.g.
 
@@ -368,7 +368,7 @@ CREATE ROLE james_one WITH PASSWORD = 'james_one' AND LOGIN = true;
 ==== Create a keyspace
 
 Have a look at
-http://cassandra.apache.org/doc/3.11.10/cql/ddl.html[cassandra documentation] section `CREATE KEYSPACE` for more information
+http://cassandra.apache.org/doc/3.11.11/cql/ddl.html[cassandra documentation] section `CREATE KEYSPACE` for more information
 
 ==== Grant permissions on created keyspace to the role
 
@@ -416,7 +416,7 @@ that topic. Consequently, you have to accept that your data models are
 still being exposed to anyone having credentials to Cassandra.
 
 For more information, have a look at
-http://cassandra.apache.org/doc/3.11.10/cql/security.html[cassandra documentation] section `REVOKE PERMISSION`.
+http://cassandra.apache.org/doc/3.11.11/cql/security.html[cassandra documentation] section `REVOKE PERMISSION`.
 
 Except for the case above, the permissions are not auto available for a
 specific role unless they are granted by `GRANT` command. Therefore, if
diff --git a/src/site/markdown/server/manage-guice-distributed-james.md b/src/site/markdown/server/manage-guice-distributed-james.md
index fe7dff8..efc7f43 100644
--- a/src/site/markdown/server/manage-guice-distributed-james.md
+++ b/src/site/markdown/server/manage-guice-distributed-james.md
@@ -410,7 +410,7 @@ echo -e "\nauthorizer: org.apache.cassandra.auth.CassandraAuthorizer" >> /etc/ca
 
 #### Create a role
 
-Have a look at [cassandra documentation](http://cassandra.apache.org/doc/3.11.10/cql/security.html) section `CREATE ROLE` for more information
+Have a look at [cassandra documentation](http://cassandra.apache.org/doc/3.11.11/cql/security.html) section `CREATE ROLE` for more information
 
 E.g.
 ```
@@ -418,7 +418,7 @@ CREATE ROLE james_one WITH PASSWORD = 'james_one' AND LOGIN = true;
 ```
 #### Create a keyspace
 
-Have a look at [cassandra documentation](http://cassandra.apache.org/doc/3.11.10/cql/ddl.html) section `CREATE KEYSPACE` for more information
+Have a look at [cassandra documentation](http://cassandra.apache.org/doc/3.11.11/cql/ddl.html) section `CREATE KEYSPACE` for more information
 
 #### Grant permissions on created keyspace to the role
 
@@ -460,7 +460,7 @@ describe any keyspace and table. There's no configuration that can make
 effect on that topic. Consequently, you have to accept that your data models 
 are still being exposed to anyone having credentials to Cassandra. 
 
-For more information, have a look at [cassandra documentation](http://cassandra.apache.org/doc/3.11.10/cql/security.html) section `REVOKE PERMISSION`. 
+For more information, have a look at [cassandra documentation](http://cassandra.apache.org/doc/3.11.11/cql/security.html) section `REVOKE PERMISSION`.
 
 Except for the case above, the permissions are not auto available for 
 a specific role unless they are granted by `GRANT` command. Therefore, 


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


[james-project] 01/08: JAMES-3410 Email/set deletes should not delete mails when no delete right

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 443e78c54e99adc439fd703c0e4dd3b97004dfc7
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Feb 18 12:53:11 2021 +0700

    JAMES-3410 Email/set deletes should not delete mails when no delete right
    
    JMAP draft and JMAP RFC-8621 are both impacted. Not found was returned but
    the not yet validated set was used for deletes.
    
    Credits to LĂȘ Loan (https://github.com/tlle14) for spotting it.
---
 .../org/apache/james/mailbox/store/StoreMessageIdManager.java  | 10 ++++++----
 .../mailbox/store/AbstractMessageIdManagerStorageTest.java     |  9 +++++++++
 .../james/jmap/rfc8621/contract/EmailSetMethodContract.scala   |  2 ++
 .../integration/vault/DeletedMessageVaultIntegrationTest.java  |  2 +-
 4 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
index 9083844..a8f867d 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
@@ -221,17 +221,19 @@ public class StoreMessageIdManager implements MessageIdManager {
             .stream()
             .map(MailboxMessage::getMailboxId), Right.DeleteMessages);
 
-        ImmutableSet<MessageId> accessibleMessages = messageList.stream()
+        List<MailboxMessage> accessibleMessages = messageList.stream()
             .filter(message -> allowedMailboxIds.contains(message.getMailboxId()))
+            .collect(Guavate.toImmutableList());
+        ImmutableSet<MessageId> accessibleMessageIds = accessibleMessages.stream()
             .map(MailboxMessage::getMessageId)
             .distinct()
             .collect(Guavate.toImmutableSet());
-        Sets.SetView<MessageId> nonAccessibleMessages = Sets.difference(ImmutableSet.copyOf(messageIds), accessibleMessages);
+        Sets.SetView<MessageId> nonAccessibleMessages = Sets.difference(ImmutableSet.copyOf(messageIds), accessibleMessageIds);
 
-        deleteWithPreHooks(messageIdMapper, messageList, mailboxSession);
+        deleteWithPreHooks(messageIdMapper, accessibleMessages, mailboxSession);
 
         return DeleteResult.builder()
-            .addDestroyed(accessibleMessages)
+            .addDestroyed(accessibleMessageIds)
             .addNotFound(nonAccessibleMessages)
             .build();
     }
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
index 8416d42..d9beb5b 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
@@ -360,6 +360,15 @@ public abstract class AbstractMessageIdManagerStorageTest {
     }
 
     @Test
+    void deleteAllShouldReturnNotDeleteWhenDeletingOnOtherSession() throws Exception {
+        MessageId messageId = testingData.persist(bobMailbox1.getMailboxId(), messageUid1, FLAGS, bobSession);
+
+        messageIdManager.delete(ImmutableList.of(messageId), aliceSession);
+
+        assertThat(messageIdManager.getMessage(messageId, FetchGroup.MINIMAL, bobSession)).hasSize(1);
+    }
+
+    @Test
     void deleteMessageShouldThrowExceptionWhenDeletingOnSystemSession() {
         MessageId messageId = testingData.persist(aliceMailbox1.getMailboxId(), messageUid1, FLAGS, aliceSession);
 
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSetMethodContract.scala b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSetMethodContract.scala
index 8807ba3..1d4c1a8 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSetMethodContract.scala
+++ b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSetMethodContract.scala
@@ -4952,6 +4952,8 @@ trait EmailSetMethodContract {
            |      }, "c1"]
            |    ]
            |}""".stripMargin)
+    assertThat(server.getProbe(classOf[MessageIdProbe]).getMessages(messageId, ANDRE))
+      .hasSize(1)
   }
 
   @Test
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 fe4be3f..2d20ea4 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
@@ -847,7 +847,7 @@ public abstract class DeletedMessageVaultIntegrationTest {
                 "    {" +
                 "      \"update\": {" +
                 "        \"" + otherMailboxId.serialize() + "\" : {" +
-                "          \"sharedWith\" : {\"" + BART + "\": [\"l\", \"w\", \"r\"]}" +
+                "          \"sharedWith\" : {\"" + BART + "\": [\"l\", \"w\", \"t\", \"r\"]}" +
                 "        }" +
                 "      }" +
                 "    }," +


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


[james-project] 05/08: JAMES-3225 Reduce deploy parallelism

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 e3565a9c33a9dfdaedaf2adbe041ea626d00ec19
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Feb 24 09:45:57 2021 +0700

    JAMES-3225 Reduce deploy parallelism
    
    Failed several time on master, reduce concurrency to improve stability
---
 Jenkinsfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 1fff004..eb8d2a0 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -130,7 +130,7 @@ pipeline {
             when { branch 'master' }
             steps {
                 echo 'Deploying'
-                sh 'mvn -B -e deploy -Pdeploy -DskipTests -T2C'
+                sh 'mvn -B -e deploy -Pdeploy -DskipTests -T1C'
             }
         }
    }


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


[james-project] 02/08: JAMES-3438 des-ambiguity error message for Email/set create Content-Transfer-Encoding rejection

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 a37ff1ed6848036fe7257502f57b5e540741bc17
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Feb 18 14:52:24 2021 +0700

    JAMES-3438 des-ambiguity error message for Email/set create Content-Transfer-Encoding rejection
---
 .../rfc8621/contract/EmailSetMethodContract.scala  | 126 ++++++++++++++++++++-
 .../james/jmap/json/EmailSetSerializer.scala       |   9 +-
 2 files changed, 129 insertions(+), 6 deletions(-)

diff --git a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSetMethodContract.scala b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSetMethodContract.scala
index 1d4c1a8..a7096e6 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSetMethodContract.scala
+++ b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/src/main/scala/org/apache/james/jmap/rfc8621/contract/EmailSetMethodContract.scala
@@ -1970,7 +1970,7 @@ trait EmailSetMethodContract {
       .isEqualTo(
         s"""{
            |  "type": "invalidArguments",
-           |  "description": "List((/htmlBody(0),List(JsonValidationError(List(Content-Transfer-Encoding must not be specified in htmlBody),List()))))"
+           |  "description": "List((/htmlBody(0),List(JsonValidationError(List(Content-Transfer-Encoding must not be specified in htmlBody or textBody),List()))))"
            |}""".stripMargin)
   }
 
@@ -2156,7 +2156,7 @@ trait EmailSetMethodContract {
       .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
       .body(request)
     .when
-      .post.prettyPeek()
+      .post
     .`then`
       .statusCode(SC_OK)
       .contentType(JSON)
@@ -2458,6 +2458,128 @@ trait EmailSetMethodContract {
   }
 
   @Test
+  def textContentTransferEncodingShouldBeRejectedInTextBody(server: GuiceJamesServer): Unit = {
+    val bobPath = MailboxPath.inbox(BOB)
+    val mailboxId = server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
+    val textBody: String = "Let me tell you all about it."
+
+    val request =
+      s"""{
+         |  "using": ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail"],
+         |  "methodCalls": [
+         |    ["Email/set", {
+         |      "accountId": "$ACCOUNT_ID",
+         |      "create": {
+         |        "aaaaaa": {
+         |          "mailboxIds": {
+         |             "${mailboxId.serialize}": true
+         |          },
+         |          "subject": "World domination",
+         |          "attachments": [],
+         |          "textBody": [
+         |            {
+         |              "partId": "a49d",
+         |              "type": "text/plain",
+         |              "header:Content-Transfer-Encoding:asText": "gabou"
+         |            }
+         |          ],
+         |          "bodyValues": {
+         |            "a49d": {
+         |              "value": "$textBody",
+         |              "isTruncated": false,
+         |              "isEncodingProblem": false
+         |            }
+         |          }
+         |        }
+         |      }
+         |    }, "c1"]
+         |  ]
+         |}""".stripMargin
+
+    val response = `given`
+      .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
+      .body(request)
+    .when
+      .post
+    .`then`
+      .statusCode(SC_OK)
+      .contentType(JSON)
+      .extract
+      .body
+      .asString
+
+    println(response)
+    assertThatJson(response)
+      .inPath("methodResponses[0][1].notCreated.aaaaaa")
+      .isEqualTo(
+        s"""{
+           |  "type":"invalidArguments",
+           |  "description":"List((/textBody(0),List(JsonValidationError(List(Content-Transfer-Encoding must not be specified in htmlBody or textBody),List()))))"
+           |}""".stripMargin)
+  }
+
+  @Test
+  def binaryContentTransferEncodingShouldBeRejectedInTextBody(server: GuiceJamesServer): Unit = {
+    val bobPath = MailboxPath.inbox(BOB)
+    val mailboxId = server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
+    val textBody: String = "Let me tell you all about it."
+
+    val request =
+      s"""{
+         |  "using": ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail"],
+         |  "methodCalls": [
+         |    ["Email/set", {
+         |      "accountId": "$ACCOUNT_ID",
+         |      "create": {
+         |        "aaaaaa": {
+         |          "mailboxIds": {
+         |             "${mailboxId.serialize}": true
+         |          },
+         |          "subject": "World domination",
+         |          "attachments": [],
+         |          "textBody": [
+         |            {
+         |              "partId": "a49d",
+         |              "type": "text/plain",
+         |              "header:Content-Transfer-Encoding": " gabou"
+         |            }
+         |          ],
+         |          "bodyValues": {
+         |            "a49d": {
+         |              "value": "$textBody",
+         |              "isTruncated": false,
+         |              "isEncodingProblem": false
+         |            }
+         |          }
+         |        }
+         |      }
+         |    }, "c1"]
+         |  ]
+         |}""".stripMargin
+
+    val response = `given`
+      .header(ACCEPT.toString, ACCEPT_RFC8621_VERSION_HEADER)
+      .body(request)
+    .when
+      .post
+    .`then`
+      .statusCode(SC_OK)
+      .contentType(JSON)
+      .extract
+      .body
+      .asString
+
+    println(response)
+    assertThatJson(response)
+      .inPath("methodResponses[0][1].notCreated.aaaaaa")
+      .isEqualTo(
+        s"""{
+           |  "type":"invalidArguments",
+           |  "description":"List((/textBody(0),List(JsonValidationError(List(Content-Transfer-Encoding must not be specified in htmlBody or textBody),List()))))"
+           |}""".stripMargin)
+  }
+
+  @Test
   def createShouldSupportInlinedAttachmentsMixedWithRegularAttachmentsAndHtmlBody(server: GuiceJamesServer): Unit = {
     val bobPath = MailboxPath.inbox(BOB)
     val mailboxId = server.getProbe(classOf[MailboxProbeImpl]).createMailbox(bobPath)
diff --git a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/EmailSetSerializer.scala b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/EmailSetSerializer.scala
index af3693b..d75ce09 100644
--- a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/EmailSetSerializer.scala
+++ b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/json/EmailSetSerializer.scala
@@ -237,12 +237,13 @@ class EmailSetSerializer @Inject()(messageIdFactory: MessageId.Factory, mailboxI
   private implicit val clientEmailBodyValueReads: Reads[ClientEmailBodyValue] = Json.reads[ClientEmailBodyValue]
   private implicit val typeReads: Reads[Type] = Json.valueReads[Type]
   private implicit val clientPartIdReads: Reads[ClientPartId] = Json.valueReads[ClientPartId]
-  private val rawHTMLReads: Reads[ClientBody] = Json.reads[ClientBody]
-  private implicit val clientHtmlBodyReads: Reads[ClientBody] = {
+  private val rawClientBodyReads: Reads[ClientBody] = Json.reads[ClientBody]
+  private implicit val clientBodyReads: Reads[ClientBody] = {
     case JsObject(underlying) if underlying.contains("charset") => JsError("charset must not be specified in htmlBody")
     case JsObject(underlying) if underlying.contains("size") => JsError("size must not be specified in htmlBody")
-    case JsObject(underlying) if underlying.contains("header:Content-Transfer-Encoding:asText") => JsError("Content-Transfer-Encoding must not be specified in htmlBody")
-    case o: JsObject => rawHTMLReads.reads(o)
+    case JsObject(underlying) if underlying.contains("header:Content-Transfer-Encoding") => JsError("Content-Transfer-Encoding must not be specified in htmlBody or textBody")
+    case JsObject(underlying) if underlying.keySet.exists(s => s.startsWith("header:Content-Transfer-Encoding:asText")) => JsError("Content-Transfer-Encoding must not be specified in htmlBody or textBody")
+    case o: JsObject => rawClientBodyReads.reads(o)
     case _ => JsError("Expecting a JsObject to represent an ClientHtmlBody")
   }
 


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


[james-project] 06/08: JAMES-3225 Tag LinshareBlobExportMechanismProvidingTest as unstable

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 2ce8df8bc97c389b1f673ed7f8e86aacd5ac099c
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Feb 24 09:47:55 2021 +0700

    JAMES-3225 Tag LinshareBlobExportMechanismProvidingTest as unstable
---
 .../org/apache/james/LinshareBlobExportMechanismProvidingTest.java     | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/server/container/guice/memory-guice/src/test/java/org/apache/james/LinshareBlobExportMechanismProvidingTest.java b/server/container/guice/memory-guice/src/test/java/org/apache/james/LinshareBlobExportMechanismProvidingTest.java
index 0068d0e..f1ab453 100644
--- a/server/container/guice/memory-guice/src/test/java/org/apache/james/LinshareBlobExportMechanismProvidingTest.java
+++ b/server/container/guice/memory-guice/src/test/java/org/apache/james/LinshareBlobExportMechanismProvidingTest.java
@@ -21,10 +21,13 @@ package org.apache.james;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
+import org.apache.james.junit.categories.Unstable;
 import org.apache.james.modules.LinshareGuiceExtension;
+import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
+@Tag(Unstable.TAG)
 class LinshareBlobExportMechanismProvidingTest {
     private static final LinshareGuiceExtension linshareGuiceExtension = new LinshareGuiceExtension();
 


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


[james-project] 04/08: JAMES-2514 Changelog and Upgrade instructions for Cassandra 3.11.10

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 0499a24c82744a721614c1001e755d0f127f943f
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Feb 23 17:16:54 2021 +0700

    JAMES-2514 Changelog and Upgrade instructions for Cassandra 3.11.10
---
 CHANGELOG.md            |  4 ++++
 upgrade-instructions.md | 24 ++++++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9f96bf8..fe75d31 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -103,6 +103,10 @@ Use BlobStore cache instead.
 - JAMES-3155 Limit the number of flags updated at the same time
 - JAMES-3264: MAILBOX details are read 3 times upon indexing
 
+### Third party softwares
+- James is no longer tested against Cassandra 3.11.3 but instead against Cassandra 3.11.10. Users are recommended to upgrade to this
+version as well. See related upgrade instructions.
+
 ## [3.5.0] - 2020-04-06
 
 ### Added
diff --git a/upgrade-instructions.md b/upgrade-instructions.md
index dca2f21..9c160bb 100644
--- a/upgrade-instructions.md
+++ b/upgrade-instructions.md
@@ -23,6 +23,7 @@ Change list:
  - [Cassandra Schema update to V8](#cassandra-schema-update-to-v8)
  - [Cassandra Schema update to V9](#cassandra-schema-update-to-v9)
  - [Cassandra Schema update to V10](#cassandra-schema-update-to-v10)
+ - [Recommended upgrade to Cassandra 3.11.10](#recommended-upgrade-to-cassandra-3-1110)
  - [JMS mail queue no longer relies on java serialization](#jms-mail-queue-no-longer-relies-on-java-serialization)
 
 ### JMS mail queue no longer relies on java serialization
@@ -44,6 +45,29 @@ Upgrades should be done with an empty mail queue. To do so:
  - Await the mail processing to finish, monitoring the size of your mail queue
  - Upgrade, then restart SMTP + JMAP traffic
 
+### Recommended upgrade to Cassandra 3.11.10
+
+Date: 15/02/2021
+
+JIRA: https://issues.apache.org/jira/browse/JAMES-2514
+
+Concerned products: Cassandra Guice server (with and without rabbitMQ)
+
+James is no longer tested against Cassandra 3.11.3 but instead against Cassandra 3.11.10. Users are recommended to upgrade to this
+version as well.
+
+This [link](https://www.instaclustr.com/support/documentation/cassandra/cassandra-cluster-operations/cassandra-version-upgrades/#) describes a possible update procedure:
+
+ - Take a backup of the cluster
+ - On each node, perform a rolling update
+ - For each node flush the data (`nodetool flush`)
+ - Stop C* on this nod and upgrade to target version (approx 5-10 minutes duration)
+ - Start upgraded C* on this node.
+ - Confirm the application behaves normally
+ - Upgrade remaining nodes
+ - No upgradesstables is required for this minor version
+ - Perform final verifications.
+
 ### Cassandra Schema update to V10
 
 Date 05/12/2020


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


[james-project] 08/08: JAMES-3225 Tag RabbitMQEventDeadLettersIntegrationTest multipleFailedEventsShouldBeCorrectlyProcessedByListenerAfterSuccessfulGroupRedelivery as unstable

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 c09916805e4c710502b7d1dae8cce7e5b2ee7429
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Feb 24 13:55:16 2021 +0700

    JAMES-3225 Tag RabbitMQEventDeadLettersIntegrationTest multipleFailedEventsShouldBeCorrectlyProcessedByListenerAfterSuccessfulGroupRedelivery as unstable
---
 .../integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java   | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
index edb1b30..a9c26b6 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
@@ -53,6 +53,7 @@ import org.apache.james.events.EventListener;
 import org.apache.james.events.Group;
 import org.apache.james.events.RetryBackoffConfiguration;
 import org.apache.james.junit.categories.BasicFeature;
+import org.apache.james.junit.categories.Unstable;
 import org.apache.james.mailbox.DefaultMailboxes;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -535,6 +536,7 @@ class RabbitMQEventDeadLettersIntegrationTest {
             .body(".", hasSize(0));
     }
 
+    @Tag(Unstable.TAG)
     @Test
     void multipleFailedEventsShouldBeCorrectlyProcessedByListenerAfterSuccessfulGroupRedelivery(RetryEventsListener retryEventsListener) {
         retryEventsListener.callsPerEventBeforeSuccess(MAX_RETRIES + 1);


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


[james-project] 07/08: JAMES-3225 Tag CassandraMailboxManagerConsistencyTest$FailuresOnDeletion$DeleteTwiceThenCreate.createMailboxShouldCreateWhenMailboxPathDaoFailsOnDeleteByPath as unstable

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 e30462060fff22c0d84a8e94d6e18b2d43d8296a
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Feb 24 10:42:42 2021 +0700

    JAMES-3225 Tag CassandraMailboxManagerConsistencyTest$FailuresOnDeletion$DeleteTwiceThenCreate.createMailboxShouldCreateWhenMailboxPathDaoFailsOnDeleteByPath as unstable
---
 .../james/mailbox/cassandra/CassandraMailboxManagerConsistencyTest.java  | 1 +
 1 file changed, 1 insertion(+)

diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerConsistencyTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerConsistencyTest.java
index 767a82f..5860474 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerConsistencyTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMailboxManagerConsistencyTest.java
@@ -739,6 +739,7 @@ class CassandraMailboxManagerConsistencyTest {
                 }));
             }
 
+            @Tag(Unstable.TAG)
             @Test
             void createMailboxShouldCreateWhenMailboxPathDaoFailsOnDeleteByPath(CassandraCluster cassandra) throws Exception {
                 testee.createMailbox(inboxPath, mailboxSession);


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