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 2020/11/20 10:09:23 UTC

[james-project] branch master updated (1f2cfe3 -> 42a8412)

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 1f2cfe3  JAMES-2884 [REFACTORING] Use Either instead of SMono for request validation
     new 46eba70  JAMES-2884 [REFACTORING] Use Either instead of SMono for request validation
     new f98bcca  JAMES-3441 Document specialized instances setup
     new 66ed143  JAMES-2124 Enforces strict dependency ordering in pom files
     new fef130a  JAMES-2124 Sorts modelversion, parent and artifact
     new 28713c2  JAMES-2124 Sorts dependencies and dependencyManagement
     new ded3b8d  JAMES-2124 Clean up project closing tags
     new 9fa8c36  JAMES-2124 Sorts all plugins configuration
     new 8eb8d81  JAMES-2124 Sorts reporting to match maven xsd position
     new e1db8e4  JAMES-2124 Sorts module declarations in reactors
     new 61e9e38  JAMES-2124 Uses explicit groupId for mime4j
     new 288f7fc  JAMES-2124 updates contribution documentation
     new ef28903  JAMES-3441 [REFACTORING] Use Optionals and encapsulating class for JamesMailSpooler mutable content
     new 73ea004  JAMES-3441 Avoid starting mail spooler when 'threads' = 0
     new f7cc352  JAMES-3441 [Refactoring] Strong type & extract JamesMailSpooler configuration
     new 1d45151  JAMES-3441 Integration test for starting James with a disabled spooler
     new 42a8412  JAMES-3441 Document spooler.threads = 0

The 16 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:
 backends-common/elasticsearch/pom.xml              |  14 +-
 core/pom.xml                                       |   4 +-
 docs/modules/community/pages/contributing.adoc     |  30 +-
 .../assets/images/specialized-instances.png        | Bin 0 -> 45878 bytes
 docs/modules/servers/nav.adoc                      |   1 +
 .../pages/distributed/architecture/index.adoc      |   6 +
 .../architecture/specialized-instances.adoc        |  37 ++
 .../distributed/configure/mailetcontainer.adoc     |   3 +-
 event-sourcing/event-sourcing-core/pom.xml         |  10 +-
 event-sourcing/event-store-cassandra/pom.xml       |  21 +-
 event-sourcing/pom.xml                             |   4 +-
 javax-mail-extension/pom.xml                       |  16 +-
 json/pom.xml                                       |   4 +-
 mailbox/api/pom.xml                                |   8 +-
 mailbox/backup/pom.xml                             |   2 +-
 mailbox/cassandra/pom.xml                          |   2 +-
 mailbox/elasticsearch/pom.xml                      |   2 +-
 mailbox/event/event-cassandra/pom.xml              |  21 +-
 mailbox/event/event-memory/pom.xml                 |  27 +-
 mailbox/event/event-rabbitmq/pom.xml               |  56 +-
 mailbox/event/json/pom.xml                         |  18 +-
 mailbox/lucene/pom.xml                             |  18 +-
 mailbox/maildir/pom.xml                            |  16 +-
 .../deleted-messages-vault-cassandra/pom.xml       |  24 +-
 mailbox/plugin/deleted-messages-vault/pom.xml      |  10 +-
 mailbox/plugin/quota-mailing-cassandra/pom.xml     |   2 +-
 mailbox/plugin/quota-mailing-memory/pom.xml        |   4 +-
 mailbox/plugin/quota-mailing/pom.xml               |   5 +-
 mailbox/plugin/quota-search-elasticsearch/pom.xml  |  13 +-
 mailbox/plugin/quota-search-scanning/pom.xml       |   5 +-
 mailbox/plugin/quota-search/pom.xml                |   5 +-
 mailbox/plugin/spamassassin/pom.xml                |   8 +-
 mailbox/scanning-search/pom.xml                    |   4 +-
 mailbox/store/pom.xml                              |  24 +-
 mailbox/tools/quota-recompute/pom.xml              |   4 +-
 mailet/api/pom.xml                                 |  10 +-
 mailet/base/pom.xml                                |  12 +-
 mailet/crypto/pom.xml                              |   2 +-
 mailet/standard/pom.xml                            |  14 +-
 mdn/pom.xml                                        |  14 +-
 metrics/metrics-dropwizard/pom.xml                 |   8 +-
 metrics/metrics-tests/pom.xml                      |  14 +-
 mpt/app/pom.xml                                    |  22 +-
 mpt/impl/imap-mailbox/cyrus/pom.xml                |   8 +-
 mpt/impl/imap-mailbox/inmemory/pom.xml             |   4 +-
 mpt/impl/imap-mailbox/lucenesearch/pom.xml         |  12 +-
 mpt/impl/imap-mailbox/rabbitmq/pom.xml             |  28 +-
 mpt/impl/managesieve/core/pom.xml                  |   8 +-
 .../smtp/cassandra-rabbitmq-object-storage/pom.xml |  10 +-
 mpt/mavenplugin/pom.xml                            |  18 +-
 pom.xml                                            | 657 ++++++++++++---------
 protocols/imap/pom.xml                             |  25 +-
 protocols/lmtp/pom.xml                             |  10 +-
 protocols/netty/pom.xml                            |   8 +-
 protocols/pop3/pom.xml                             |  10 +-
 protocols/smtp/pom.xml                             |  10 +-
 server/app/pom.xml                                 |  72 +--
 server/blob/blob-api/pom.xml                       |  10 +-
 server/blob/blob-cassandra/pom.xml                 |  10 +-
 server/blob/blob-common/pom.xml                    |   2 +-
 server/blob/blob-export-api/pom.xml                |   6 +-
 server/blob/blob-export-file/pom.xml               |   4 +-
 server/blob/blob-gc/pom.xml                        |   2 +-
 server/blob/blob-memory/pom.xml                    |   4 +-
 server/blob/blob-s3/pom.xml                        |  18 +-
 server/blob/blob-storage-strategy/pom.xml          |   2 +-
 server/blob/mail-store/pom.xml                     |   4 +-
 server/blob/pom.xml                                |   2 +-
 server/container/core/pom.xml                      |  10 +-
 server/container/guice/cassandra-guice/pom.xml     |  34 +-
 .../guice/cassandra-rabbitmq-guice/pom.xml         |   8 +-
 .../guice/cassandra-rabbitmq-ldap-guice/pom.xml    |  12 +-
 server/container/guice/configuration/pom.xml       |   2 +-
 server/container/guice/guice-common/pom.xml        |   6 +-
 server/container/guice/guice-utils/pom.xml         |  10 +-
 server/container/guice/jpa-guice/pom.xml           |  16 +-
 server/container/guice/jpa-smtp-mariadb/pom.xml    |  12 +-
 server/container/guice/jpa-smtp/pom.xml            |  16 +-
 server/container/guice/mailet/pom.xml              |   8 +-
 .../modules/server/CamelMailetContainerModule.java |  12 +-
 server/container/guice/memory-guice/pom.xml        |  20 +-
 ...ExecutionTest.java => DisabledSpoolerTest.java} |  88 +--
 .../src/test/resources/mailetcontainer.xml         |   1 +
 server/container/guice/protocols/jmap/pom.xml      |   4 +-
 .../container/guice/protocols/managedsieve/pom.xml |   8 +-
 server/container/guice/protocols/netty/pom.xml     |   8 +-
 .../guice/protocols/webadmin-jmap/pom.xml          |   4 +-
 .../guice/protocols/webadmin-mail-over-web/pom.xml |  12 +-
 .../guice/protocols/webadmin-mailqueue/pom.xml     |   4 +-
 .../protocols/webadmin-mailrepository/pom.xml      |   6 +-
 .../protocols/webadmin-rabbitmq-mailqueue/pom.xml  |   4 +-
 .../container/guice/testing/custom-mailets/pom.xml |   2 +-
 server/container/guice/testing/pom.xml             |   4 +-
 server/container/mailbox-adapter/pom.xml           |   2 +-
 server/container/mailbox-jmx/pom.xml               |   4 +-
 .../container/metrics/metrics-es-reporter/pom.xml  |   2 +-
 server/container/spring/pom.xml                    |  20 +-
 server/container/util/pom.xml                      |  16 +-
 server/data/data-cassandra/pom.xml                 |  10 +-
 server/data/data-jmap-cassandra/pom.xml            |   2 +-
 server/data/data-jmap/pom.xml                      |  18 +-
 server/data/data-jpa/pom.xml                       |  18 +-
 server/data/data-ldap/pom.xml                      |  14 +-
 server/mailet/dkim/pom.xml                         |  18 +-
 server/mailet/integration-testing/pom.xml          |  14 +-
 server/mailet/mailetcontainer-camel/pom.xml        |   4 +-
 .../mailetcontainer/impl/JamesMailSpooler.java     | 310 ++++++----
 server/mailet/mailets/pom.xml                      |  49 +-
 server/mailet/mock-smtp-server/pom.xml             |   4 +-
 .../mailrepository-cassandra/pom.xml               |  10 +-
 server/pom.xml                                     |   3 +-
 server/protocols/fetchmail/pom.xml                 |   8 +-
 .../pom.xml                                        |  20 +-
 .../jmap-draft-integration-testing-common/pom.xml  |  18 +-
 .../memory-jmap-draft-integration-testing/pom.xml  |  14 +-
 .../pom.xml                                        |  16 +-
 server/protocols/jmap-draft/pom.xml                |  38 +-
 .../pom.xml                                        |  14 +-
 .../jmap-rfc-8621-integration-tests-common/pom.xml |  14 +-
 .../memory-jmap-rfc-8621-integration-tests/pom.xml |  14 +-
 .../jmap-rfc-8621-integration-tests/pom.xml        |  12 +-
 server/protocols/jmap-rfc-8621/pom.xml             |  25 +-
 .../james/jmap/routes/JMAPApiRoutesTest.scala      |   5 +-
 server/protocols/jmap/pom.xml                      |  11 +-
 server/protocols/protocols-imap4/pom.xml           |  18 +-
 server/protocols/protocols-library/pom.xml         |  16 +-
 server/protocols/protocols-lmtp/pom.xml            |  16 +-
 server/protocols/protocols-managesieve/pom.xml     |  24 +-
 server/protocols/protocols-pop3/pom.xml            |  38 +-
 server/protocols/protocols-smtp/pom.xml            |  64 +-
 server/protocols/webadmin-cli/pom.xml              |  33 +-
 .../memory-webadmin-integration-test/pom.xml       |   2 +-
 .../webadmin-integration-test-common/pom.xml       |   6 +-
 server/protocols/webadmin/pom.xml                  |   4 +-
 .../protocols/webadmin/webadmin-cassandra/pom.xml  |   2 +-
 server/protocols/webadmin/webadmin-core/pom.xml    |  44 +-
 server/protocols/webadmin/webadmin-data/pom.xml    |  12 +-
 .../webadmin/webadmin-dropwizard-metrics/pom.xml   |   8 +-
 server/protocols/webadmin/webadmin-jmap/pom.xml    |  70 +--
 .../webadmin/webadmin-mail-over-web/pom.xml        |  22 +-
 .../webadmin-mailbox-deleted-message-vault/pom.xml |  14 +-
 server/protocols/webadmin/webadmin-mailbox/pom.xml |  24 +-
 .../protocols/webadmin/webadmin-mailqueue/pom.xml  |   4 +-
 .../webadmin/webadmin-mailrepository/pom.xml       |   2 +-
 .../protocols/webadmin/webadmin-rabbitmq/pom.xml   |   8 +-
 server/protocols/webadmin/webadmin-swagger/pom.xml |   2 +-
 server/queue/queue-activemq/pom.xml                |   2 +
 server/queue/queue-file/pom.xml                    |   4 +-
 server/queue/queue-jms/pom.xml                     |  12 +-
 server/queue/queue-memory/pom.xml                  |   9 +-
 server/queue/queue-rabbitmq/pom.xml                |  22 +-
 server/task/task-api/pom.xml                       |   4 +-
 server/task/task-distributed/pom.xml               |   2 +-
 server/task/task-json/pom.xml                      |   2 +-
 server/task/task-memory/pom.xml                    |  12 +-
 src/site/xdoc/contribute.xml                       |  14 +-
 src/site/xdoc/server/config-mailetcontainer.xml    |   3 +-
 testing/base/pom.xml                               |   4 +-
 third-party/linshare/pom.xml                       |   8 +-
 159 files changed, 1607 insertions(+), 1430 deletions(-)
 create mode 100644 docs/modules/servers/assets/images/specialized-instances.png
 create mode 100644 docs/modules/servers/pages/distributed/architecture/specialized-instances.adoc
 copy server/container/guice/memory-guice/src/test/java/org/apache/james/{DisabledGroupExecutionTest.java => DisabledSpoolerTest.java} (55%)


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


[james-project] 01/16: JAMES-2884 [REFACTORING] Use Either instead of SMono for request validation

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 46eba7085edb121391db63343c88b8421f4ff0f6
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Nov 20 16:50:24 2020 +0700

    JAMES-2884 [REFACTORING] Use Either instead of SMono for request validation
---
 .../test/scala/org/apache/james/jmap/routes/JMAPApiRoutesTest.scala  | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/routes/JMAPApiRoutesTest.scala b/server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/routes/JMAPApiRoutesTest.scala
index 6bbce45..8521824 100644
--- a/server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/routes/JMAPApiRoutesTest.scala
+++ b/server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/routes/JMAPApiRoutesTest.scala
@@ -49,10 +49,11 @@ import org.apache.james.metrics.tests.RecordingMetricFactory
 import org.apache.james.user.memory.MemoryUsersRepository
 import org.hamcrest.Matchers.equalTo
 import org.mockito.ArgumentMatchers.any
-import org.mockito.Mockito.{doThrow, mock, when}
+import org.mockito.Mockito.{doReturn, doThrow, mock, when}
 import org.scalatest.BeforeAndAfter
 import org.scalatest.flatspec.AnyFlatSpec
 import org.scalatest.matchers.should.Matchers
+import reactor.core.scala.publisher.SFlux
 
 object JMAPApiRoutesTest {
   private val TEST_CONFIGURATION: JMAPConfiguration = JMAPConfiguration.builder().enable().randomPort().build()
@@ -433,7 +434,7 @@ class JMAPApiRoutesTest extends AnyFlatSpec with BeforeAndAfter with Matchers {
   "RFC-8621 with random error when processing request " should "return 200, with serverFail error, others method call proceed normally" in {
     val mockCoreEchoMethod = mock(classOf[CoreEchoMethod])
 
-    doThrow(new RuntimeException("Unexpected Exception occur, the others method may proceed normally"))
+    doReturn(SFlux.raiseError(new RuntimeException("Unexpected Exception occur, the others method may proceed normally")))
       .doCallRealMethod()
       .when(mockCoreEchoMethod)
       .process(any[Set[CapabilityIdentifier]], any(), any())


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


[james-project] 10/16: JAMES-2124 Uses explicit groupId for mime4j

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 61e9e382a0acbfea803432772bc5da8944a56c0e
Author: Jean Helou <jh...@codamens.fr>
AuthorDate: Wed Nov 18 19:49:10 2020 +0100

    JAMES-2124 Uses explicit groupId for mime4j
---
 javax-mail-extension/pom.xml        |  8 ++++----
 mailbox/api/pom.xml                 |  8 ++++----
 mailbox/lucene/pom.xml              | 16 ++++++++--------
 mailbox/maildir/pom.xml             | 16 ++++++++--------
 mailbox/store/pom.xml               | 24 ++++++++++++------------
 mailet/base/pom.xml                 |  8 ++++----
 mailet/standard/pom.xml             | 10 +++++-----
 mdn/pom.xml                         |  8 ++++----
 pom.xml                             | 20 ++++++++++----------
 protocols/imap/pom.xml              | 16 ++++++++--------
 server/container/util/pom.xml       |  8 ++++----
 server/mailet/dkim/pom.xml          |  8 ++++----
 server/mailet/mailets/pom.xml       | 16 ++++++++--------
 server/protocols/jmap-draft/pom.xml | 16 ++++++++--------
 14 files changed, 91 insertions(+), 91 deletions(-)

diff --git a/javax-mail-extension/pom.xml b/javax-mail-extension/pom.xml
index eeb79aa..0d16da3 100644
--- a/javax-mail-extension/pom.xml
+++ b/javax-mail-extension/pom.xml
@@ -34,10 +34,6 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
@@ -53,5 +49,9 @@
             <groupId>javax.activation</groupId>
             <artifactId>javax.activation-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-core</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/mailbox/api/pom.xml b/mailbox/api/pom.xml
index ab480e2..a6146c3 100644
--- a/mailbox/api/pom.xml
+++ b/mailbox/api/pom.xml
@@ -34,10 +34,6 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-core</artifactId>
         </dependency>
         <dependency>
@@ -100,6 +96,10 @@
             <artifactId>commons-text</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.awaitility</groupId>
             <artifactId>awaitility</artifactId>
             <scope>test</scope>
diff --git a/mailbox/lucene/pom.xml b/mailbox/lucene/pom.xml
index 4f9da7e..caeceb3 100644
--- a/mailbox/lucene/pom.xml
+++ b/mailbox/lucene/pom.xml
@@ -70,14 +70,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>metrics-tests</artifactId>
             <scope>test</scope>
         </dependency>
@@ -95,6 +87,14 @@
             <artifactId>javax.annotation-api</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.lucene</groupId>
             <artifactId>lucene-analyzers</artifactId>
             <version>${lucene.version}</version>
diff --git a/mailbox/maildir/pom.xml b/mailbox/maildir/pom.xml
index f7f7f66..29cd01c 100644
--- a/mailbox/maildir/pom.xml
+++ b/mailbox/maildir/pom.xml
@@ -53,14 +53,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
         </dependency>
@@ -87,6 +79,14 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/mailbox/store/pom.xml b/mailbox/store/pom.xml
index 2868ef7..54d955b 100644
--- a/mailbox/store/pom.xml
+++ b/mailbox/store/pom.xml
@@ -48,18 +48,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-james-utils</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-core</artifactId>
         </dependency>
         <dependency>
@@ -119,6 +107,18 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-james-utils</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.awaitility</groupId>
             <artifactId>awaitility</artifactId>
             <scope>test</scope>
diff --git a/mailet/base/pom.xml b/mailet/base/pom.xml
index 44c6cd5..b856620 100644
--- a/mailet/base/pom.xml
+++ b/mailet/base/pom.xml
@@ -49,10 +49,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-mdn</artifactId>
         </dependency>
         <dependency>
@@ -86,6 +82,10 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-core</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
diff --git a/mailet/standard/pom.xml b/mailet/standard/pom.xml
index cb3349b..a46de03 100644
--- a/mailet/standard/pom.xml
+++ b/mailet/standard/pom.xml
@@ -48,11 +48,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-            <version>${apache-mime4j.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
         </dependency>
@@ -103,6 +98,11 @@
             <artifactId>httpclient</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+            <version>${apache-mime4j.version}</version>
+        </dependency>
+        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/mdn/pom.xml b/mdn/pom.xml
index 26367b4..8578bba 100644
--- a/mdn/pom.xml
+++ b/mdn/pom.xml
@@ -33,10 +33,6 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>
@@ -65,6 +61,10 @@
             <artifactId>javax.activation-api</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.parboiled</groupId>
             <artifactId>parboiled_${scala.base}</artifactId>
             <version>2.2.0</version>
diff --git a/pom.xml b/pom.xml
index f1ff4cc..8ffaff4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1047,16 +1047,6 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-mime4j-dom</artifactId>
-                <version>${apache-mime4j.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
-                <artifactId>apache-mime4j-james-utils</artifactId>
-                <version>${apache-mime4j.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
                 <artifactId>backup</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -2435,6 +2425,16 @@
                 <version>4.5.10</version>
             </dependency>
             <dependency>
+                <groupId>org.apache.james</groupId>
+                <artifactId>apache-mime4j-dom</artifactId>
+                <version>${apache-mime4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.james</groupId>
+                <artifactId>apache-mime4j-james-utils</artifactId>
+                <version>${apache-mime4j.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.james.jspf</groupId>
                 <artifactId>apache-jspf-resolver</artifactId>
                 <version>${apache-jspf-resolver.version}</version>
diff --git a/protocols/imap/pom.xml b/protocols/imap/pom.xml
index 982e215..4d44ce1 100644
--- a/protocols/imap/pom.xml
+++ b/protocols/imap/pom.xml
@@ -50,14 +50,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>
@@ -99,6 +91,14 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/server/container/util/pom.xml b/server/container/util/pom.xml
index 29e5c3c..b3fed4e 100644
--- a/server/container/util/pom.xml
+++ b/server/container/util/pom.xml
@@ -35,10 +35,6 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
@@ -89,6 +85,10 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.awaitility</groupId>
             <artifactId>awaitility</artifactId>
             <scope>test</scope>
diff --git a/server/mailet/dkim/pom.xml b/server/mailet/dkim/pom.xml
index 42f5f6b..be32d89 100644
--- a/server/mailet/dkim/pom.xml
+++ b/server/mailet/dkim/pom.xml
@@ -65,11 +65,11 @@
                     <artifactId>apache-mailet</artifactId>
                 </exclusion>
                 <exclusion>
-                    <groupId>${james.groupId}</groupId>
+                    <groupId>org.apache.james</groupId>
                     <artifactId>apache-mime4j-core</artifactId>
                 </exclusion>
                 <exclusion>
-                    <groupId>${james.groupId}</groupId>
+                    <groupId>org.apache.james</groupId>
                     <artifactId>apache-mime4j-dom</artifactId>
                 </exclusion>
                 <exclusion>
@@ -94,11 +94,11 @@
                     <artifactId>apache-mailet</artifactId>
                 </exclusion>
                 <exclusion>
-                    <groupId>${james.groupId}</groupId>
+                    <groupId>org.apache.james</groupId>
                     <artifactId>apache-mime4j-core</artifactId>
                 </exclusion>
                 <exclusion>
-                    <groupId>${james.groupId}</groupId>
+                    <groupId>org.apache.james</groupId>
                     <artifactId>apache-mime4j-dom</artifactId>
                 </exclusion>
                 <exclusion>
diff --git a/server/mailet/mailets/pom.xml b/server/mailet/mailets/pom.xml
index b78788b..7926369 100644
--- a/server/mailet/mailets/pom.xml
+++ b/server/mailet/mailets/pom.xml
@@ -90,14 +90,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-james-utils</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-mdn</artifactId>
         </dependency>
         <dependency>
@@ -218,6 +210,14 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-james-utils</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.james.jspf</groupId>
             <artifactId>apache-jspf-resolver</artifactId>
         </dependency>
diff --git a/server/protocols/jmap-draft/pom.xml b/server/protocols/jmap-draft/pom.xml
index 8352479..9da08e2 100644
--- a/server/protocols/jmap-draft/pom.xml
+++ b/server/protocols/jmap-draft/pom.xml
@@ -65,14 +65,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>event-sourcing-event-store-memory</artifactId>
             <scope>test</scope>
         </dependency>
@@ -228,6 +220,14 @@
             <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.awaitility</groupId>
             <artifactId>awaitility</artifactId>
             <scope>test</scope>


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


[james-project] 08/16: JAMES-2124 Sorts reporting to match maven xsd position

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 8eb8d8108c51953ed821674cb37bc52f16181aa1
Author: Jean Helou <jh...@codamens.fr>
AuthorDate: Wed Nov 18 11:47:50 2020 +0100

    JAMES-2124 Sorts reporting to match maven xsd position
---
 pom.xml | 128 ++++++++++++++++++++++++++++++++--------------------------------
 1 file changed, 64 insertions(+), 64 deletions(-)

diff --git a/pom.xml b/pom.xml
index 240c8e2..f1ff4cc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3400,6 +3400,70 @@
             </extension>
         </extensions>
     </build>
+    <reporting>
+        <plugins>
+            <!-- Order matters. First project-info-reports, second jxr. -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-project-info-reports-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jxr-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-report-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+            </plugin>
+            <!--
+            See JAMES-2511 basicRuleSet.xml do not exist so when re-enabled this plugin failed.
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-pmd-plugin</artifactId>
+            </plugin>
+            -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>findbugs-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>versions-maven-plugin</artifactId>
+            </plugin>
+
+            <!--
+                <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-changes-plugin</artifactId>
+                <configuration>
+                <onlyCurrentVersion>true</onlyCurrentVersion>
+                <resolutionIds>Fixed</resolutionIds>
+                <statusIds>Resolved,Closed</statusIds>
+                <columnNames>Type,Key,Summary,Status,Resolution,Fix Version</columnNames>
+                </configuration>
+                <reportSets>
+                <reportSet>
+                <reports>
+                <report>jira-report</report>
+                </reports>
+                </reportSet>
+                </reportSets>
+                </plugin>
+            -->
+        </plugins>
+    </reporting>
 
     <profiles>
         <!--
@@ -3506,68 +3570,4 @@
             </build>
         </profile>
     </profiles>
-    <reporting>
-        <plugins>
-            <!-- Order matters. First project-info-reports, second jxr. -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jxr-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-report-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-            </plugin>
-            <!--
-            See JAMES-2511 basicRuleSet.xml do not exist so when re-enabled this plugin failed.
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-pmd-plugin</artifactId>
-            </plugin>
-            -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>findbugs-maven-plugin</artifactId>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>versions-maven-plugin</artifactId>
-            </plugin>
-
-            <!--
-                <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-changes-plugin</artifactId>
-                <configuration>
-                <onlyCurrentVersion>true</onlyCurrentVersion>
-                <resolutionIds>Fixed</resolutionIds>
-                <statusIds>Resolved,Closed</statusIds>
-                <columnNames>Type,Key,Summary,Status,Resolution,Fix Version</columnNames>
-                </configuration>
-                <reportSets>
-                <reportSet>
-                <reports>
-                <report>jira-report</report>
-                </reports>
-                </reportSet>
-                </reportSets>
-                </plugin>
-            -->
-        </plugins>
-    </reporting>
 </project>


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


[james-project] 05/16: JAMES-2124 Sorts dependencies and dependencyManagement

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 28713c21a2d9830e2cdb014fc76856816e2e0fc2
Author: Jean Helou <jh...@codamens.fr>
AuthorDate: Wed Nov 18 11:38:05 2020 +0100

    JAMES-2124 Sorts dependencies and dependencyManagement
---
 backends-common/elasticsearch/pom.xml              |  14 +-
 event-sourcing/event-sourcing-core/pom.xml         |   8 +-
 event-sourcing/event-store-cassandra/pom.xml       |  18 +-
 javax-mail-extension/pom.xml                       |   8 +-
 mailbox/api/pom.xml                                |   8 +-
 mailbox/cassandra/pom.xml                          |   2 +-
 mailbox/elasticsearch/pom.xml                      |   2 +-
 mailbox/event/event-cassandra/pom.xml              |  16 +-
 mailbox/event/event-memory/pom.xml                 |  22 +-
 mailbox/event/event-rabbitmq/pom.xml               |  52 +--
 mailbox/event/json/pom.xml                         |  14 +-
 mailbox/lucene/pom.xml                             |   2 +-
 .../deleted-messages-vault-cassandra/pom.xml       |  20 +-
 mailbox/plugin/deleted-messages-vault/pom.xml      |   6 +-
 mailbox/plugin/quota-search-elasticsearch/pom.xml  |  11 +-
 mailbox/plugin/spamassassin/pom.xml                |   8 +-
 mailbox/scanning-search/pom.xml                    |   4 +-
 mailbox/tools/quota-recompute/pom.xml              |   2 +-
 mailet/api/pom.xml                                 |  10 +-
 mailet/base/pom.xml                                |   4 +-
 mailet/standard/pom.xml                            |   6 +-
 mdn/pom.xml                                        |   2 +-
 metrics/metrics-dropwizard/pom.xml                 |   8 +-
 metrics/metrics-tests/pom.xml                      |   8 +-
 mpt/impl/imap-mailbox/cyrus/pom.xml                |   8 +-
 mpt/impl/imap-mailbox/inmemory/pom.xml             |   4 +-
 mpt/impl/imap-mailbox/lucenesearch/pom.xml         |  12 +-
 mpt/impl/imap-mailbox/rabbitmq/pom.xml             |  24 +-
 mpt/impl/managesieve/core/pom.xml                  |   8 +-
 .../smtp/cassandra-rabbitmq-object-storage/pom.xml |   8 +-
 mpt/mavenplugin/pom.xml                            |  18 +-
 pom.xml                                            | 396 ++++++++++-----------
 protocols/imap/pom.xml                             |   9 +-
 protocols/lmtp/pom.xml                             |  10 +-
 protocols/netty/pom.xml                            |   8 +-
 protocols/pop3/pom.xml                             |  10 +-
 protocols/smtp/pom.xml                             |  10 +-
 server/app/pom.xml                                 |  56 +--
 server/blob/blob-api/pom.xml                       |   8 +-
 server/blob/blob-cassandra/pom.xml                 |   8 +-
 server/blob/blob-export-api/pom.xml                |   2 +-
 server/blob/blob-s3/pom.xml                        |   8 +-
 server/container/core/pom.xml                      |  10 +-
 server/container/guice/cassandra-guice/pom.xml     |  34 +-
 .../guice/cassandra-rabbitmq-guice/pom.xml         |   8 +-
 .../guice/cassandra-rabbitmq-ldap-guice/pom.xml    |   2 +-
 server/container/guice/configuration/pom.xml       |   2 +-
 server/container/guice/guice-common/pom.xml        |   6 +-
 server/container/guice/guice-utils/pom.xml         |   8 +-
 server/container/guice/jpa-guice/pom.xml           |  16 +-
 server/container/guice/jpa-smtp-mariadb/pom.xml    |  12 +-
 server/container/guice/jpa-smtp/pom.xml            |  16 +-
 server/container/guice/mailet/pom.xml              |   8 +-
 server/container/guice/memory-guice/pom.xml        |  20 +-
 server/container/guice/protocols/jmap/pom.xml      |   4 +-
 .../container/guice/protocols/managedsieve/pom.xml |   8 +-
 server/container/guice/protocols/netty/pom.xml     |   8 +-
 .../guice/protocols/webadmin-jmap/pom.xml          |   4 +-
 .../guice/protocols/webadmin-mail-over-web/pom.xml |   8 +-
 server/container/mailbox-adapter/pom.xml           |   2 +-
 server/container/mailbox-jmx/pom.xml               |   4 +-
 .../container/metrics/metrics-es-reporter/pom.xml  |   2 +-
 server/container/spring/pom.xml                    |  20 +-
 server/container/util/pom.xml                      |   8 +-
 server/data/data-cassandra/pom.xml                 |  10 +-
 server/data/data-jmap-cassandra/pom.xml            |   2 +-
 server/data/data-jmap/pom.xml                      |  18 +-
 server/data/data-jpa/pom.xml                       |  18 +-
 server/data/data-ldap/pom.xml                      |  14 +-
 server/mailet/dkim/pom.xml                         |  10 +-
 server/mailet/integration-testing/pom.xml          |  14 +-
 server/mailet/mailetcontainer-camel/pom.xml        |   4 +-
 server/mailet/mailets/pom.xml                      |  37 +-
 server/mailet/mock-smtp-server/pom.xml             |   4 +-
 .../mailrepository-cassandra/pom.xml               |  10 +-
 server/protocols/fetchmail/pom.xml                 |   8 +-
 .../pom.xml                                        |  16 +-
 .../jmap-draft-integration-testing-common/pom.xml  |  18 +-
 .../memory-jmap-draft-integration-testing/pom.xml  |  12 +-
 .../pom.xml                                        |  14 +-
 server/protocols/jmap-draft/pom.xml                |  22 +-
 server/protocols/jmap-rfc-8621/pom.xml             |  22 +-
 server/protocols/jmap/pom.xml                      |   4 +-
 server/protocols/protocols-imap4/pom.xml           |  18 +-
 server/protocols/protocols-library/pom.xml         |  16 +-
 server/protocols/protocols-lmtp/pom.xml            |  16 +-
 server/protocols/protocols-managesieve/pom.xml     |  24 +-
 server/protocols/protocols-pop3/pom.xml            |  38 +-
 server/protocols/protocols-smtp/pom.xml            |  64 ++--
 server/protocols/webadmin-cli/pom.xml              |  10 +-
 .../memory-webadmin-integration-test/pom.xml       |   2 +-
 .../webadmin-integration-test-common/pom.xml       |   6 +-
 .../protocols/webadmin/webadmin-cassandra/pom.xml  |   2 +-
 server/protocols/webadmin/webadmin-core/pom.xml    |  44 +--
 server/protocols/webadmin/webadmin-data/pom.xml    |  10 +-
 .../webadmin/webadmin-dropwizard-metrics/pom.xml   |   6 +-
 server/protocols/webadmin/webadmin-jmap/pom.xml    |  68 ++--
 .../webadmin/webadmin-mail-over-web/pom.xml        |  18 +-
 .../webadmin-mailbox-deleted-message-vault/pom.xml |  12 +-
 server/protocols/webadmin/webadmin-mailbox/pom.xml |  22 +-
 .../protocols/webadmin/webadmin-mailqueue/pom.xml  |   2 +-
 .../protocols/webadmin/webadmin-rabbitmq/pom.xml   |   6 +-
 server/queue/queue-activemq/pom.xml                |   2 +
 server/queue/queue-file/pom.xml                    |   4 +-
 server/queue/queue-jms/pom.xml                     |  12 +-
 server/queue/queue-memory/pom.xml                  |   4 +-
 server/queue/queue-rabbitmq/pom.xml                |  22 +-
 server/task/task-memory/pom.xml                    |   8 +-
 third-party/linshare/pom.xml                       |   8 +-
 109 files changed, 886 insertions(+), 887 deletions(-)

diff --git a/backends-common/elasticsearch/pom.xml b/backends-common/elasticsearch/pom.xml
index 4fbf9e9..fb4ea34 100644
--- a/backends-common/elasticsearch/pom.xml
+++ b/backends-common/elasticsearch/pom.xml
@@ -34,12 +34,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-util</artifactId>
+            <artifactId>james-server-testing</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-testing</artifactId>
-            <scope>test</scope>
+            <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -51,10 +51,6 @@
             <artifactId>throwing-lambdas</artifactId>
         </dependency>
         <dependency>
-            <groupId>javax.annotation</groupId>
-            <artifactId>javax.annotation-api</artifactId>
-        </dependency>
-        <dependency>
             <groupId>io.github.openfeign</groupId>
             <artifactId>feign-core</artifactId>
         </dependency>
@@ -63,6 +59,10 @@
             <artifactId>feign-slf4j</artifactId>
         </dependency>
         <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-configuration2</artifactId>
         </dependency>
diff --git a/event-sourcing/event-sourcing-core/pom.xml b/event-sourcing/event-sourcing-core/pom.xml
index 9497ae1..dea507b 100644
--- a/event-sourcing/event-sourcing-core/pom.xml
+++ b/event-sourcing/event-sourcing-core/pom.xml
@@ -69,10 +69,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.scala-lang</groupId>
             <artifactId>scala-library</artifactId>
         </dependency>
@@ -80,6 +76,10 @@
             <groupId>org.scala-lang.modules</groupId>
             <artifactId>scala-java8-compat_${scala.base}</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
     </dependencies>
     <build>
         <plugins>
diff --git a/event-sourcing/event-store-cassandra/pom.xml b/event-sourcing/event-store-cassandra/pom.xml
index e083ea4..1ef03e7 100644
--- a/event-sourcing/event-store-cassandra/pom.xml
+++ b/event-sourcing/event-store-cassandra/pom.xml
@@ -49,17 +49,17 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>event-sourcing-event-store-api</artifactId>
+            <artifactId>event-sourcing-core</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>event-sourcing-event-store-api</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>event-sourcing-core</artifactId>
+            <artifactId>event-sourcing-event-store-api</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
@@ -93,11 +93,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>testcontainers</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.scala-lang</groupId>
             <artifactId>scala-library</artifactId>
         </dependency>
@@ -105,6 +100,11 @@
             <groupId>org.scala-lang.modules</groupId>
             <artifactId>scala-java8-compat_${scala.base}</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>testcontainers</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     <build>
         <plugins>
diff --git a/javax-mail-extension/pom.xml b/javax-mail-extension/pom.xml
index 8e34b2a..eeb79aa 100644
--- a/javax-mail-extension/pom.xml
+++ b/javax-mail-extension/pom.xml
@@ -42,14 +42,14 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>com.sun.mail</groupId>
-            <artifactId>javax.mail</artifactId>
-        </dependency>
-        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>javax.mail</artifactId>
+        </dependency>
+        <dependency>
             <groupId>javax.activation</groupId>
             <artifactId>javax.activation-api</artifactId>
         </dependency>
diff --git a/mailbox/api/pom.xml b/mailbox/api/pom.xml
index dc16b36..ab480e2 100644
--- a/mailbox/api/pom.xml
+++ b/mailbox/api/pom.xml
@@ -34,6 +34,10 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>apache-mime4j-dom</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-core</artifactId>
         </dependency>
         <dependency>
@@ -47,10 +51,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mime4j-dom</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>metrics-tests</artifactId>
             <scope>test</scope>
         </dependency>
diff --git a/mailbox/cassandra/pom.xml b/mailbox/cassandra/pom.xml
index 67e7546..c58966f 100644
--- a/mailbox/cassandra/pom.xml
+++ b/mailbox/cassandra/pom.xml
@@ -90,8 +90,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-json</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/mailbox/elasticsearch/pom.xml b/mailbox/elasticsearch/pom.xml
index 0d909d8..607e814 100644
--- a/mailbox/elasticsearch/pom.xml
+++ b/mailbox/elasticsearch/pom.xml
@@ -65,8 +65,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/mailbox/event/event-cassandra/pom.xml b/mailbox/event/event-cassandra/pom.xml
index 1aaa04d..60c5761 100644
--- a/mailbox/event/event-cassandra/pom.xml
+++ b/mailbox/event/event-cassandra/pom.xml
@@ -33,14 +33,19 @@
 
     <dependencies>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>apache-james-backends-cassandra</artifactId>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>apache-james-backends-cassandra</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
@@ -49,12 +54,7 @@
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-store</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -62,8 +62,8 @@
             <artifactId>apache-james-mailbox-event-json</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>apache-james-mailbox-store</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/mailbox/event/event-memory/pom.xml b/mailbox/event/event-memory/pom.xml
index 1069502..ebeba02 100644
--- a/mailbox/event/event-memory/pom.xml
+++ b/mailbox/event/event-memory/pom.xml
@@ -33,14 +33,24 @@
 
     <dependencies>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>metrics-tests</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
@@ -51,16 +61,6 @@
             <artifactId>metrics-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>metrics-tests</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>io.projectreactor</groupId>
             <artifactId>reactor-core</artifactId>
         </dependency>
diff --git a/mailbox/event/event-rabbitmq/pom.xml b/mailbox/event/event-rabbitmq/pom.xml
index 84be4e9..065a3dc 100644
--- a/mailbox/event/event-rabbitmq/pom.xml
+++ b/mailbox/event/event-rabbitmq/pom.xml
@@ -33,61 +33,61 @@
 
     <dependencies>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-backends-rabbitmq</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>apache-james-mailbox-event-memory</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-backends-rabbitmq</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>apache-james-mailbox-store</artifactId>
             <scope>test</scope>
-            <type>test-jar</type>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-lifecycle-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-event-json</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-event-memory</artifactId>
+            <artifactId>metrics-tests</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-store</artifactId>
+            <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-lifecycle-api</artifactId>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>apache-james-backends-rabbitmq</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-testing</artifactId>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>apache-james-backends-rabbitmq</artifactId>
+            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>metrics-api</artifactId>
+            <artifactId>apache-james-mailbox-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>metrics-tests</artifactId>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>apache-james-mailbox-api</artifactId>
+            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>apache-james-mailbox-event-json</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>metrics-api</artifactId>
         </dependency>
         <dependency>
             <groupId>io.projectreactor</groupId>
diff --git a/mailbox/event/json/pom.xml b/mailbox/event/json/pom.xml
index 8d88ee8..ed7c614 100644
--- a/mailbox/event/json/pom.xml
+++ b/mailbox/event/json/pom.xml
@@ -33,6 +33,11 @@
 
     <dependencies>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
         </dependency>
@@ -48,11 +53,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>com.beachape</groupId>
             <artifactId>enumeratum_${scala.base}</artifactId>
             <version>1.5.13</version>
@@ -76,8 +76,8 @@
             <artifactId>scala-library</artifactId>
         </dependency>
         <dependency>
-          <groupId>org.scala-lang.modules</groupId>
-          <artifactId>scala-java8-compat_${scala.base}</artifactId>
+            <groupId>org.scala-lang.modules</groupId>
+            <artifactId>scala-java8-compat_${scala.base}</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/mailbox/lucene/pom.xml b/mailbox/lucene/pom.xml
index 15a822f..4f9da7e 100644
--- a/mailbox/lucene/pom.xml
+++ b/mailbox/lucene/pom.xml
@@ -55,8 +55,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml b/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml
index b8b7547..5ff92d2 100644
--- a/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml
+++ b/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml
@@ -30,6 +30,16 @@
 
     <dependencies>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-testing</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>apache-james-backends-cassandra</artifactId>
         </dependency>
@@ -61,16 +71,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-testing</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/mailbox/plugin/deleted-messages-vault/pom.xml b/mailbox/plugin/deleted-messages-vault/pom.xml
index 3317bd8..cea7249 100644
--- a/mailbox/plugin/deleted-messages-vault/pom.xml
+++ b/mailbox/plugin/deleted-messages-vault/pom.xml
@@ -48,8 +48,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -58,8 +58,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-store</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -73,8 +73,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>backup</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/mailbox/plugin/quota-search-elasticsearch/pom.xml b/mailbox/plugin/quota-search-elasticsearch/pom.xml
index d3051cd..ada1865 100644
--- a/mailbox/plugin/quota-search-elasticsearch/pom.xml
+++ b/mailbox/plugin/quota-search-elasticsearch/pom.xml
@@ -112,6 +112,11 @@
             <artifactId>jackson-datatype-jdk8</artifactId>
         </dependency>
         <dependency>
+            <groupId>net.javacrumbs.json-unit</groupId>
+            <artifactId>json-unit-assertj</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.junit.jupiter</groupId>
             <artifactId>junit-jupiter-migrationsupport</artifactId>
             <scope>test</scope>
@@ -121,12 +126,6 @@
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>net.javacrumbs.json-unit</groupId>
-            <artifactId>json-unit-assertj</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
-
 </project>
diff --git a/mailbox/plugin/spamassassin/pom.xml b/mailbox/plugin/spamassassin/pom.xml
index 7334678..0985acf 100644
--- a/mailbox/plugin/spamassassin/pom.xml
+++ b/mailbox/plugin/spamassassin/pom.xml
@@ -44,10 +44,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-store</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
             <scope>test</scope>
         </dependency>
@@ -59,6 +55,10 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>apache-james-mailbox-store</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-spamassassin</artifactId>
         </dependency>
         <dependency>
diff --git a/mailbox/scanning-search/pom.xml b/mailbox/scanning-search/pom.xml
index 356b345..235dc75 100644
--- a/mailbox/scanning-search/pom.xml
+++ b/mailbox/scanning-search/pom.xml
@@ -39,8 +39,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -50,8 +50,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/mailbox/tools/quota-recompute/pom.xml b/mailbox/tools/quota-recompute/pom.xml
index 2c59165..36675ec 100644
--- a/mailbox/tools/quota-recompute/pom.xml
+++ b/mailbox/tools/quota-recompute/pom.xml
@@ -39,8 +39,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-json</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/mailet/api/pom.xml b/mailet/api/pom.xml
index c084af6..558261f 100644
--- a/mailet/api/pom.xml
+++ b/mailet/api/pom.xml
@@ -37,6 +37,11 @@
 
     <dependencies>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
         </dependency>
@@ -55,11 +60,6 @@
             <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
         </dependency>
diff --git a/mailet/base/pom.xml b/mailet/base/pom.xml
index 4224eb0..44c6cd5 100644
--- a/mailet/base/pom.xml
+++ b/mailet/base/pom.xml
@@ -53,7 +53,7 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>javax-mail-extension</artifactId>
+            <artifactId>james-mdn</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -62,7 +62,7 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-mdn</artifactId>
+            <artifactId>javax-mail-extension</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/mailet/standard/pom.xml b/mailet/standard/pom.xml
index 1fc19d9..cb3349b 100644
--- a/mailet/standard/pom.xml
+++ b/mailet/standard/pom.xml
@@ -53,12 +53,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-util</artifactId>
+            <artifactId>james-server-testing</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-testing</artifactId>
-            <scope>test</scope>
+            <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/mdn/pom.xml b/mdn/pom.xml
index 77fc8cf..26367b4 100644
--- a/mdn/pom.xml
+++ b/mdn/pom.xml
@@ -74,7 +74,7 @@
             <artifactId>scala-java8-compat_${scala.base}</artifactId>
             <scope>test</scope>
         </dependency>
-</dependencies>
+    </dependencies>
 
     <build>
         <plugins>
diff --git a/metrics/metrics-dropwizard/pom.xml b/metrics/metrics-dropwizard/pom.xml
index 256031a..e4df4ff 100644
--- a/metrics/metrics-dropwizard/pom.xml
+++ b/metrics/metrics-dropwizard/pom.xml
@@ -32,17 +32,17 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>metrics-api</artifactId>
+            <artifactId>james-server-lifecycle-api</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>metrics-api</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-lifecycle-api</artifactId>
+            <artifactId>metrics-api</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/metrics/metrics-tests/pom.xml b/metrics/metrics-tests/pom.xml
index b692fcd..6b44a0a 100644
--- a/metrics/metrics-tests/pom.xml
+++ b/metrics/metrics-tests/pom.xml
@@ -51,14 +51,14 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
             <groupId>com.github.steveash.guavate</groupId>
             <artifactId>guavate</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+        <dependency>
             <groupId>io.projectreactor</groupId>
             <artifactId>reactor-core</artifactId>
         </dependency>
diff --git a/mpt/impl/imap-mailbox/cyrus/pom.xml b/mpt/impl/imap-mailbox/cyrus/pom.xml
index 2ceb816..22c01a8 100644
--- a/mpt/impl/imap-mailbox/cyrus/pom.xml
+++ b/mpt/impl/imap-mailbox/cyrus/pom.xml
@@ -41,10 +41,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.awaitility</groupId>
-            <artifactId>awaitility</artifactId>
-        </dependency>
-        <dependency>
             <groupId>com.google.inject</groupId>
             <artifactId>guice</artifactId>
         </dependency>
@@ -59,5 +55,9 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.awaitility</groupId>
+            <artifactId>awaitility</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/mpt/impl/imap-mailbox/inmemory/pom.xml b/mpt/impl/imap-mailbox/inmemory/pom.xml
index 247c1eb..0b15aca 100644
--- a/mpt/impl/imap-mailbox/inmemory/pom.xml
+++ b/mpt/impl/imap-mailbox/inmemory/pom.xml
@@ -34,8 +34,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -45,8 +45,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/mpt/impl/imap-mailbox/lucenesearch/pom.xml b/mpt/impl/imap-mailbox/lucenesearch/pom.xml
index 235dea6..c4d326f 100644
--- a/mpt/impl/imap-mailbox/lucenesearch/pom.xml
+++ b/mpt/impl/imap-mailbox/lucenesearch/pom.xml
@@ -46,21 +46,21 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-memory</artifactId>
+            <artifactId>apache-james-mailbox-lucene</artifactId>
+            <type>test-jar</type>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-memory</artifactId>
-            <type>test-jar</type>
+            <artifactId>apache-james-mailbox-lucene</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-lucene</artifactId>
-            <type>test-jar</type>
+            <artifactId>apache-james-mailbox-memory</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-lucene</artifactId>
+            <artifactId>apache-james-mailbox-memory</artifactId>
+            <type>test-jar</type>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/mpt/impl/imap-mailbox/rabbitmq/pom.xml b/mpt/impl/imap-mailbox/rabbitmq/pom.xml
index 4944fce..f642658 100644
--- a/mpt/impl/imap-mailbox/rabbitmq/pom.xml
+++ b/mpt/impl/imap-mailbox/rabbitmq/pom.xml
@@ -32,16 +32,6 @@
 
     <dependencies>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-backends-rabbitmq</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-backends-rabbitmq</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-        <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
             <scope>test</scope>
@@ -49,8 +39,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -65,8 +55,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -88,6 +78,16 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>apache-james-backends-rabbitmq</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>apache-james-backends-rabbitmq</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>testcontainers</artifactId>
             <scope>test</scope>
diff --git a/mpt/impl/managesieve/core/pom.xml b/mpt/impl/managesieve/core/pom.xml
index 0e1ab08..aea0941 100644
--- a/mpt/impl/managesieve/core/pom.xml
+++ b/mpt/impl/managesieve/core/pom.xml
@@ -44,6 +44,10 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-managesieve</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.junit.jupiter</groupId>
             <artifactId>junit-jupiter-engine</artifactId>
         </dependency>
@@ -56,10 +60,6 @@
             <artifactId>junit-vintage-engine</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-managesieve</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>testcontainers</artifactId>
         </dependency>
diff --git a/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml b/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml
index 1207199..4538563 100644
--- a/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml
+++ b/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml
@@ -49,6 +49,10 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>apache-james-mpt-smtp-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>blob-s3</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
@@ -61,10 +65,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mpt-smtp-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-cassandra-rabbitmq-guice</artifactId>
         </dependency>
         <dependency>
diff --git a/mpt/mavenplugin/pom.xml b/mpt/mavenplugin/pom.xml
index 976ea8b..3aa9ff0 100644
--- a/mpt/mavenplugin/pom.xml
+++ b/mpt/mavenplugin/pom.xml
@@ -124,6 +124,15 @@ to the library requiring no extra coding.</description>
         </plugins>
     </build>
 
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-plugin-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </reporting>
+
     <profiles>
         <profile>
             <id>site-reports</id>
@@ -150,13 +159,4 @@ to the library requiring no extra coding.</description>
             </build>
         </profile>
     </profiles>
-
-    <reporting>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-plugin-plugin</artifactId>
-            </plugin>
-        </plugins>
-    </reporting>
 </project>
diff --git a/pom.xml b/pom.xml
index e9282ca..bf064ca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -654,18 +654,6 @@
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>io.projectreactor</groupId>
-                <artifactId>reactor-bom</artifactId>
-                <version>Dysprosium-SR6</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>io.projectreactor</groupId>
-                <artifactId>reactor-scala-extensions_${scala.base}</artifactId>
-                <version>0.5.1</version>
-            </dependency>
-            <dependency>
                 <groupId>${james.groupId}</groupId>
                 <artifactId>apache-james-backends-cassandra</artifactId>
                 <version>${project.version}</version>
@@ -722,17 +710,6 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-spamassassin</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-spamassassin</artifactId>
-                <version>${project.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
                 <artifactId>apache-james-mailbox-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -761,8 +738,8 @@
             <dependency>
                 <groupId>${james.groupId}</groupId>
                 <artifactId>apache-james-mailbox-deleted-messages-vault</artifactId>
-                <type>test-jar</type>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
@@ -840,50 +817,50 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-mailbox-quota-search</artifactId>
+                <artifactId>apache-james-mailbox-quota-mailing</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-mailbox-quota-search</artifactId>
+                <artifactId>apache-james-mailbox-quota-mailing</artifactId>
                 <version>${project.version}</version>
                 <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-mailbox-quota-search-scanning</artifactId>
+                <artifactId>apache-james-mailbox-quota-search</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-mailbox-quota-search-elasticsearch</artifactId>
+                <artifactId>apache-james-mailbox-quota-search</artifactId>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-mailbox-scanning-search</artifactId>
+                <artifactId>apache-james-mailbox-quota-search-elasticsearch</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-mailbox-scanning-search</artifactId>
+                <artifactId>apache-james-mailbox-quota-search-scanning</artifactId>
                 <version>${project.version}</version>
-                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-mailbox-spamassassin</artifactId>
+                <artifactId>apache-james-mailbox-scanning-search</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-mailbox-quota-mailing</artifactId>
+                <artifactId>apache-james-mailbox-scanning-search</artifactId>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>apache-james-mailbox-quota-mailing</artifactId>
-                <type>test-jar</type>
+                <artifactId>apache-james-mailbox-spamassassin</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
@@ -975,6 +952,17 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
+                <artifactId>apache-james-spamassassin</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
+                <artifactId>apache-james-spamassassin</artifactId>
+                <version>${project.version}</version>
+                <type>test-jar</type>
+            </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
                 <artifactId>apache-jsieve-core</artifactId>
                 <version>${jsieve.version}</version>
                 <exclusions>
@@ -1046,7 +1034,7 @@
                 <artifactId>apache-mailet-test</artifactId>
                 <version>${project.version}</version>
             </dependency>
-             <dependency>
+            <dependency>
                 <groupId>${james.groupId}</groupId>
                 <artifactId>apache-mime4j-core</artifactId>
                 <version>${apache-mime4j.version}</version>
@@ -1080,22 +1068,6 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-core</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
-                <artifactId>james-core</artifactId>
-                <type>test-jar</type>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
-                <artifactId>james-mdn</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
                 <artifactId>blob-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -1128,11 +1100,6 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>blob-storage-strategy</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
                 <artifactId>blob-export-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -1144,8 +1111,8 @@
             <dependency>
                 <groupId>${james.groupId}</groupId>
                 <artifactId>blob-export-file</artifactId>
-                <type>test-jar</type>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
@@ -1196,7 +1163,12 @@
                 <version>${project.version}</version>
                 <type>test-jar</type>
             </dependency>
-             <dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
+                <artifactId>blob-storage-strategy</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>${james.groupId}</groupId>
                 <artifactId>event-sourcing-core</artifactId>
                 <version>${project.version}</version>
@@ -1258,6 +1230,17 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
+                <artifactId>james-core</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
+                <artifactId>james-core</artifactId>
+                <version>${project.version}</version>
+                <type>test-jar</type>
+            </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
                 <artifactId>james-json</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -1269,6 +1252,11 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
+                <artifactId>james-mdn</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
                 <artifactId>james-server-blob</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -1461,11 +1449,6 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-guice-utils</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
                 <artifactId>james-server-guice-imap</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -1519,6 +1502,11 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
+                <artifactId>james-server-guice-utils</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
                 <artifactId>james-server-guice-webadmin</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -1534,19 +1522,19 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-jmap-rfc-8621</artifactId>
+                <artifactId>james-server-jmap-draft-integration-testing</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
                 <artifactId>james-server-jmap-draft-integration-testing</artifactId>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-jmap-draft-integration-testing</artifactId>
+                <artifactId>james-server-jmap-rfc-8621</artifactId>
                 <version>${project.version}</version>
-                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
@@ -1560,6 +1548,11 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
+                <artifactId>james-server-mail-store</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
                 <artifactId>james-server-mailbox-adapter</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -1581,49 +1574,49 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-mailetcontainer-api</artifactId>
+                <artifactId>james-server-mailet-dkim</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
                 <artifactId>james-server-mailetcontainer-api</artifactId>
                 <version>${project.version}</version>
-                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-mailetcontainer-camel</artifactId>
+                <artifactId>james-server-mailetcontainer-api</artifactId>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-mailrepository-api</artifactId>
+                <artifactId>james-server-mailetcontainer-camel</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-mailrepository-api</artifactId>
+                <artifactId>james-server-mailets</artifactId>
                 <version>${project.version}</version>
-                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-mailrepository-cassandra</artifactId>
+                <artifactId>james-server-mailrepository-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-mailrepository-memory</artifactId>
+                <artifactId>james-server-mailrepository-api</artifactId>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-mailet-dkim</artifactId>
+                <artifactId>james-server-mailrepository-cassandra</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-mailets</artifactId>
+                <artifactId>james-server-mailrepository-memory</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
@@ -1639,11 +1632,6 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-mail-store</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
                 <artifactId>james-server-onami</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -1702,11 +1690,6 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-queue-rabbitmq</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.groupId}</groupId>
                 <artifactId>james-server-queue-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
@@ -1743,6 +1726,11 @@
                 <version>${project.version}</version>
                 <type>test-jar</type>
             </dependency>
+            <dependency>
+                <groupId>${james.groupId}</groupId>
+                <artifactId>james-server-queue-rabbitmq</artifactId>
+                <version>${project.version}</version>
+            </dependency>
 
             <dependency>
                 <groupId>${james.groupId}</groupId>
@@ -1751,51 +1739,51 @@
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-testing</artifactId>
+                <artifactId>james-server-task-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-task-memory</artifactId>
+                <artifactId>james-server-task-api</artifactId>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-task-memory</artifactId>
-                <type>test-jar</type>
+                <artifactId>james-server-task-distributed</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-task-api</artifactId>
+                <artifactId>james-server-task-distributed</artifactId>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-task-api</artifactId>
-                <type>test-jar</type>
+                <artifactId>james-server-task-json</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-task-distributed</artifactId>
+                <artifactId>james-server-task-json</artifactId>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-task-distributed</artifactId>
-                <type>test-jar</type>
+                <artifactId>james-server-task-memory</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-task-json</artifactId>
+                <artifactId>james-server-task-memory</artifactId>
                 <version>${project.version}</version>
+                <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>${james.groupId}</groupId>
-                <artifactId>james-server-task-json</artifactId>
-                <type>test-jar</type>
+                <artifactId>james-server-testing</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
@@ -1948,6 +1936,65 @@
                 <version>${project.version}</version>
             </dependency>
             <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-api</artifactId>
+                <version>${project.version}</version>
+                <type>test-jar</type>
+            </dependency>
+            <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-imap</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-imap</artifactId>
+                <version>${project.version}</version>
+                <type>test-jar</type>
+            </dependency>
+            <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-lmtp</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-managesieve</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-managesieve</artifactId>
+                <version>${project.version}</version>
+                <type>test-jar</type>
+            </dependency>
+            <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-netty</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-pop3</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-smtp</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>${james.protocols.groupId}</groupId>
+                <artifactId>protocols-smtp</artifactId>
+                <version>${project.version}</version>
+                <type>test-jar</type>
+            </dependency>
+            <dependency>
                 <groupId>ch.qos.logback</groupId>
                 <artifactId>logback-classic</artifactId>
                 <version>${logback.version}</version>
@@ -2052,17 +2099,6 @@
                 <artifactId>metrics-elasticsearch-reporter</artifactId>
                 <version>${es-reporter.version}</version>
             </dependency>
-            <dependency>
-                <groupId>io.rest-assured</groupId>
-                <artifactId>rest-assured</artifactId>
-                <version>4.0.0</version>
-                <exclusions>
-                    <exclusion>
-                        <groupId>commons-logging</groupId>
-                        <artifactId>commons-logging</artifactId>
-                    </exclusion>
-                </exclusions>
-            </dependency>
 
             <dependency>
                 <groupId>com.rabbitmq</groupId>
@@ -2080,21 +2116,6 @@
                 <version>1.2.0</version>
             </dependency>
             <dependency>
-                <groupId>com.sun.xml.bind</groupId>
-                <artifactId>jaxb-core</artifactId>
-                <version>2.3.0.1</version>
-            </dependency>
-            <dependency>
-                <groupId>com.sun.xml.bind</groupId>
-                <artifactId>jaxb-impl</artifactId>
-                <version>${jaxb.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>javax.activation</groupId>
-                <artifactId>javax.activation-api</artifactId>
-                <version>1.2.0</version>
-            </dependency>
-            <dependency>
                 <groupId>com.sun.mail</groupId>
                 <artifactId>javax.mail</artifactId>
                 <version>1.6.2</version>
@@ -2106,6 +2127,16 @@
                 </exclusions>
             </dependency>
             <dependency>
+                <groupId>com.sun.xml.bind</groupId>
+                <artifactId>jaxb-core</artifactId>
+                <version>2.3.0.1</version>
+            </dependency>
+            <dependency>
+                <groupId>com.sun.xml.bind</groupId>
+                <artifactId>jaxb-impl</artifactId>
+                <version>${jaxb.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>com.thoughtworks.qdox</groupId>
                 <artifactId>qdox</artifactId>
                 <version>${qdox.version}</version>
@@ -2197,11 +2228,6 @@
                 <version>${metrics.version}</version>
             </dependency>
             <dependency>
-                <groupId>io.jsonwebtoken</groupId>
-                <artifactId>jjwt</artifactId>
-                <version>0.9.1</version>
-            </dependency>
-            <dependency>
                 <groupId>io.github.openfeign</groupId>
                 <artifactId>feign-core</artifactId>
                 <version>${feign.version}</version>
@@ -2222,11 +2248,39 @@
                 <version>${feign-form.version}</version>
             </dependency>
             <dependency>
+                <groupId>io.jsonwebtoken</groupId>
+                <artifactId>jjwt</artifactId>
+                <version>0.9.1</version>
+            </dependency>
+            <dependency>
                 <groupId>io.netty</groupId>
                 <artifactId>netty</artifactId>
                 <version>${netty.version}</version>
             </dependency>
             <dependency>
+                <groupId>io.projectreactor</groupId>
+                <artifactId>reactor-bom</artifactId>
+                <version>Dysprosium-SR6</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>io.projectreactor</groupId>
+                <artifactId>reactor-scala-extensions_${scala.base}</artifactId>
+                <version>0.5.1</version>
+            </dependency>
+            <dependency>
+                <groupId>io.rest-assured</groupId>
+                <artifactId>rest-assured</artifactId>
+                <version>4.0.0</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>commons-logging</groupId>
+                        <artifactId>commons-logging</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
                 <groupId>io.vavr</groupId>
                 <artifactId>vavr</artifactId>
                 <version>0.10.3</version>
@@ -2237,6 +2291,11 @@
                 <version>${javax-activation.version}</version>
             </dependency>
             <dependency>
+                <groupId>javax.activation</groupId>
+                <artifactId>javax.activation-api</artifactId>
+                <version>1.2.0</version>
+            </dependency>
+            <dependency>
                 <groupId>javax.annotation</groupId>
                 <artifactId>javax.annotation-api</artifactId>
                 <version>1.3.2</version>
@@ -2400,74 +2459,15 @@
                 </exclusions>
             </dependency>
             <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-api</artifactId>
-                <version>${project.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-imap</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-imap</artifactId>
-                <version>${project.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-lmtp</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-managesieve</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-managesieve</artifactId>
-                <version>${project.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-netty</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-pop3</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-smtp</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>${james.protocols.groupId}</groupId>
-                <artifactId>protocols-smtp</artifactId>
-                <version>${project.version}</version>
-                <type>test-jar</type>
-            </dependency>
-            <dependency>
                 <groupId>org.apache.logging.log4j</groupId>
-                <artifactId>log4j-slf4j-impl</artifactId>
+                <artifactId>log4j</artifactId>
                 <version>${log4j2.version}</version>
+                <type>pom</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.logging.log4j</groupId>
-                <artifactId>log4j</artifactId>
+                <artifactId>log4j-slf4j-impl</artifactId>
                 <version>${log4j2.version}</version>
-                <type>pom</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.maven</groupId>
@@ -2556,6 +2556,11 @@
                 <version>${jasypt.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.jsoup</groupId>
+                <artifactId>jsoup</artifactId>
+                <version>1.13.1</version>
+            </dependency>
+            <dependency>
                 <groupId>org.junit.jupiter</groupId>
                 <artifactId>junit-jupiter-engine</artifactId>
                 <version>${junit.jupiter.version}</version>
@@ -2586,11 +2591,6 @@
                 <version>${junit.vintage.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.jsoup</groupId>
-                <artifactId>jsoup</artifactId>
-                <version>1.13.1</version>
-            </dependency>
-            <dependency>
                 <groupId>org.mockito</groupId>
                 <artifactId>mockito-core</artifactId>
                 <version>3.0.0</version>
diff --git a/protocols/imap/pom.xml b/protocols/imap/pom.xml
index a8dc191..982e215 100644
--- a/protocols/imap/pom.xml
+++ b/protocols/imap/pom.xml
@@ -70,15 +70,15 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-api</artifactId>
-        </dependency>
-        <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-api</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.beetstra.jutf7</groupId>
             <artifactId>jutf7</artifactId>
         </dependency>
@@ -109,7 +109,6 @@
         </dependency>
     </dependencies>
 
-
     <build>
         <plugins>
             <plugin>
diff --git a/protocols/lmtp/pom.xml b/protocols/lmtp/pom.xml
index 2781f7c..f5b7c7f 100644
--- a/protocols/lmtp/pom.xml
+++ b/protocols/lmtp/pom.xml
@@ -39,6 +39,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>${james.protocols.groupId}</groupId>
             <artifactId>protocols-api</artifactId>
         </dependency>
@@ -64,11 +69,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>commons-net</groupId>
             <artifactId>commons-net</artifactId>
             <scope>test</scope>
diff --git a/protocols/netty/pom.xml b/protocols/netty/pom.xml
index 35d0962..2de20ee 100644
--- a/protocols/netty/pom.xml
+++ b/protocols/netty/pom.xml
@@ -38,15 +38,15 @@
             <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-api</artifactId>
-        </dependency>
-        <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-api</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
diff --git a/protocols/pop3/pom.xml b/protocols/pop3/pom.xml
index e47ba4d..47fc277 100644
--- a/protocols/pop3/pom.xml
+++ b/protocols/pop3/pom.xml
@@ -34,6 +34,11 @@
 
     <dependencies>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>${james.protocols.groupId}</groupId>
             <artifactId>protocols-api</artifactId>
         </dependency>
@@ -49,11 +54,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>commons-net</groupId>
             <artifactId>commons-net</artifactId>
             <scope>test</scope>
diff --git a/protocols/smtp/pom.xml b/protocols/smtp/pom.xml
index 994b858..88b524e 100644
--- a/protocols/smtp/pom.xml
+++ b/protocols/smtp/pom.xml
@@ -51,6 +51,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>${james.protocols.groupId}</groupId>
             <artifactId>protocols-api</artifactId>
         </dependency>
@@ -65,11 +70,6 @@
             <artifactId>protocols-netty</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
diff --git a/server/app/pom.xml b/server/app/pom.xml
index 0be80fd..0d96ef9 100644
--- a/server/app/pom.xml
+++ b/server/app/pom.xml
@@ -285,6 +285,17 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-mailet-dkim</artifactId>
+            <scope>runtime</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.geronimo.javamail</groupId>
+                    <artifactId>geronimo-javamail_1.4_mail</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-mailetcontainer-api</artifactId>
             <exclusions>
                 <exclusion>
@@ -310,17 +321,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-mailet-dkim</artifactId>
-            <scope>runtime</scope>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.geronimo.javamail</groupId>
-                    <artifactId>geronimo-javamail_1.4_mail</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-mailets</artifactId>
             <scope>runtime</scope>
             <exclusions>
@@ -490,6 +490,21 @@
             <artifactId>metrics-logger</artifactId>
         </dependency>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-imap</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-managesieve</artifactId>
+        </dependency>
+        <dependency>
             <groupId>commons-daemon</groupId>
             <artifactId>commons-daemon</artifactId>
         </dependency>
@@ -520,32 +535,17 @@
             <artifactId>derby</artifactId>
             <scope>runtime</scope>
         </dependency>
-
         <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-imap</artifactId>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-slf4j-impl</artifactId>
             <scope>runtime</scope>
         </dependency>
         <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-managesieve</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.apache.xbean</groupId>
             <artifactId>xbean-spring</artifactId>
             <scope>runtime</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <scope>runtime</scope>
-        </dependency>
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>jcl-over-slf4j</artifactId>
             <scope>runtime</scope>
diff --git a/server/blob/blob-api/pom.xml b/server/blob/blob-api/pom.xml
index 557e2e3..9074e92 100644
--- a/server/blob/blob-api/pom.xml
+++ b/server/blob/blob-api/pom.xml
@@ -53,15 +53,15 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+        <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-        </dependency>
-        <dependency>
             <groupId>javax.inject</groupId>
             <artifactId>javax.inject</artifactId>
         </dependency>
diff --git a/server/blob/blob-cassandra/pom.xml b/server/blob/blob-cassandra/pom.xml
index b395e6e..679071d 100644
--- a/server/blob/blob-cassandra/pom.xml
+++ b/server/blob/blob-cassandra/pom.xml
@@ -85,13 +85,13 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>testcontainers</artifactId>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>testcontainers</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/server/blob/blob-export-api/pom.xml b/server/blob/blob-export-api/pom.xml
index a979624..cc7d219 100644
--- a/server/blob/blob-export-api/pom.xml
+++ b/server/blob/blob-export-api/pom.xml
@@ -40,8 +40,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>blob-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/blob/blob-s3/pom.xml b/server/blob/blob-s3/pom.xml
index 8d35903..00ffb49 100644
--- a/server/blob/blob-s3/pom.xml
+++ b/server/blob/blob-s3/pom.xml
@@ -74,10 +74,6 @@
             <artifactId>commons-io</artifactId>
         </dependency>
         <dependency>
-            <groupId>javax.annotation</groupId>
-            <artifactId>javax.annotation-api</artifactId>
-        </dependency>
-        <dependency>
             <groupId>io.netty</groupId>
             <artifactId>netty-codec</artifactId>
             <version>4.1.46.Final</version>
@@ -96,6 +92,10 @@
             <artifactId>reactor-pool</artifactId>
         </dependency>
         <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>
         </dependency>
diff --git a/server/container/core/pom.xml b/server/container/core/pom.xml
index 320255d..76dc73c 100644
--- a/server/container/core/pom.xml
+++ b/server/container/core/pom.xml
@@ -34,11 +34,6 @@
 
     <dependencies>
         <dependency>
-            <groupId>${javax.activation.groupId}</groupId>
-            <artifactId>${javax.activation.artifactId}</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-mailet-api</artifactId>
         </dependency>
@@ -82,6 +77,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${javax.activation.groupId}</groupId>
+            <artifactId>${javax.activation.artifactId}</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
diff --git a/server/container/guice/cassandra-guice/pom.xml b/server/container/guice/cassandra-guice/pom.xml
index b358fd6..b0f1fa2 100644
--- a/server/container/guice/cassandra-guice/pom.xml
+++ b/server/container/guice/cassandra-guice/pom.xml
@@ -81,10 +81,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-mailbox-plugin-deleted-messages-vault-guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-quota-search-elasticsearch</artifactId>
         </dependency>
         <dependency>
@@ -137,8 +133,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>event-sourcing-event-store-cassandra</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -160,10 +156,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-mailet</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-es-resporter</artifactId>
         </dependency>
         <dependency>
@@ -198,6 +190,10 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-guice-mailet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-managedsieve</artifactId>
         </dependency>
         <dependency>
@@ -218,14 +214,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-webadmin-cassandra</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-webadmin-cassandra-data</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-webadmin-jmap</artifactId>
         </dependency>
         <dependency>
@@ -260,6 +248,10 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-mailbox-plugin-deleted-messages-vault-guice</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-mailets</artifactId>
         </dependency>
         <dependency>
@@ -277,6 +269,14 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-webadmin-cassandra</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-webadmin-cassandra-data</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-webadmin-core</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/server/container/guice/cassandra-rabbitmq-guice/pom.xml b/server/container/guice/cassandra-rabbitmq-guice/pom.xml
index e2d503a..fa427f1 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/pom.xml
+++ b/server/container/guice/cassandra-rabbitmq-guice/pom.xml
@@ -65,16 +65,16 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-event-rabbitmq</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-elasticsearch</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>apache-james-mailbox-event-rabbitmq</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-tika</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml b/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml
index 6ed69e7..11ff093 100644
--- a/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml
+++ b/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml
@@ -90,8 +90,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-data-ldap</artifactId>
-            <type>test-jar</type>
             <version>${project.version}</version>
+            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/server/container/guice/configuration/pom.xml b/server/container/guice/configuration/pom.xml
index c1cffff..a53ac38 100644
--- a/server/container/guice/configuration/pom.xml
+++ b/server/container/guice/configuration/pom.xml
@@ -52,8 +52,8 @@
         <dependency>
             <groupId>com.github.stefanbirkner</groupId>
             <artifactId>system-rules</artifactId>
-            <scope>test</scope>
             <version>1.19.0</version>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>com.google.guava</groupId>
diff --git a/server/container/guice/guice-common/pom.xml b/server/container/guice/guice-common/pom.xml
index 4d6c6625..b3b5705 100644
--- a/server/container/guice/guice-common/pom.xml
+++ b/server/container/guice/guice-common/pom.xml
@@ -62,17 +62,17 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-mailbox</artifactId>
+            <artifactId>james-server-guice-imap</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-imap</artifactId>
+            <artifactId>james-server-guice-lmtp</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-lmtp</artifactId>
+            <artifactId>james-server-guice-mailbox</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/server/container/guice/guice-utils/pom.xml b/server/container/guice/guice-utils/pom.xml
index 6e4782d..441ae3d 100644
--- a/server/container/guice/guice-utils/pom.xml
+++ b/server/container/guice/guice-utils/pom.xml
@@ -47,14 +47,14 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
             <groupId>com.github.fge</groupId>
             <artifactId>throwing-lambdas</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
+        </dependency>
+        <dependency>
             <groupId>nl.jqno.equalsverifier</groupId>
             <artifactId>equalsverifier</artifactId>
             <scope>test</scope>
diff --git a/server/container/guice/jpa-guice/pom.xml b/server/container/guice/jpa-guice/pom.xml
index 81a1f92..315c612 100644
--- a/server/container/guice/jpa-guice/pom.xml
+++ b/server/container/guice/jpa-guice/pom.xml
@@ -51,11 +51,11 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-quota-search-scanning</artifactId>
+            <artifactId>apache-james-mailbox-lucene</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-lucene</artifactId>
+            <artifactId>apache-james-mailbox-quota-search-scanning</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -67,10 +67,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-mailbox</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-common</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
@@ -93,6 +89,10 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-guice-mailbox</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-mailbox-plugin-spamassassin</artifactId>
         </dependency>
         <dependency>
@@ -105,11 +105,11 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-smtp</artifactId>
+            <artifactId>james-server-guice-sieve-jpa</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-sieve-jpa</artifactId>
+            <artifactId>james-server-guice-smtp</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/container/guice/jpa-smtp-mariadb/pom.xml b/server/container/guice/jpa-smtp-mariadb/pom.xml
index 1877563..a7885d9 100644
--- a/server/container/guice/jpa-smtp-mariadb/pom.xml
+++ b/server/container/guice/jpa-smtp-mariadb/pom.xml
@@ -44,24 +44,24 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-jpa-smtp-common-guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-common</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
+            <artifactId>james-server-jpa-smtp-common-guice</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-mailets</artifactId>
         </dependency>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.derby</groupId>
             <artifactId>derby</artifactId>
             <scope>test</scope>
diff --git a/server/container/guice/jpa-smtp/pom.xml b/server/container/guice/jpa-smtp/pom.xml
index fcc1c92..1f7979d 100644
--- a/server/container/guice/jpa-smtp/pom.xml
+++ b/server/container/guice/jpa-smtp/pom.xml
@@ -48,24 +48,19 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-jpa-common-guice</artifactId>
+            <artifactId>james-server-guice-common</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-jpa-smtp-common-guice</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-common</artifactId>
+            <artifactId>james-server-jpa-common-guice</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
+            <artifactId>james-server-jpa-smtp-common-guice</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -76,6 +71,11 @@
             <artifactId>queue-activemq-guice</artifactId>
         </dependency>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>io.rest-assured</groupId>
             <artifactId>rest-assured</artifactId>
             <scope>test</scope>
diff --git a/server/container/guice/mailet/pom.xml b/server/container/guice/mailet/pom.xml
index d39f418..53ffdbb 100644
--- a/server/container/guice/mailet/pom.xml
+++ b/server/container/guice/mailet/pom.xml
@@ -34,18 +34,18 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mailet-test</artifactId>
-            <scope>test</scope>
+            <artifactId>apache-mailet-standard</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mailet-standard</artifactId>
+            <artifactId>apache-mailet-test</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-filesystem-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/container/guice/memory-guice/pom.xml b/server/container/guice/memory-guice/pom.xml
index c105297..d8da68d 100644
--- a/server/container/guice/memory-guice/pom.xml
+++ b/server/container/guice/memory-guice/pom.xml
@@ -38,8 +38,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-linshare</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -114,10 +114,18 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-guice-mailbox</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-mailbox-plugin-spamassassin</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-guice-mailet</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-managedsieve</artifactId>
         </dependency>
         <dependency>
@@ -162,11 +170,7 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-mailbox</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-mailet</artifactId>
+            <artifactId>james-server-mailbox-adapter</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -174,10 +178,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-mailbox-adapter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-mailets</artifactId>
         </dependency>
         <dependency>
diff --git a/server/container/guice/protocols/jmap/pom.xml b/server/container/guice/protocols/jmap/pom.xml
index c0de05a..9568cd0 100644
--- a/server/container/guice/protocols/jmap/pom.xml
+++ b/server/container/guice/protocols/jmap/pom.xml
@@ -51,11 +51,11 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-mailet</artifactId>
+            <artifactId>james-server-guice-mailbox</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-mailbox</artifactId>
+            <artifactId>james-server-guice-mailet</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/container/guice/protocols/managedsieve/pom.xml b/server/container/guice/protocols/managedsieve/pom.xml
index 263a371..0fa7074 100644
--- a/server/container/guice/protocols/managedsieve/pom.xml
+++ b/server/container/guice/protocols/managedsieve/pom.xml
@@ -46,12 +46,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
             <groupId>${james.protocols.groupId}</groupId>
             <artifactId>protocols-managesieve</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/server/container/guice/protocols/netty/pom.xml b/server/container/guice/protocols/netty/pom.xml
index 3a5ac4d..13cf8c5 100644
--- a/server/container/guice/protocols/netty/pom.xml
+++ b/server/container/guice/protocols/netty/pom.xml
@@ -33,15 +33,15 @@
 
     <dependencies>
         <dependency>
-            <groupId>${james.groupId}.protocols</groupId>
-            <artifactId>protocols-netty</artifactId>
-        </dependency>
-        <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.groupId}.protocols</groupId>
+            <artifactId>protocols-netty</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.google.inject</groupId>
             <artifactId>guice</artifactId>
         </dependency>
diff --git a/server/container/guice/protocols/webadmin-jmap/pom.xml b/server/container/guice/protocols/webadmin-jmap/pom.xml
index 2994bc4..488c1cf 100644
--- a/server/container/guice/protocols/webadmin-jmap/pom.xml
+++ b/server/container/guice/protocols/webadmin-jmap/pom.xml
@@ -38,11 +38,11 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-webadmin-mailbox</artifactId>
+            <artifactId>james-server-webadmin-jmap</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-webadmin-jmap</artifactId>
+            <artifactId>james-server-webadmin-mailbox</artifactId>
         </dependency>
         <dependency>
             <groupId>com.google.inject</groupId>
diff --git a/server/container/guice/protocols/webadmin-mail-over-web/pom.xml b/server/container/guice/protocols/webadmin-mail-over-web/pom.xml
index e8190bb..a1ca85b 100644
--- a/server/container/guice/protocols/webadmin-mail-over-web/pom.xml
+++ b/server/container/guice/protocols/webadmin-mail-over-web/pom.xml
@@ -41,13 +41,13 @@
             <artifactId>james-server-webadmin-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-        </dependency>
-        <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-webadmin-mail-over-web</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/server/container/mailbox-adapter/pom.xml b/server/container/mailbox-adapter/pom.xml
index 8c63d1f..d69d296 100644
--- a/server/container/mailbox-adapter/pom.xml
+++ b/server/container/mailbox-adapter/pom.xml
@@ -40,8 +40,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/container/mailbox-jmx/pom.xml b/server/container/mailbox-jmx/pom.xml
index 0374ebb..1c1aba1 100644
--- a/server/container/mailbox-jmx/pom.xml
+++ b/server/container/mailbox-jmx/pom.xml
@@ -40,8 +40,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -51,8 +51,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/container/metrics/metrics-es-reporter/pom.xml b/server/container/metrics/metrics-es-reporter/pom.xml
index 803ead3..8bcc28b 100644
--- a/server/container/metrics/metrics-es-reporter/pom.xml
+++ b/server/container/metrics/metrics-es-reporter/pom.xml
@@ -38,8 +38,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-backends-es</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/container/spring/pom.xml b/server/container/spring/pom.xml
index ce13b70..c0c4803 100644
--- a/server/container/spring/pom.xml
+++ b/server/container/spring/pom.xml
@@ -105,6 +105,16 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-api</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>log4j-over-slf4j</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
             <groupId>com.sparkjava</groupId>
             <artifactId>spark-core</artifactId>
             <scope>test</scope>
@@ -134,16 +144,6 @@
             </exclusions>
         </dependency>
         <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-api</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>log4j-over-slf4j</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-collections4</artifactId>
         </dependency>
diff --git a/server/container/util/pom.xml b/server/container/util/pom.xml
index 88876ea..29e5c3c 100644
--- a/server/container/util/pom.xml
+++ b/server/container/util/pom.xml
@@ -72,15 +72,15 @@
             <artifactId>reactor-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>io.projectreactor.addons</groupId>
-            <artifactId>reactor-extra</artifactId>
-        </dependency>
-        <dependency>
             <groupId>io.projectreactor</groupId>
             <artifactId>reactor-test</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>io.projectreactor.addons</groupId>
+            <artifactId>reactor-extra</artifactId>
+        </dependency>
+        <dependency>
             <groupId>javax.inject</groupId>
             <artifactId>javax.inject</artifactId>
         </dependency>
diff --git a/server/data/data-cassandra/pom.xml b/server/data/data-cassandra/pom.xml
index a3f0427..f603f5c 100644
--- a/server/data/data-cassandra/pom.xml
+++ b/server/data/data-cassandra/pom.xml
@@ -120,6 +120,11 @@
             <artifactId>commons-configuration2</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>jcl-over-slf4j</artifactId>
         </dependency>
@@ -136,11 +141,6 @@
             <artifactId>testcontainers</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/server/data/data-jmap-cassandra/pom.xml b/server/data/data-jmap-cassandra/pom.xml
index 398386e..bd4e3c6 100644
--- a/server/data/data-jmap-cassandra/pom.xml
+++ b/server/data/data-jmap-cassandra/pom.xml
@@ -47,8 +47,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/data/data-jmap/pom.xml b/server/data/data-jmap/pom.xml
index e913193..f2ad98d 100644
--- a/server/data/data-jmap/pom.xml
+++ b/server/data/data-jmap/pom.xml
@@ -40,16 +40,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-util</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -68,6 +60,14 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-util</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>metrics-api</artifactId>
         </dependency>
         <dependency>
diff --git a/server/data/data-jpa/pom.xml b/server/data/data-jpa/pom.xml
index bcce435..9d90d6f 100644
--- a/server/data/data-jpa/pom.xml
+++ b/server/data/data-jpa/pom.xml
@@ -96,15 +96,6 @@
             <artifactId>guava</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-configuration2</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.derby</groupId>
-            <artifactId>derby</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>io.cucumber</groupId>
             <artifactId>cucumber-java</artifactId>
             <scope>test</scope>
@@ -120,6 +111,15 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-configuration2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>jcl-over-slf4j</artifactId>
         </dependency>
diff --git a/server/data/data-ldap/pom.xml b/server/data/data-ldap/pom.xml
index 20f81e5..dc314c5 100644
--- a/server/data/data-ldap/pom.xml
+++ b/server/data/data-ldap/pom.xml
@@ -40,8 +40,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-data-library</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -74,14 +74,14 @@
             <artifactId>javax.annotation-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.directory.api</groupId>
-            <artifactId>api-ldap-model</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-configuration2</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.directory.api</groupId>
+            <artifactId>api-ldap-model</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.assertj</groupId>
             <artifactId>assertj-core</artifactId>
         </dependency>
@@ -96,11 +96,11 @@
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
+            <artifactId>log4j-over-slf4j</artifactId>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
-            <artifactId>log4j-over-slf4j</artifactId>
+            <artifactId>slf4j-api</artifactId>
         </dependency>
         <dependency>
             <groupId>org.testcontainers</groupId>
diff --git a/server/mailet/dkim/pom.xml b/server/mailet/dkim/pom.xml
index 0366b75..42f5f6b 100644
--- a/server/mailet/dkim/pom.xml
+++ b/server/mailet/dkim/pom.xml
@@ -51,6 +51,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.apache.james.jdkim</groupId>
             <artifactId>apache-jdkim-library</artifactId>
             <version>${jdkim.version}</version>
@@ -103,11 +108,6 @@
             </exclusions>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.bouncycastle</groupId>
             <artifactId>bcpkix-jdk15on</artifactId>
         </dependency>
diff --git a/server/mailet/integration-testing/pom.xml b/server/mailet/integration-testing/pom.xml
index da1cfb0..6f0056e 100644
--- a/server/mailet/integration-testing/pom.xml
+++ b/server/mailet/integration-testing/pom.xml
@@ -35,11 +35,6 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-mailet-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>apache-mailet-crypto</artifactId>
             <version>${project.version}</version>
         </dependency>
@@ -50,6 +45,11 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>apache-mailet-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-dnsservice-test</artifactId>
             <scope>test</scope>
         </dependency>
@@ -67,11 +67,11 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-mailets</artifactId>
+            <artifactId>james-server-mailet-dkim</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-mailet-dkim</artifactId>
+            <artifactId>james-server-mailets</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/mailet/mailetcontainer-camel/pom.xml b/server/mailet/mailetcontainer-camel/pom.xml
index 0129e39..25c0a97 100644
--- a/server/mailet/mailetcontainer-camel/pom.xml
+++ b/server/mailet/mailetcontainer-camel/pom.xml
@@ -155,11 +155,11 @@
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
+            <artifactId>log4j-over-slf4j</artifactId>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
-            <artifactId>log4j-over-slf4j</artifactId>
+            <artifactId>slf4j-api</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/server/mailet/mailets/pom.xml b/server/mailet/mailets/pom.xml
index c54386f..b78788b 100644
--- a/server/mailet/mailets/pom.xml
+++ b/server/mailet/mailets/pom.xml
@@ -36,7 +36,6 @@
         <spec2.version>4.9.4</spec2.version>
     </properties>
 
-
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -131,12 +130,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-dnsservice-test</artifactId>
-            <scope>test</scope>
+            <artifactId>james-server-dnsservice-library</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-dnsservice-library</artifactId>
+            <artifactId>james-server-dnsservice-test</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -188,10 +187,25 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-managesieve</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-managesieve</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.jakewharton.byteunits</groupId>
+            <artifactId>byteunits</artifactId>
+            <version>0.9.1</version>
+        </dependency>
+        <dependency>
             <groupId>com.sun.mail</groupId>
             <artifactId>javax.mail</artifactId>
         </dependency>
@@ -208,16 +222,6 @@
             <artifactId>apache-jspf-resolver</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-managesieve</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-managesieve</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.hamcrest</groupId>
             <artifactId>java-hamcrest</artifactId>
             <scope>test</scope>
@@ -251,11 +255,6 @@
             <version>${spec2.version}</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>com.jakewharton.byteunits</groupId>
-            <artifactId>byteunits</artifactId>
-            <version>0.9.1</version>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/server/mailet/mock-smtp-server/pom.xml b/server/mailet/mock-smtp-server/pom.xml
index 16e5711..93a3ca2 100644
--- a/server/mailet/mock-smtp-server/pom.xml
+++ b/server/mailet/mock-smtp-server/pom.xml
@@ -43,11 +43,11 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-util</artifactId>
+            <artifactId>james-server-testing</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-testing</artifactId>
+            <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/mailrepository/mailrepository-cassandra/pom.xml b/server/mailrepository/mailrepository-cassandra/pom.xml
index 5647aeb..0b5c0f0 100644
--- a/server/mailrepository/mailrepository-cassandra/pom.xml
+++ b/server/mailrepository/mailrepository-cassandra/pom.xml
@@ -45,7 +45,9 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-mail-store</artifactId>
+            <artifactId>blob-api</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -54,13 +56,11 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>blob-api</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
+            <artifactId>james-server-core</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-core</artifactId>
+            <artifactId>james-server-mail-store</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/protocols/fetchmail/pom.xml b/server/protocols/fetchmail/pom.xml
index 3bb777a..edbe655 100644
--- a/server/protocols/fetchmail/pom.xml
+++ b/server/protocols/fetchmail/pom.xml
@@ -71,10 +71,6 @@
             <artifactId>javax.mail</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-configuration2</artifactId>
-        </dependency>
-        <dependency>
             <groupId>javax.annotation</groupId>
             <artifactId>javax.annotation-api</artifactId>
         </dependency>
@@ -83,6 +79,10 @@
             <artifactId>javax.inject</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-configuration2</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>jcl-over-slf4j</artifactId>
         </dependency>
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
index 1069813..3a0e6a3 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
@@ -35,13 +35,13 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-backends-es</artifactId>
+            <artifactId>apache-james-backends-cassandra</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-backends-cassandra</artifactId>
+            <artifactId>apache-james-backends-es</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
@@ -76,6 +76,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>apache-james-spamassassin</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>apache-mailet-base</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
@@ -138,12 +144,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-spamassassin</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
         </dependency>
diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/pom.xml b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/pom.xml
index 46e212e..2ea7df7 100644
--- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/pom.xml
+++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/pom.xml
@@ -46,9 +46,15 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>backup</artifactId>
+            <artifactId>apache-james-spamassassin</artifactId>
+            <type>test-jar</type>
             <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>backup</artifactId>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -73,12 +79,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-jmap</artifactId>
+            <artifactId>james-server-guice-imap</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-imap</artifactId>
+            <artifactId>james-server-guice-jmap</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -98,12 +104,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-spamassassin</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-mailets</artifactId>
             <scope>test</scope>
         </dependency>
diff --git a/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml b/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
index 83edc18..90de14b 100644
--- a/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
+++ b/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
@@ -52,6 +52,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>apache-james-spamassassin</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>apache-mailet-base</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
@@ -91,12 +97,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-spamassassin</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-memory-guice</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
diff --git a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml
index 7cd5490..6b2a233 100644
--- a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml
+++ b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml
@@ -65,11 +65,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-dnsservice-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-cassandra-guice</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
@@ -87,8 +82,7 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-jmap-draft-integration-testing</artifactId>
-            <type>test-jar</type>
+            <artifactId>james-server-dnsservice-test</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -105,6 +99,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-jmap-draft-integration-testing</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
         </dependency>
diff --git a/server/protocols/jmap-draft/pom.xml b/server/protocols/jmap-draft/pom.xml
index 9cd06bf..8352479 100644
--- a/server/protocols/jmap-draft/pom.xml
+++ b/server/protocols/jmap-draft/pom.xml
@@ -105,8 +105,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-filesystem-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -160,11 +160,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>com.github.dpaukov</groupId>
-            <artifactId>combinatoricslib3</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
         </dependency>
@@ -181,6 +176,11 @@
             <artifactId>jackson-datatype-jsr310</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.github.dpaukov</groupId>
+            <artifactId>combinatoricslib3</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.github.fge</groupId>
             <artifactId>throwing-lambdas</artifactId>
         </dependency>
@@ -233,11 +233,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.junit.platform</groupId>
-            <artifactId>junit-platform-engine</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.jgrapht</groupId>
             <artifactId>jgrapht-core</artifactId>
             <version>1.3.1</version>
@@ -247,6 +242,11 @@
             <artifactId>jsoup</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.junit.platform</groupId>
+            <artifactId>junit-platform-engine</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/server/protocols/jmap-rfc-8621/pom.xml b/server/protocols/jmap-rfc-8621/pom.xml
index 9692da3..5d0a424 100644
--- a/server/protocols/jmap-rfc-8621/pom.xml
+++ b/server/protocols/jmap-rfc-8621/pom.xml
@@ -50,8 +50,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -89,8 +89,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-util</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -103,11 +103,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>commons-fileupload</groupId>
-            <artifactId>commons-fileupload</artifactId>
-            <version>1.4</version>
-        </dependency>
-        <dependency>
             <groupId>com.github.dpaukov</groupId>
             <artifactId>combinatoricslib3</artifactId>
             <scope>test</scope>
@@ -117,6 +112,11 @@
             <artifactId>play-json_${scala.base}</artifactId>
         </dependency>
         <dependency>
+            <groupId>commons-fileupload</groupId>
+            <artifactId>commons-fileupload</artifactId>
+            <version>1.4</version>
+        </dependency>
+        <dependency>
             <groupId>eu.timepit</groupId>
             <artifactId>refined_${scala.base}</artifactId>
             <version>0.9.13</version>
@@ -145,16 +145,16 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.scala-lang.modules</groupId>
+            <artifactId>scala-java8-compat_${scala.base}</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.scalatest</groupId>
             <artifactId>scalatest_${scala.base}</artifactId>
             <version>3.1.1</version>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.scala-lang.modules</groupId>
-            <artifactId>scala-java8-compat_${scala.base}</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>jcl-over-slf4j</artifactId>
         </dependency>
diff --git a/server/protocols/jmap/pom.xml b/server/protocols/jmap/pom.xml
index 3180a0d..88287db 100644
--- a/server/protocols/jmap/pom.xml
+++ b/server/protocols/jmap/pom.xml
@@ -31,11 +31,11 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-core</artifactId>
+            <artifactId>apache-james-mailbox-api</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
+            <artifactId>james-core</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/protocols/protocols-imap4/pom.xml b/server/protocols/protocols-imap4/pom.xml
index 52cf8c8..b90e516 100644
--- a/server/protocols/protocols-imap4/pom.xml
+++ b/server/protocols/protocols-imap4/pom.xml
@@ -54,6 +54,15 @@
             <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
+
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-imap</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-netty</artifactId>
+        </dependency>
         <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
@@ -66,15 +75,6 @@
             <groupId>javax.inject</groupId>
             <artifactId>javax.inject</artifactId>
         </dependency>
-
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-imap</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-netty</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-configuration2</artifactId>
diff --git a/server/protocols/protocols-library/pom.xml b/server/protocols/protocols-library/pom.xml
index 8842e41..fa3bfad 100644
--- a/server/protocols/protocols-library/pom.xml
+++ b/server/protocols/protocols-library/pom.xml
@@ -62,6 +62,14 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-netty</artifactId>
+        </dependency>
+        <dependency>
             <groupId>com.google.inject</groupId>
             <artifactId>guice</artifactId>
             <scope>test</scope>
@@ -79,14 +87,6 @@
             <artifactId>javax.inject</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-netty</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-configuration2</artifactId>
         </dependency>
diff --git a/server/protocols/protocols-lmtp/pom.xml b/server/protocols/protocols-lmtp/pom.xml
index 483c6e7..2e275dd 100644
--- a/server/protocols/protocols-lmtp/pom.xml
+++ b/server/protocols/protocols-lmtp/pom.xml
@@ -77,14 +77,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.inject</groupId>
-            <artifactId>javax.inject</artifactId>
-        </dependency>
-        <dependency>
             <groupId>${james.protocols.groupId}</groupId>
             <artifactId>protocols-api</artifactId>
         </dependency>
@@ -101,6 +93,14 @@
             <artifactId>protocols-smtp</artifactId>
         </dependency>
         <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-configuration2</artifactId>
         </dependency>
diff --git a/server/protocols/protocols-managesieve/pom.xml b/server/protocols/protocols-managesieve/pom.xml
index fc896be..38cd4f4 100644
--- a/server/protocols/protocols-managesieve/pom.xml
+++ b/server/protocols/protocols-managesieve/pom.xml
@@ -23,10 +23,22 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-util</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-managesieve</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-netty</artifactId>
+        </dependency>
+        <dependency>
             <groupId>io.netty</groupId>
             <artifactId>netty</artifactId>
         </dependency>
@@ -39,18 +51,6 @@
             <artifactId>javax.inject</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-managesieve</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-netty</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-configuration2</artifactId>
         </dependency>
diff --git a/server/protocols/protocols-pop3/pom.xml b/server/protocols/protocols-pop3/pom.xml
index b934995..96a0ec8 100644
--- a/server/protocols/protocols-pop3/pom.xml
+++ b/server/protocols/protocols-pop3/pom.xml
@@ -51,8 +51,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -99,24 +99,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>com.google.inject</groupId>
-            <artifactId>guice</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>io.netty</groupId>
-            <artifactId>netty</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>javax.inject</groupId>
-            <artifactId>javax.inject</artifactId>
-        </dependency>
-        <dependency>
             <groupId>${james.protocols.groupId}</groupId>
             <artifactId>protocols-api</artifactId>
         </dependency>
@@ -135,6 +117,24 @@
             <artifactId>protocols-pop3</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-net</groupId>
+            <artifactId>commons-net</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-configuration2</artifactId>
         </dependency>
diff --git a/server/protocols/protocols-smtp/pom.xml b/server/protocols/protocols-smtp/pom.xml
index c4dadc1..1e2e4c8 100644
--- a/server/protocols/protocols-smtp/pom.xml
+++ b/server/protocols/protocols-smtp/pom.xml
@@ -66,12 +66,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-dnsservice-test</artifactId>
-            <scope>test</scope>
+            <artifactId>james-server-dnsservice-library</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-dnsservice-library</artifactId>
+            <artifactId>james-server-dnsservice-test</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -129,6 +129,31 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-api</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-netty</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-smtp</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.protocols.groupId}</groupId>
+            <artifactId>protocols-smtp</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.google.inject</groupId>
             <artifactId>guice</artifactId>
             <scope>test</scope>
@@ -156,39 +181,14 @@
             <artifactId>javax.inject</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.james.jspf</groupId>
-            <artifactId>apache-jspf-resolver</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-api</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-netty</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-smtp</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.protocols.groupId}</groupId>
-            <artifactId>protocols-smtp</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-configuration2</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.james.jspf</groupId>
+            <artifactId>apache-jspf-resolver</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/server/protocols/webadmin-cli/pom.xml b/server/protocols/webadmin-cli/pom.xml
index fcf926b..61c41e3 100644
--- a/server/protocols/webadmin-cli/pom.xml
+++ b/server/protocols/webadmin-cli/pom.xml
@@ -32,11 +32,6 @@
 
     <dependencies>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>james-server-memory-guice</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-guice-common</artifactId>
             <type>test-jar</type>
@@ -59,6 +54,11 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-memory-guice</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>info.picocli</groupId>
             <artifactId>picocli</artifactId>
             <version>4.5.1</version>
diff --git a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/pom.xml b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/pom.xml
index 4dc769a..3092396 100644
--- a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/pom.xml
+++ b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/pom.xml
@@ -36,8 +36,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-memory-guice</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/protocols/webadmin-integration-test/webadmin-integration-test-common/pom.xml b/server/protocols/webadmin-integration-test/webadmin-integration-test-common/pom.xml
index ad7cc02..26a984c 100644
--- a/server/protocols/webadmin-integration-test/webadmin-integration-test-common/pom.xml
+++ b/server/protocols/webadmin-integration-test/webadmin-integration-test-common/pom.xml
@@ -64,12 +64,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-jmap</artifactId>
-            <type>test-jar</type>
+            <artifactId>james-server-guice-imap</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-guice-imap</artifactId>
+            <artifactId>james-server-guice-jmap</artifactId>
+            <type>test-jar</type>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/protocols/webadmin/webadmin-cassandra/pom.xml b/server/protocols/webadmin/webadmin-cassandra/pom.xml
index 0505fab..4e92a46 100644
--- a/server/protocols/webadmin/webadmin-cassandra/pom.xml
+++ b/server/protocols/webadmin/webadmin-cassandra/pom.xml
@@ -40,8 +40,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-json</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/protocols/webadmin/webadmin-core/pom.xml b/server/protocols/webadmin/webadmin-core/pom.xml
index 5ce9a32..9dfa8d0 100644
--- a/server/protocols/webadmin/webadmin-core/pom.xml
+++ b/server/protocols/webadmin/webadmin-core/pom.xml
@@ -47,34 +47,34 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-util</artifactId>
+            <artifactId>james-server-task-api</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>metrics-api</artifactId>
+            <artifactId>james-server-task-api</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>metrics-tests</artifactId>
-            <scope>test</scope>
+            <artifactId>james-server-task-json</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-task-api</artifactId>
+            <artifactId>james-server-task-memory</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-task-api</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
+            <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-task-json</artifactId>
+            <artifactId>metrics-api</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-task-memory</artifactId>
+            <artifactId>metrics-tests</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -88,21 +88,26 @@
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.datatype</groupId>
-            <artifactId>jackson-datatype-jdk8</artifactId>
+            <artifactId>jackson-datatype-guava</artifactId>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.datatype</groupId>
-            <artifactId>jackson-datatype-jsr310</artifactId>
+            <artifactId>jackson-datatype-jdk8</artifactId>
         </dependency>
         <dependency>
             <groupId>com.fasterxml.jackson.datatype</groupId>
-            <artifactId>jackson-datatype-guava</artifactId>
+            <artifactId>jackson-datatype-jsr310</artifactId>
         </dependency>
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
         <dependency>
+            <groupId>com.jayway.jsonpath</groupId>
+            <artifactId>json-path</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>com.sparkjava</groupId>
             <artifactId>spark-core</artifactId>
         </dependency>
@@ -130,8 +135,8 @@
             <version>2.1.1</version>
         </dependency>
         <dependency>
-            <groupId>com.jayway.jsonpath</groupId>
-            <artifactId>json-path</artifactId>
+            <groupId>net.javacrumbs.json-unit</groupId>
+            <artifactId>json-unit-assertj</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -141,17 +146,12 @@
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
             <artifactId>jcl-over-slf4j</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>net.javacrumbs.json-unit</groupId>
-            <artifactId>json-unit-assertj</artifactId>
-            <scope>test</scope>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
         </dependency>
     </dependencies>
 </project>
diff --git a/server/protocols/webadmin/webadmin-data/pom.xml b/server/protocols/webadmin/webadmin-data/pom.xml
index c32ea2d..6e5d4f7 100644
--- a/server/protocols/webadmin/webadmin-data/pom.xml
+++ b/server/protocols/webadmin/webadmin-data/pom.xml
@@ -57,8 +57,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-data-library</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -99,10 +99,6 @@
             <artifactId>guava</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-        </dependency>
-        <dependency>
             <groupId>io.rest-assured</groupId>
             <artifactId>rest-assured</artifactId>
             <scope>test</scope>
@@ -117,6 +113,10 @@
             <scope>test</scope>
         </dependency>
         <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.hamcrest</groupId>
             <artifactId>java-hamcrest</artifactId>
             <scope>test</scope>
diff --git a/server/protocols/webadmin/webadmin-dropwizard-metrics/pom.xml b/server/protocols/webadmin/webadmin-dropwizard-metrics/pom.xml
index 6094907..45ba0e7 100644
--- a/server/protocols/webadmin/webadmin-dropwizard-metrics/pom.xml
+++ b/server/protocols/webadmin/webadmin-dropwizard-metrics/pom.xml
@@ -75,12 +75,12 @@
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
+            <artifactId>jcl-over-slf4j</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
-            <artifactId>jcl-over-slf4j</artifactId>
-            <scope>test</scope>
+            <artifactId>slf4j-api</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/server/protocols/webadmin/webadmin-jmap/pom.xml b/server/protocols/webadmin/webadmin-jmap/pom.xml
index a78fb90..60976a9 100644
--- a/server/protocols/webadmin/webadmin-jmap/pom.xml
+++ b/server/protocols/webadmin/webadmin-jmap/pom.xml
@@ -32,77 +32,77 @@
 
     <dependencies>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-json</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-api</artifactId>
-            <type>test-jar</type>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-data-memory</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-memory</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-task-memory</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>apache-james-mailbox-memory</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-webadmin-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-webadmin-core</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-json</artifactId>
+            <artifactId>metrics-tests</artifactId>
             <scope>test</scope>
-            <type>test-jar</type>
         </dependency>
         <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>james-server-data-jmap</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>testing-base</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>james-server-data-api</artifactId>
+            <artifactId>apache-james-mailbox-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-data-memory</artifactId>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>apache-james-mailbox-api</artifactId>
+            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>james-server-jmap-draft</artifactId>
+            <artifactId>apache-james-mailbox-memory</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>james-server-task-json</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-task-memory</artifactId>
+            <artifactId>apache-james-mailbox-memory</artifactId>
+            <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-webadmin-core</artifactId>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-data-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-webadmin-core</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-data-jmap</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>metrics-tests</artifactId>
-            <scope>test</scope>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-jmap-draft</artifactId>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
-            <scope>test</scope>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>james-server-task-json</artifactId>
         </dependency>
         <dependency>
             <groupId>io.rest-assured</groupId>
diff --git a/server/protocols/webadmin/webadmin-mail-over-web/pom.xml b/server/protocols/webadmin/webadmin-mail-over-web/pom.xml
index 624f1eb..5ec7c09 100644
--- a/server/protocols/webadmin/webadmin-mail-over-web/pom.xml
+++ b/server/protocols/webadmin/webadmin-mail-over-web/pom.xml
@@ -43,16 +43,12 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-webadmin-core</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.apache.james</groupId>
-            <artifactId>james-server-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.james</groupId>
-            <artifactId>james-server-queue-memory</artifactId>
+            <groupId>${james.groupId}</groupId>
+            <artifactId>metrics-tests</artifactId>
             <scope>test</scope>
         </dependency>
 
@@ -67,8 +63,12 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>${james.groupId}</groupId>
-            <artifactId>metrics-tests</artifactId>
+            <groupId>org.apache.james</groupId>
+            <artifactId>james-server-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>james-server-queue-memory</artifactId>
             <scope>test</scope>
         </dependency>
 
diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml
index c43b410..2e8b984 100644
--- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml
@@ -40,8 +40,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -61,8 +61,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -75,18 +75,18 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>blob-memory</artifactId>
-            <scope>test</scope>
+            <artifactId>blob-export-api</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>blob-export-api</artifactId>
+            <artifactId>blob-memory</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-json</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/protocols/webadmin/webadmin-mailbox/pom.xml b/server/protocols/webadmin/webadmin-mailbox/pom.xml
index 89777b6..23b464b 100644
--- a/server/protocols/webadmin/webadmin-mailbox/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailbox/pom.xml
@@ -46,8 +46,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -70,21 +70,22 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-memory</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-tools-indexer</artifactId>
+            <artifactId>apache-james-mailbox-quota-search</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-james-mailbox-quota-search</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-quota-search</artifactId>
-            <type>test-jar</type>
+            <artifactId>apache-james-mailbox-quota-search-elasticsearch</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -94,12 +95,11 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-tools-quota-recompute</artifactId>
+            <artifactId>apache-james-mailbox-tools-indexer</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-mailbox-quota-search-elasticsearch</artifactId>
-            <scope>test</scope>
+            <artifactId>apache-james-mailbox-tools-quota-recompute</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -108,8 +108,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>backup</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -127,8 +127,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>blob-export-file</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -138,8 +138,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-json</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/protocols/webadmin/webadmin-mailqueue/pom.xml b/server/protocols/webadmin/webadmin-mailqueue/pom.xml
index a35a339..450f86d 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailqueue/pom.xml
@@ -41,8 +41,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-json</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/protocols/webadmin/webadmin-rabbitmq/pom.xml b/server/protocols/webadmin/webadmin-rabbitmq/pom.xml
index 862deff..3132725 100644
--- a/server/protocols/webadmin/webadmin-rabbitmq/pom.xml
+++ b/server/protocols/webadmin/webadmin-rabbitmq/pom.xml
@@ -41,8 +41,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-json</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -60,7 +60,7 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-testing</artifactId>
+            <artifactId>james-server-task-distributed</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -69,7 +69,7 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-task-distributed</artifactId>
+            <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/server/queue/queue-activemq/pom.xml b/server/queue/queue-activemq/pom.xml
index c37da34..a3c1a0c 100644
--- a/server/queue/queue-activemq/pom.xml
+++ b/server/queue/queue-activemq/pom.xml
@@ -35,9 +35,11 @@
     <dependencies>
         <!-- Forcing netty-transport version -->
         <dependency>
+            <?SORTPOM IGNORE?>
             <groupId>io.netty</groupId>
             <artifactId>netty-transport</artifactId>
             <version>4.1.48.Final</version>
+            <?SORTPOM RESUME?>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/queue/queue-file/pom.xml b/server/queue/queue-file/pom.xml
index 41152b3..24a514d 100644
--- a/server/queue/queue-file/pom.xml
+++ b/server/queue/queue-file/pom.xml
@@ -47,8 +47,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-filesystem-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -61,8 +61,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>james-server-queue-api</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/queue/queue-jms/pom.xml b/server/queue/queue-jms/pom.xml
index d5b021d..9f73c85 100644
--- a/server/queue/queue-jms/pom.xml
+++ b/server/queue/queue-jms/pom.xml
@@ -40,8 +40,8 @@
         <dependency>
             <groupId>${james.groupId}</groupId>
             <artifactId>apache-mailet-base</artifactId>
-            <scope>test</scope>
             <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -93,11 +93,6 @@
             <artifactId>reactor-core</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-text</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>javax.annotation</groupId>
             <artifactId>javax.annotation-api</artifactId>
         </dependency>
@@ -115,6 +110,11 @@
             <artifactId>artemis-jms-client</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-text</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <scope>test</scope>
diff --git a/server/queue/queue-memory/pom.xml b/server/queue/queue-memory/pom.xml
index 4c34652..8a6e5fd 100644
--- a/server/queue/queue-memory/pom.xml
+++ b/server/queue/queue-memory/pom.xml
@@ -35,12 +35,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>testing-base</artifactId>
+            <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-testing</artifactId>
+            <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/server/queue/queue-rabbitmq/pom.xml b/server/queue/queue-rabbitmq/pom.xml
index 17d5961..2b54b55 100644
--- a/server/queue/queue-rabbitmq/pom.xml
+++ b/server/queue/queue-rabbitmq/pom.xml
@@ -35,21 +35,21 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-backends-rabbitmq</artifactId>
+            <artifactId>apache-james-backends-cassandra</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-backends-rabbitmq</artifactId>
+            <artifactId>apache-james-backends-cassandra</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-backends-cassandra</artifactId>
+            <artifactId>apache-james-backends-rabbitmq</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>apache-james-backends-cassandra</artifactId>
+            <artifactId>apache-james-backends-rabbitmq</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
@@ -105,12 +105,12 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-util</artifactId>
+            <artifactId>james-server-testing</artifactId>
+            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-testing</artifactId>
-            <scope>test</scope>
+            <artifactId>james-server-util</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
@@ -182,8 +182,8 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.testcontainers</groupId>
-            <artifactId>testcontainers</artifactId>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
@@ -191,8 +191,8 @@
             <artifactId>slf4j-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>testcontainers</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/server/task/task-memory/pom.xml b/server/task/task-memory/pom.xml
index 7bdd962..921e995 100644
--- a/server/task/task-memory/pom.xml
+++ b/server/task/task-memory/pom.xml
@@ -48,10 +48,6 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-util</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>${james.groupId}</groupId>
             <artifactId>james-server-task-api</artifactId>
         </dependency>
         <dependency>
@@ -62,6 +58,10 @@
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
+            <artifactId>james-server-util</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${james.groupId}</groupId>
             <artifactId>testing-base</artifactId>
             <scope>test</scope>
         </dependency>
diff --git a/third-party/linshare/pom.xml b/third-party/linshare/pom.xml
index fda59d6..5aad1c3 100644
--- a/third-party/linshare/pom.xml
+++ b/third-party/linshare/pom.xml
@@ -34,20 +34,20 @@
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-core</artifactId>
+            <artifactId>blob-export-api</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>james-server-testing</artifactId>
+            <artifactId>blob-memory</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>blob-export-api</artifactId>
+            <artifactId>james-core</artifactId>
         </dependency>
         <dependency>
             <groupId>${james.groupId}</groupId>
-            <artifactId>blob-memory</artifactId>
+            <artifactId>james-server-testing</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>


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


[james-project] 16/16: JAMES-3441 Document spooler.threads = 0

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 42a84127277e1b9588b4cda76f227c841c079a5b
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Nov 19 02:54:06 2020 +0100

    JAMES-3441 Document spooler.threads = 0
---
 docs/modules/servers/pages/distributed/configure/mailetcontainer.adoc | 3 ++-
 src/site/xdoc/server/config-mailetcontainer.xml                       | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/docs/modules/servers/pages/distributed/configure/mailetcontainer.adoc b/docs/modules/servers/pages/distributed/configure/mailetcontainer.adoc
index d361870..c94d68b 100644
--- a/docs/modules/servers/pages/distributed/configure/mailetcontainer.adoc
+++ b/docs/modules/servers/pages/distributed/configure/mailetcontainer.adoc
@@ -30,7 +30,8 @@ If this is set to a non-local email address, the mail server
 will still function, but will generate a warning on startup.
 
 | spooler.threads
-| Number of simultaneous threads used to spool the mails.
+| Number of simultaneous threads used to spool the mails. Set to zero, it disables mail processing - use with
+caution.
 
 | spooler.errorRepository
 | Mail repository to store email in after several unrecoverable errors. Mails failing processing, for which
diff --git a/src/site/xdoc/server/config-mailetcontainer.xml b/src/site/xdoc/server/config-mailetcontainer.xml
index 8660a21..e80af19 100644
--- a/src/site/xdoc/server/config-mailetcontainer.xml
+++ b/src/site/xdoc/server/config-mailetcontainer.xml
@@ -49,7 +49,8 @@
             If this is set to a non-local email address, the mail server
             will still function, but will generate a warning on startup.</dd>
           <dt><strong>spooler.threads</strong></dt>
-          <dd>Number of simultaneous threads used to spool the mails.</dd>
+          <dd>Number of simultaneous threads used to spool the mails. Set to zero, it disables mail processing - use with
+              caution.</dd>
           <dt><strong>spooler.errorRepository</strong></dt>
           <dd>Mail repository to store email in after several unrecoverable errors. Mails failing processing, for which
               the Mailet Container could not handle Error, will be stored there after their processing had been attempted


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


[james-project] 09/16: JAMES-2124 Sorts module declarations in reactors

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 e1db8e4eee85e266207d82c306d36986711d219e
Author: Jean Helou <jh...@codamens.fr>
AuthorDate: Wed Nov 18 13:40:10 2020 +0100

    JAMES-2124 Sorts module declarations in reactors
---
 server/blob/pom.xml                    | 2 +-
 server/container/guice/testing/pom.xml | 2 +-
 server/pom.xml                         | 3 +--
 server/protocols/webadmin/pom.xml      | 4 ++--
 4 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/server/blob/pom.xml b/server/blob/pom.xml
index 8a51689..a704045 100644
--- a/server/blob/pom.xml
+++ b/server/blob/pom.xml
@@ -34,7 +34,6 @@
 
     <modules>
         <module>blob-api</module>
-        <module>blob-storage-strategy</module>
         <module>blob-cassandra</module>
         <module>blob-common</module>
         <module>blob-export-api</module>
@@ -42,6 +41,7 @@
         <module>blob-gc</module>
         <module>blob-memory</module>
         <module>blob-s3</module>
+        <module>blob-storage-strategy</module>
 
         <module>mail-store</module>
     </modules>
diff --git a/server/container/guice/testing/pom.xml b/server/container/guice/testing/pom.xml
index 6e718ac..f0a3fb0 100644
--- a/server/container/guice/testing/pom.xml
+++ b/server/container/guice/testing/pom.xml
@@ -34,7 +34,7 @@
 
     <modules>
         <module>custom-mailets</module>
-        <module>dependency</module>
         <module>custom-mailets-implementation</module>
+        <module>dependency</module>
     </modules>
 </project>
diff --git a/server/pom.xml b/server/pom.xml
index cc7c860..41cae9f 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -70,9 +70,8 @@
         <module>dns-service/dnsservice-library</module>
         <module>dns-service/dnsservice-test</module>
 
-        <module>mailet/integration-testing</module>
-
         <module>mailet/dkim</module>
+        <module>mailet/integration-testing</module>
         <module>mailet/mailetcontainer-api</module>
         <module>mailet/mailetcontainer-camel</module>
         <module>mailet/mailets</module>
diff --git a/server/protocols/webadmin/pom.xml b/server/protocols/webadmin/pom.xml
index 9622d12..3752508 100644
--- a/server/protocols/webadmin/pom.xml
+++ b/server/protocols/webadmin/pom.xml
@@ -36,16 +36,16 @@
         <module>webadmin-cassandra</module>
         <module>webadmin-cassandra-data</module>
         <module>webadmin-core</module>
-        <module>webadmin-dropwizard-metrics</module>
         <module>webadmin-data</module>
+        <module>webadmin-dropwizard-metrics</module>
         <module>webadmin-jmap</module>
+        <module>webadmin-mail-over-web</module>
         <module>webadmin-mailbox</module>
         <module>webadmin-mailbox-deleted-message-vault</module>
         <module>webadmin-mailqueue</module>
         <module>webadmin-mailrepository</module>
         <module>webadmin-rabbitmq</module>
         <module>webadmin-swagger</module>
-        <module>webadmin-mail-over-web</module>
     </modules>
 
 </project>


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


[james-project] 06/16: JAMES-2124 Clean up project closing tags

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 ded3b8df9c075be32b6dd2c8257fc4ad91367e86
Author: Jean Helou <jh...@codamens.fr>
AuthorDate: Wed Nov 18 11:44:07 2020 +0100

    JAMES-2124 Clean up project closing tags
---
 event-sourcing/event-sourcing-core/pom.xml                             | 2 +-
 event-sourcing/event-store-cassandra/pom.xml                           | 3 +--
 event-sourcing/pom.xml                                                 | 2 +-
 mailbox/event/event-cassandra/pom.xml                                  | 3 +--
 mailbox/event/event-memory/pom.xml                                     | 3 +--
 mailbox/event/event-rabbitmq/pom.xml                                   | 2 +-
 mailbox/event/json/pom.xml                                             | 2 +-
 mailbox/plugin/deleted-messages-vault-cassandra/pom.xml                | 2 +-
 mailbox/plugin/deleted-messages-vault/pom.xml                          | 2 +-
 mailbox/plugin/quota-mailing-memory/pom.xml                            | 2 +-
 mailbox/plugin/quota-mailing/pom.xml                                   | 3 +--
 mailbox/plugin/quota-search-scanning/pom.xml                           | 3 +--
 mailbox/plugin/quota-search/pom.xml                                    | 3 +--
 mailbox/tools/quota-recompute/pom.xml                                  | 2 +-
 metrics/metrics-tests/pom.xml                                          | 2 +-
 mpt/impl/imap-mailbox/rabbitmq/pom.xml                                 | 2 +-
 mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml                | 2 +-
 server/blob/blob-export-api/pom.xml                                    | 2 +-
 server/blob/blob-export-file/pom.xml                                   | 2 +-
 server/blob/blob-memory/pom.xml                                        | 2 +-
 server/blob/mail-store/pom.xml                                         | 2 +-
 server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml           | 2 +-
 server/container/guice/guice-utils/pom.xml                             | 2 +-
 server/container/guice/protocols/webadmin-mail-over-web/pom.xml        | 2 +-
 server/container/guice/protocols/webadmin-mailrepository/pom.xml       | 2 +-
 server/container/guice/testing/pom.xml                                 | 2 +-
 .../cassandra-jmap-draft-integration-testing/pom.xml                   | 2 +-
 .../distributed-jmap-rfc-8621-integration-tests/pom.xml                | 2 +-
 .../jmap-rfc-8621-integration-tests-common/pom.xml                     | 2 +-
 .../memory-jmap-rfc-8621-integration-tests/pom.xml                     | 2 +-
 server/protocols/jmap-rfc-8621-integration-tests/pom.xml               | 2 +-
 server/protocols/jmap/pom.xml                                          | 2 +-
 server/protocols/webadmin-cli/pom.xml                                  | 3 +--
 server/protocols/webadmin/webadmin-dropwizard-metrics/pom.xml          | 2 +-
 server/protocols/webadmin/webadmin-jmap/pom.xml                        | 2 +-
 server/protocols/webadmin/webadmin-mail-over-web/pom.xml               | 2 +-
 server/queue/queue-memory/pom.xml                                      | 3 +--
 server/task/task-api/pom.xml                                           | 2 +-
 server/task/task-memory/pom.xml                                        | 2 +-
 39 files changed, 39 insertions(+), 47 deletions(-)

diff --git a/event-sourcing/event-sourcing-core/pom.xml b/event-sourcing/event-sourcing-core/pom.xml
index dea507b..6f27fdd 100644
--- a/event-sourcing/event-sourcing-core/pom.xml
+++ b/event-sourcing/event-sourcing-core/pom.xml
@@ -89,4 +89,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/event-sourcing/event-store-cassandra/pom.xml b/event-sourcing/event-store-cassandra/pom.xml
index 1ef03e7..163f46b 100644
--- a/event-sourcing/event-store-cassandra/pom.xml
+++ b/event-sourcing/event-store-cassandra/pom.xml
@@ -115,5 +115,4 @@
         </plugins>
     </build>
 
-
-</project>
\ No newline at end of file
+</project>
diff --git a/event-sourcing/pom.xml b/event-sourcing/pom.xml
index fb2f814..ecf64ee 100644
--- a/event-sourcing/pom.xml
+++ b/event-sourcing/pom.xml
@@ -39,4 +39,4 @@
         <module>event-store-memory</module>
     </modules>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/event/event-cassandra/pom.xml b/mailbox/event/event-cassandra/pom.xml
index 60c5761..fd72ca4 100644
--- a/mailbox/event/event-cassandra/pom.xml
+++ b/mailbox/event/event-cassandra/pom.xml
@@ -73,5 +73,4 @@
         </dependency>
     </dependencies>
 
-
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/event/event-memory/pom.xml b/mailbox/event/event-memory/pom.xml
index ebeba02..e421778 100644
--- a/mailbox/event/event-memory/pom.xml
+++ b/mailbox/event/event-memory/pom.xml
@@ -76,5 +76,4 @@
         </dependency>
     </dependencies>
 
-
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/event/event-rabbitmq/pom.xml b/mailbox/event/event-rabbitmq/pom.xml
index 065a3dc..693abc4 100644
--- a/mailbox/event/event-rabbitmq/pom.xml
+++ b/mailbox/event/event-rabbitmq/pom.xml
@@ -117,4 +117,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/event/json/pom.xml b/mailbox/event/json/pom.xml
index ed7c614..9ef6bbb 100644
--- a/mailbox/event/json/pom.xml
+++ b/mailbox/event/json/pom.xml
@@ -98,4 +98,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml b/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml
index 5ff92d2..db1e6a6 100644
--- a/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml
+++ b/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml
@@ -81,4 +81,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/plugin/deleted-messages-vault/pom.xml b/mailbox/plugin/deleted-messages-vault/pom.xml
index cea7249..69222ab 100644
--- a/mailbox/plugin/deleted-messages-vault/pom.xml
+++ b/mailbox/plugin/deleted-messages-vault/pom.xml
@@ -127,4 +127,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/plugin/quota-mailing-memory/pom.xml b/mailbox/plugin/quota-mailing-memory/pom.xml
index 53d3f95..26fa21a 100644
--- a/mailbox/plugin/quota-mailing-memory/pom.xml
+++ b/mailbox/plugin/quota-mailing-memory/pom.xml
@@ -112,4 +112,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/plugin/quota-mailing/pom.xml b/mailbox/plugin/quota-mailing/pom.xml
index bdd619a..7d2a0df 100644
--- a/mailbox/plugin/quota-mailing/pom.xml
+++ b/mailbox/plugin/quota-mailing/pom.xml
@@ -128,5 +128,4 @@
         </dependency>
     </dependencies>
 
-
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/plugin/quota-search-scanning/pom.xml b/mailbox/plugin/quota-search-scanning/pom.xml
index bd6a4d4..ac4c6b9 100644
--- a/mailbox/plugin/quota-search-scanning/pom.xml
+++ b/mailbox/plugin/quota-search-scanning/pom.xml
@@ -95,5 +95,4 @@
         </dependency>
     </dependencies>
 
-
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/plugin/quota-search/pom.xml b/mailbox/plugin/quota-search/pom.xml
index bd4cff5..40a67de 100644
--- a/mailbox/plugin/quota-search/pom.xml
+++ b/mailbox/plugin/quota-search/pom.xml
@@ -69,5 +69,4 @@
         </dependency>
     </dependencies>
 
-
-</project>
\ No newline at end of file
+</project>
diff --git a/mailbox/tools/quota-recompute/pom.xml b/mailbox/tools/quota-recompute/pom.xml
index 36675ec..1f42af1 100644
--- a/mailbox/tools/quota-recompute/pom.xml
+++ b/mailbox/tools/quota-recompute/pom.xml
@@ -67,4 +67,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/metrics/metrics-tests/pom.xml b/metrics/metrics-tests/pom.xml
index 6b44a0a..275e811 100644
--- a/metrics/metrics-tests/pom.xml
+++ b/metrics/metrics-tests/pom.xml
@@ -68,4 +68,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/mpt/impl/imap-mailbox/rabbitmq/pom.xml b/mpt/impl/imap-mailbox/rabbitmq/pom.xml
index f642658..533c221 100644
--- a/mpt/impl/imap-mailbox/rabbitmq/pom.xml
+++ b/mpt/impl/imap-mailbox/rabbitmq/pom.xml
@@ -93,4 +93,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml b/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml
index 4538563..cd15f7c 100644
--- a/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml
+++ b/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml
@@ -105,4 +105,4 @@
             <artifactId>guice</artifactId>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/blob/blob-export-api/pom.xml b/server/blob/blob-export-api/pom.xml
index cc7d219..1de4ad0 100644
--- a/server/blob/blob-export-api/pom.xml
+++ b/server/blob/blob-export-api/pom.xml
@@ -53,4 +53,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/blob/blob-export-file/pom.xml b/server/blob/blob-export-file/pom.xml
index 0c44fe1..595735b 100644
--- a/server/blob/blob-export-file/pom.xml
+++ b/server/blob/blob-export-file/pom.xml
@@ -71,4 +71,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/blob/blob-memory/pom.xml b/server/blob/blob-memory/pom.xml
index f6b1d34..5284361 100644
--- a/server/blob/blob-memory/pom.xml
+++ b/server/blob/blob-memory/pom.xml
@@ -94,4 +94,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/server/blob/mail-store/pom.xml b/server/blob/mail-store/pom.xml
index 2dd459d..32f8268 100644
--- a/server/blob/mail-store/pom.xml
+++ b/server/blob/mail-store/pom.xml
@@ -70,4 +70,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml b/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml
index 11ff093..a606443 100644
--- a/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml
+++ b/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml
@@ -174,4 +174,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/server/container/guice/guice-utils/pom.xml b/server/container/guice/guice-utils/pom.xml
index 441ae3d..9efb522 100644
--- a/server/container/guice/guice-utils/pom.xml
+++ b/server/container/guice/guice-utils/pom.xml
@@ -80,4 +80,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/server/container/guice/protocols/webadmin-mail-over-web/pom.xml b/server/container/guice/protocols/webadmin-mail-over-web/pom.xml
index a1ca85b..e8abab1 100644
--- a/server/container/guice/protocols/webadmin-mail-over-web/pom.xml
+++ b/server/container/guice/protocols/webadmin-mail-over-web/pom.xml
@@ -50,4 +50,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/server/container/guice/protocols/webadmin-mailrepository/pom.xml b/server/container/guice/protocols/webadmin-mailrepository/pom.xml
index 4ff4e21..2ec7dca 100644
--- a/server/container/guice/protocols/webadmin-mailrepository/pom.xml
+++ b/server/container/guice/protocols/webadmin-mailrepository/pom.xml
@@ -52,4 +52,4 @@
             <artifactId>guice</artifactId>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/container/guice/testing/pom.xml b/server/container/guice/testing/pom.xml
index effd3f1..6e718ac 100644
--- a/server/container/guice/testing/pom.xml
+++ b/server/container/guice/testing/pom.xml
@@ -37,4 +37,4 @@
         <module>dependency</module>
         <module>custom-mailets-implementation</module>
     </modules>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
index 3a0e6a3..ef8abaf 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
@@ -221,5 +221,5 @@
             </plugin>
         </plugins>
     </build>
-    
+
 </project>
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml b/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml
index cd9674a..c4bceb8 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml
+++ b/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml
@@ -133,4 +133,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/pom.xml b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/pom.xml
index 3fb6359..539a520 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/pom.xml
+++ b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/pom.xml
@@ -68,4 +68,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/pom.xml b/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/pom.xml
index 6d61d42..e23f323 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/pom.xml
+++ b/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/pom.xml
@@ -53,4 +53,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/pom.xml b/server/protocols/jmap-rfc-8621-integration-tests/pom.xml
index afd061e..4964751 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/pom.xml
+++ b/server/protocols/jmap-rfc-8621-integration-tests/pom.xml
@@ -61,4 +61,4 @@
             </dependency>
         </dependencies>
     </dependencyManagement>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/protocols/jmap/pom.xml b/server/protocols/jmap/pom.xml
index 88287db..23392ae 100644
--- a/server/protocols/jmap/pom.xml
+++ b/server/protocols/jmap/pom.xml
@@ -91,4 +91,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/server/protocols/webadmin-cli/pom.xml b/server/protocols/webadmin-cli/pom.xml
index 61c41e3..2d488df 100644
--- a/server/protocols/webadmin-cli/pom.xml
+++ b/server/protocols/webadmin-cli/pom.xml
@@ -106,5 +106,4 @@
         </plugins>
     </build>
 
-
-</project>
\ No newline at end of file
+</project>
diff --git a/server/protocols/webadmin/webadmin-dropwizard-metrics/pom.xml b/server/protocols/webadmin/webadmin-dropwizard-metrics/pom.xml
index 45ba0e7..5c103a7 100644
--- a/server/protocols/webadmin/webadmin-dropwizard-metrics/pom.xml
+++ b/server/protocols/webadmin/webadmin-dropwizard-metrics/pom.xml
@@ -84,4 +84,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/server/protocols/webadmin/webadmin-jmap/pom.xml b/server/protocols/webadmin/webadmin-jmap/pom.xml
index 60976a9..2a09cb0 100644
--- a/server/protocols/webadmin/webadmin-jmap/pom.xml
+++ b/server/protocols/webadmin/webadmin-jmap/pom.xml
@@ -120,4 +120,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/protocols/webadmin/webadmin-mail-over-web/pom.xml b/server/protocols/webadmin/webadmin-mail-over-web/pom.xml
index 5ec7c09..cd3ef74 100644
--- a/server/protocols/webadmin/webadmin-mail-over-web/pom.xml
+++ b/server/protocols/webadmin/webadmin-mail-over-web/pom.xml
@@ -74,4 +74,4 @@
 
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/server/queue/queue-memory/pom.xml b/server/queue/queue-memory/pom.xml
index 8a6e5fd..cecd8db 100644
--- a/server/queue/queue-memory/pom.xml
+++ b/server/queue/queue-memory/pom.xml
@@ -53,5 +53,4 @@
         </dependency>
     </dependencies>
 
-
-</project>
\ No newline at end of file
+</project>
diff --git a/server/task/task-api/pom.xml b/server/task/task-api/pom.xml
index 09a15d9..8b8ab76 100644
--- a/server/task/task-api/pom.xml
+++ b/server/task/task-api/pom.xml
@@ -75,4 +75,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/server/task/task-memory/pom.xml b/server/task/task-memory/pom.xml
index 921e995..e88811f 100644
--- a/server/task/task-memory/pom.xml
+++ b/server/task/task-memory/pom.xml
@@ -97,4 +97,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>


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


[james-project] 15/16: JAMES-3441 Integration test for starting James with a disabled spooler

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 1d451515a633bbc5c3d4178c2d2320b8c514e2a2
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Nov 18 13:41:59 2020 +0700

    JAMES-3441 Integration test for starting James with a disabled spooler
    
    This enables starting James instances not involved in mail processing
---
 .../java/org/apache/james/DisabledSpoolerTest.java | 84 ++++++++++++++++++++++
 .../src/test/resources/mailetcontainer.xml         |  1 +
 2 files changed, 85 insertions(+)

diff --git a/server/container/guice/memory-guice/src/test/java/org/apache/james/DisabledSpoolerTest.java b/server/container/guice/memory-guice/src/test/java/org/apache/james/DisabledSpoolerTest.java
new file mode 100644
index 0000000..fcd3d9b
--- /dev/null
+++ b/server/container/guice/memory-guice/src/test/java/org/apache/james/DisabledSpoolerTest.java
@@ -0,0 +1,84 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james;
+
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE;
+import static org.apache.james.jmap.JMAPTestingConstants.ALICE_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB;
+import static org.apache.james.jmap.JMAPTestingConstants.BOB_PASSWORD;
+import static org.apache.james.jmap.JMAPTestingConstants.DOMAIN;
+import static org.apache.james.jmap.JMAPTestingConstants.LOCALHOST_IP;
+import static org.apache.james.jmap.draft.JmapJamesServerContract.JAMES_SERVER_HOST;
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.apache.james.mailbox.model.MailboxConstants;
+import org.apache.james.mailetcontainer.impl.JamesMailSpooler;
+import org.apache.james.mailrepository.api.MailRepositoryUrl;
+import org.apache.james.modules.TestJMAPServerModule;
+import org.apache.james.modules.protocols.ImapGuiceProbe;
+import org.apache.james.modules.protocols.SmtpGuiceProbe;
+import org.apache.james.utils.DataProbeImpl;
+import org.apache.james.utils.SMTPMessageSender;
+import org.apache.james.utils.TestIMAPClient;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+class DisabledSpoolerTest {
+    private static final String MESSAGE = "Subject: test\r\n" +
+        "\r\n" +
+        "testmail";
+
+    @RegisterExtension
+    static JamesServerExtension jamesServerExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+        .server(configuration -> MemoryJamesServerMain.createServer(configuration)
+            .overrideWith(new TestJMAPServerModule())
+            .overrideWith(binder -> binder.bind(JamesMailSpooler.Configuration.class)
+                .toInstance(new JamesMailSpooler.Configuration(0, MailRepositoryUrl.from("memory://repo1")))))
+        .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
+        .build();
+
+    @RegisterExtension
+    SMTPMessageSender smtpMessageSender = new SMTPMessageSender(DOMAIN);
+    @RegisterExtension
+    TestIMAPClient testIMAPClient = new TestIMAPClient();
+
+    @BeforeEach
+    void setUp(GuiceJamesServer guiceJamesServer) throws Exception {
+        DataProbeImpl dataProbe = guiceJamesServer.getProbe(DataProbeImpl.class);
+        dataProbe.fluent()
+            .addDomain(DOMAIN)
+            .addUser(ALICE.asString(), ALICE_PASSWORD)
+            .addUser(BOB.asString(), BOB_PASSWORD);
+    }
+
+    @Test
+    void emailsShouldNotBeDequeuedWhenZeroSpoolerThreads(GuiceJamesServer server) throws Exception {
+        smtpMessageSender.connect(LOCALHOST_IP, server.getProbe(SmtpGuiceProbe.class).getSmtpPort())
+            .sendMessageWithHeaders(ALICE.asString(), BOB.asString(), MESSAGE);
+
+        Thread.sleep(5000);
+
+        long messageCount = testIMAPClient.connect(JAMES_SERVER_HOST, server.getProbe(ImapGuiceProbe.class).getImapPort())
+            .login(BOB, BOB_PASSWORD)
+            .getMessageCount(MailboxConstants.INBOX);
+        assertThat(messageCount).isEqualTo(0L);
+    }
+}
diff --git a/server/container/guice/memory-guice/src/test/resources/mailetcontainer.xml b/server/container/guice/memory-guice/src/test/resources/mailetcontainer.xml
index ea088d1..2c0ddc6 100644
--- a/server/container/guice/memory-guice/src/test/resources/mailetcontainer.xml
+++ b/server/container/guice/memory-guice/src/test/resources/mailetcontainer.xml
@@ -95,6 +95,7 @@
             <mailet match="All" class="SpamAssassin">
                 <spamdHost>localhost</spamdHost>
                 <spamdPort>783</spamdPort>
+                <onMailetException>ignore</onMailetException>
             </mailet>
             <mailet match="IsMarkedAsSpam" class="WithStorageDirective">
                 <targetFolderName>Spam</targetFolderName>


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


[james-project] 07/16: JAMES-2124 Sorts all plugins configuration

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 9fa8c36c914050e6e15cbdc7f097639d1adbd915
Author: Jean Helou <jh...@codamens.fr>
AuthorDate: Wed Nov 18 11:46:26 2020 +0100

    JAMES-2124 Sorts all plugins configuration
---
 mailet/crypto/pom.xml                              |  2 +-
 pom.xml                                            | 38 +++++++++++-----------
 server/app/pom.xml                                 | 16 ++++-----
 .../container/guice/testing/custom-mailets/pom.xml |  2 +-
 server/protocols/webadmin-cli/pom.xml              |  6 ++--
 server/protocols/webadmin/webadmin-data/pom.xml    |  2 +-
 .../webadmin-mailbox-deleted-message-vault/pom.xml |  2 +-
 server/protocols/webadmin/webadmin-mailbox/pom.xml |  2 +-
 .../protocols/webadmin/webadmin-mailqueue/pom.xml  |  2 +-
 .../webadmin/webadmin-mailrepository/pom.xml       |  2 +-
 .../protocols/webadmin/webadmin-rabbitmq/pom.xml   |  2 +-
 server/protocols/webadmin/webadmin-swagger/pom.xml |  2 +-
 12 files changed, 38 insertions(+), 40 deletions(-)

diff --git a/mailet/crypto/pom.xml b/mailet/crypto/pom.xml
index b72d120..b0604cc 100644
--- a/mailet/crypto/pom.xml
+++ b/mailet/crypto/pom.xml
@@ -86,10 +86,10 @@
                 <executions>
                     <execution>
                         <id>make-assembly</id>
-                        <phase>package</phase>
                         <goals>
                             <goal>single</goal>
                         </goals>
+                        <phase>package</phase>
                     </execution>
                 </executions>
             </plugin>
diff --git a/pom.xml b/pom.xml
index bf064ca..240c8e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2821,32 +2821,32 @@
                     <groupId>net.alchim31.maven</groupId>
                     <artifactId>scala-maven-plugin</artifactId>
                     <version>3.4.4</version>
+                    <configuration>
+                        <args>
+                            <arg>-Xlog-implicits</arg>
+                            <arg>-feature</arg>
+                            <arg>-unchecked</arg>
+                            <arg>-deprecation</arg>
+                            <arg>-explaintypes</arg>
+                        </args>
+                    </configuration>
                     <executions>
                         <execution>
                             <id>scala-compile-first</id>
-                            <phase>process-resources</phase>
                             <goals>
                                 <goal>add-source</goal>
                                 <goal>compile</goal>
                             </goals>
+                            <phase>process-resources</phase>
                         </execution>
                         <execution>
                             <id>scala-test-compile</id>
-                            <phase>process-test-resources</phase>
                             <goals>
                                 <goal>testCompile</goal>
                             </goals>
+                            <phase>process-test-resources</phase>
                         </execution>
                     </executions>
-                    <configuration>
-                        <args>
-                            <arg>-Xlog-implicits</arg>
-                            <arg>-feature</arg>
-                            <arg>-unchecked</arg>
-                            <arg>-deprecation</arg>
-                            <arg>-explaintypes</arg>
-                        </args>
-                    </configuration>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
@@ -3359,14 +3359,6 @@
             <plugin>
                 <groupId>pl.project13.maven</groupId>
                 <artifactId>git-commit-id-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>get-the-git-infos</id>
-                        <goals>
-                            <goal>revision</goal>
-                        </goals>
-                    </execution>
-                </executions>
                 <configuration>
                     <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
                     <prefix>git</prefix>
@@ -3389,6 +3381,14 @@
                         <dirty>-dirty</dirty>
                     </gitDescribe>
                 </configuration>
+                <executions>
+                    <execution>
+                        <id>get-the-git-infos</id>
+                        <goals>
+                            <goal>revision</goal>
+                        </goals>
+                    </execution>
+                </executions>
             </plugin>
         </plugins>
         <extensions>
diff --git a/server/app/pom.xml b/server/app/pom.xml
index 0d96ef9..157e7a4 100644
--- a/server/app/pom.xml
+++ b/server/app/pom.xml
@@ -844,21 +844,21 @@
                                 <!-- this is only needed because windows freak out on long cmd lines, so we strip of the absolute path
                                     from the lib dir to make windows happy again
                                 -->
-                                <replace file="${project.build.directory}/appassembler/bin/run.bat" token="%BASEDIR%\lib" value="..\lib" />
-                                <replace file="${project.build.directory}/appassembler/bin/run.sh" token="setenv" value="setenv.sh" />
+                                <replace file="${project.build.directory}/appassembler/bin/run.bat" token="%BASEDIR%\lib" value="..\lib"></replace>
+                                <replace file="${project.build.directory}/appassembler/bin/run.sh" token="setenv" value="setenv.sh"></replace>
 
                                 <!-- this is needed because appassembler is not really smart on some settings -->
-                                <replace file="${project.build.directory}/appassembler/jsw/james/conf/wrapper.conf" token="lib/wrapper.jar" value="%REPO_DIR%/wrapper.jar" />
-                                <replace file="${project.build.directory}/appassembler/jsw/james/bin/james" token="logs" value="var" />
-                                <replace file="${project.build.directory}/appassembler/jsw/james/bin/james" token="setenv" value="setenv.sh" />
+                                <replace file="${project.build.directory}/appassembler/jsw/james/conf/wrapper.conf" token="lib/wrapper.jar" value="%REPO_DIR%/wrapper.jar"></replace>
+                                <replace file="${project.build.directory}/appassembler/jsw/james/bin/james" token="logs" value="var"></replace>
+                                <replace file="${project.build.directory}/appassembler/jsw/james/bin/james" token="setenv" value="setenv.sh"></replace>
 
                                 <!-- copy the linux wrapper-linux-x86-32 to wrapper, so use it as default if no matching wrapper was found -->
-                                <copy file="${project.build.directory}/appassembler/jsw/james/bin/wrapper-linux-x86-32" tofile="${project.build.directory}/appassembler/jsw/james/bin/wrapper" />
+                                <copy file="${project.build.directory}/appassembler/jsw/james/bin/wrapper-linux-x86-32" tofile="${project.build.directory}/appassembler/jsw/james/bin/wrapper"></copy>
                                 <!-- this is only needed because windows freak out on long cmd lines, so we strip of the absolute path
                                     from the lib dir to make windows happy again
                                 -->
-                                <replace file="${project.build.directory}/appassembler/bin/james-cli.bat" token="%BASEDIR%\lib" value="..\lib" />
-                                <replace file="${project.build.directory}/appassembler/bin/james-cli.sh" token="setenv" value="setenv.sh" />
+                                <replace file="${project.build.directory}/appassembler/bin/james-cli.bat" token="%BASEDIR%\lib" value="..\lib"></replace>
+                                <replace file="${project.build.directory}/appassembler/bin/james-cli.sh" token="setenv" value="setenv.sh"></replace>
                             </tasks>
 
                         </configuration>
diff --git a/server/container/guice/testing/custom-mailets/pom.xml b/server/container/guice/testing/custom-mailets/pom.xml
index 563645e..ca42a9a 100644
--- a/server/container/guice/testing/custom-mailets/pom.xml
+++ b/server/container/guice/testing/custom-mailets/pom.xml
@@ -60,10 +60,10 @@
                 <executions>
                     <execution>
                         <id>make-assembly</id>
-                        <phase>package</phase>
                         <goals>
                             <goal>single</goal>
                         </goals>
+                        <phase>package</phase>
                     </execution>
                 </executions>
             </plugin>
diff --git a/server/protocols/webadmin-cli/pom.xml b/server/protocols/webadmin-cli/pom.xml
index 2d488df..41ab1e7 100644
--- a/server/protocols/webadmin-cli/pom.xml
+++ b/server/protocols/webadmin-cli/pom.xml
@@ -82,16 +82,14 @@
                 <artifactId>maven-assembly-plugin</artifactId>
                 <executions>
                     <execution>
-                        <phase>package</phase>
                         <goals>
                             <goal>single</goal>
                         </goals>
+                        <phase>package</phase>
                         <configuration>
                             <archive>
                                 <manifest>
-                                    <mainClass>
-                                        org.apache.james.cli.WebAdminCli
-                                    </mainClass>
+                                    <mainClass>org.apache.james.cli.WebAdminCli</mainClass>
                                 </manifest>
                             </archive>
                             <descriptorRefs>
diff --git a/server/protocols/webadmin/webadmin-data/pom.xml b/server/protocols/webadmin/webadmin-data/pom.xml
index 6e5d4f7..13cf9a5 100644
--- a/server/protocols/webadmin/webadmin-data/pom.xml
+++ b/server/protocols/webadmin/webadmin-data/pom.xml
@@ -153,10 +153,10 @@
                 </configuration>
                 <executions>
                     <execution>
-                        <phase>compile</phase>
                         <goals>
                             <goal>generate</goal>
                         </goals>
+                        <phase>compile</phase>
                     </execution>
                 </executions>
             </plugin>
diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml
index 2e8b984..d175379 100644
--- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/pom.xml
@@ -173,10 +173,10 @@
                 </configuration>
                 <executions>
                     <execution>
-                        <phase>compile</phase>
                         <goals>
                             <goal>generate</goal>
                         </goals>
+                        <phase>compile</phase>
                     </execution>
                 </executions>
             </plugin>
diff --git a/server/protocols/webadmin/webadmin-mailbox/pom.xml b/server/protocols/webadmin/webadmin-mailbox/pom.xml
index 23b464b..9df135a 100644
--- a/server/protocols/webadmin/webadmin-mailbox/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailbox/pom.xml
@@ -252,10 +252,10 @@
                 </configuration>
                 <executions>
                     <execution>
-                        <phase>compile</phase>
                         <goals>
                             <goal>generate</goal>
                         </goals>
+                        <phase>compile</phase>
                     </execution>
                 </executions>
             </plugin>
diff --git a/server/protocols/webadmin/webadmin-mailqueue/pom.xml b/server/protocols/webadmin/webadmin-mailqueue/pom.xml
index 450f86d..34e3027 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailqueue/pom.xml
@@ -135,10 +135,10 @@
                 </configuration>
                 <executions>
                     <execution>
-                        <phase>compile</phase>
                         <goals>
                             <goal>generate</goal>
                         </goals>
+                        <phase>compile</phase>
                     </execution>
                 </executions>
             </plugin>
diff --git a/server/protocols/webadmin/webadmin-mailrepository/pom.xml b/server/protocols/webadmin/webadmin-mailrepository/pom.xml
index 9b0723d..6d0b4d3 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailrepository/pom.xml
@@ -158,10 +158,10 @@
                 </configuration>
                 <executions>
                     <execution>
-                        <phase>compile</phase>
                         <goals>
                             <goal>generate</goal>
                         </goals>
+                        <phase>compile</phase>
                     </execution>
                 </executions>
             </plugin>
diff --git a/server/protocols/webadmin/webadmin-rabbitmq/pom.xml b/server/protocols/webadmin/webadmin-rabbitmq/pom.xml
index 3132725..d4940c1 100644
--- a/server/protocols/webadmin/webadmin-rabbitmq/pom.xml
+++ b/server/protocols/webadmin/webadmin-rabbitmq/pom.xml
@@ -143,10 +143,10 @@
                 </configuration>
                 <executions>
                     <execution>
-                        <phase>compile</phase>
                         <goals>
                             <goal>generate</goal>
                         </goals>
+                        <phase>compile</phase>
                     </execution>
                 </executions>
             </plugin>
diff --git a/server/protocols/webadmin/webadmin-swagger/pom.xml b/server/protocols/webadmin/webadmin-swagger/pom.xml
index 77170da..706beba 100644
--- a/server/protocols/webadmin/webadmin-swagger/pom.xml
+++ b/server/protocols/webadmin/webadmin-swagger/pom.xml
@@ -65,10 +65,10 @@
                 </configuration>
                 <executions>
                     <execution>
-                        <phase>compile</phase>
                         <goals>
                             <goal>generate</goal>
                         </goals>
+                        <phase>compile</phase>
                     </execution>
                 </executions>
             </plugin>


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


[james-project] 04/16: JAMES-2124 Sorts modelversion, parent and artifact

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 fef130adc06b15eebddf0f5479344615ad8e97c5
Author: Jean Helou <jh...@codamens.fr>
AuthorDate: Wed Nov 18 11:25:31 2020 +0100

    JAMES-2124 Sorts modelversion, parent and artifact
---
 core/pom.xml                                               |  4 ++--
 event-sourcing/pom.xml                                     |  2 +-
 json/pom.xml                                               |  4 ++--
 mailbox/backup/pom.xml                                     |  2 +-
 mailbox/event/event-cassandra/pom.xml                      |  2 +-
 mailbox/event/event-memory/pom.xml                         |  2 +-
 mailbox/event/event-rabbitmq/pom.xml                       |  2 +-
 mailbox/event/json/pom.xml                                 |  2 +-
 mailbox/plugin/deleted-messages-vault-cassandra/pom.xml    |  2 +-
 mailbox/plugin/deleted-messages-vault/pom.xml              |  2 +-
 mailbox/plugin/quota-mailing-cassandra/pom.xml             |  2 +-
 mailbox/plugin/quota-mailing-memory/pom.xml                |  2 +-
 mailbox/plugin/quota-mailing/pom.xml                       |  2 +-
 mailbox/plugin/quota-search-elasticsearch/pom.xml          |  2 +-
 mailbox/plugin/quota-search-scanning/pom.xml               |  2 +-
 mailbox/plugin/quota-search/pom.xml                        |  2 +-
 mdn/pom.xml                                                |  4 ++--
 metrics/metrics-tests/pom.xml                              |  4 ++--
 mpt/impl/imap-mailbox/rabbitmq/pom.xml                     |  2 +-
 server/blob/blob-api/pom.xml                               |  2 +-
 server/blob/blob-cassandra/pom.xml                         |  2 +-
 server/blob/blob-common/pom.xml                            |  2 +-
 server/blob/blob-export-api/pom.xml                        |  2 +-
 server/blob/blob-export-file/pom.xml                       |  2 +-
 server/blob/blob-gc/pom.xml                                |  2 +-
 server/blob/blob-memory/pom.xml                            |  2 +-
 server/blob/blob-s3/pom.xml                                | 10 +++++-----
 server/blob/blob-storage-strategy/pom.xml                  |  2 +-
 server/blob/mail-store/pom.xml                             |  2 +-
 .../container/guice/cassandra-rabbitmq-ldap-guice/pom.xml  |  8 ++++----
 .../guice/protocols/webadmin-mail-over-web/pom.xml         |  2 +-
 .../container/guice/protocols/webadmin-mailqueue/pom.xml   |  4 ++--
 .../guice/protocols/webadmin-mailrepository/pom.xml        |  4 ++--
 .../guice/protocols/webadmin-rabbitmq-mailqueue/pom.xml    |  4 ++--
 .../cassandra-jmap-draft-integration-testing/pom.xml       |  2 +-
 .../memory-jmap-draft-integration-testing/pom.xml          |  2 +-
 .../rabbitmq-jmap-draft-integration-testing/pom.xml        |  2 +-
 .../distributed-jmap-rfc-8621-integration-tests/pom.xml    | 12 +++++-------
 .../jmap-rfc-8621-integration-tests-common/pom.xml         | 12 +++++-------
 .../memory-jmap-rfc-8621-integration-tests/pom.xml         | 12 +++++-------
 server/protocols/jmap-rfc-8621-integration-tests/pom.xml   | 10 ++++------
 server/protocols/jmap-rfc-8621/pom.xml                     |  3 +--
 server/protocols/jmap/pom.xml                              |  5 ++---
 server/protocols/webadmin-cli/pom.xml                      | 14 +++++---------
 server/protocols/webadmin/webadmin-mail-over-web/pom.xml   |  2 +-
 server/queue/queue-memory/pom.xml                          |  2 +-
 server/task/task-api/pom.xml                               |  2 +-
 server/task/task-distributed/pom.xml                       |  2 +-
 server/task/task-json/pom.xml                              |  2 +-
 server/task/task-memory/pom.xml                            |  2 +-
 testing/base/pom.xml                                       |  4 ++--
 51 files changed, 86 insertions(+), 100 deletions(-)

diff --git a/core/pom.xml b/core/pom.xml
index 48f4e33..9e4d461 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -18,12 +18,12 @@
     under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>james-project</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-project</artifactId>
         <version>3.6.0-SNAPSHOT</version>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>james-core</artifactId>
 
diff --git a/event-sourcing/pom.xml b/event-sourcing/pom.xml
index 257446d..fb2f814 100644
--- a/event-sourcing/pom.xml
+++ b/event-sourcing/pom.xml
@@ -25,9 +25,9 @@
         <artifactId>james-project</artifactId>
         <version>3.6.0-SNAPSHOT</version>
     </parent>
+    <artifactId>event-sourcing</artifactId>
 
     <packaging>pom</packaging>
-    <artifactId>event-sourcing</artifactId>
 
     <name>Apache James :: Event Sourcing</name>
 
diff --git a/json/pom.xml b/json/pom.xml
index 50bd13e..e744e1b 100644
--- a/json/pom.xml
+++ b/json/pom.xml
@@ -18,12 +18,12 @@
     under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>james-project</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-project</artifactId>
         <version>3.6.0-SNAPSHOT</version>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>james-json</artifactId>
 
diff --git a/mailbox/backup/pom.xml b/mailbox/backup/pom.xml
index c530b9f..9f1cf45 100644
--- a/mailbox/backup/pom.xml
+++ b/mailbox/backup/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/event/event-cassandra/pom.xml b/mailbox/event/event-cassandra/pom.xml
index ff304ad..1aaa04d 100644
--- a/mailbox/event/event-cassandra/pom.xml
+++ b/mailbox/event/event-cassandra/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/event/event-memory/pom.xml b/mailbox/event/event-memory/pom.xml
index 04534ef..1069502 100644
--- a/mailbox/event/event-memory/pom.xml
+++ b/mailbox/event/event-memory/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/event/event-rabbitmq/pom.xml b/mailbox/event/event-rabbitmq/pom.xml
index 29fbacf..84be4e9 100644
--- a/mailbox/event/event-rabbitmq/pom.xml
+++ b/mailbox/event/event-rabbitmq/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/event/json/pom.xml b/mailbox/event/json/pom.xml
index 161b77d..8d88ee8 100644
--- a/mailbox/event/json/pom.xml
+++ b/mailbox/event/json/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml b/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml
index 801def9..b8b7547 100644
--- a/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml
+++ b/mailbox/plugin/deleted-messages-vault-cassandra/pom.xml
@@ -18,8 +18,8 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/plugin/deleted-messages-vault/pom.xml b/mailbox/plugin/deleted-messages-vault/pom.xml
index 26db1a7..3317bd8 100644
--- a/mailbox/plugin/deleted-messages-vault/pom.xml
+++ b/mailbox/plugin/deleted-messages-vault/pom.xml
@@ -19,8 +19,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/plugin/quota-mailing-cassandra/pom.xml b/mailbox/plugin/quota-mailing-cassandra/pom.xml
index 0b42ce1..91e1616 100644
--- a/mailbox/plugin/quota-mailing-cassandra/pom.xml
+++ b/mailbox/plugin/quota-mailing-cassandra/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/plugin/quota-mailing-memory/pom.xml b/mailbox/plugin/quota-mailing-memory/pom.xml
index 5d6c02f..53d3f95 100644
--- a/mailbox/plugin/quota-mailing-memory/pom.xml
+++ b/mailbox/plugin/quota-mailing-memory/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/plugin/quota-mailing/pom.xml b/mailbox/plugin/quota-mailing/pom.xml
index d0a69b6..bdd619a 100644
--- a/mailbox/plugin/quota-mailing/pom.xml
+++ b/mailbox/plugin/quota-mailing/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/plugin/quota-search-elasticsearch/pom.xml b/mailbox/plugin/quota-search-elasticsearch/pom.xml
index d0c40a5..d3051cd 100644
--- a/mailbox/plugin/quota-search-elasticsearch/pom.xml
+++ b/mailbox/plugin/quota-search-elasticsearch/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/plugin/quota-search-scanning/pom.xml b/mailbox/plugin/quota-search-scanning/pom.xml
index 289580e..bd6a4d4 100644
--- a/mailbox/plugin/quota-search-scanning/pom.xml
+++ b/mailbox/plugin/quota-search-scanning/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mailbox/plugin/quota-search/pom.xml b/mailbox/plugin/quota-search/pom.xml
index 687ad8b..bd4cff5 100644
--- a/mailbox/plugin/quota-search/pom.xml
+++ b/mailbox/plugin/quota-search/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/mdn/pom.xml b/mdn/pom.xml
index 61a91da..77fc8cf 100644
--- a/mdn/pom.xml
+++ b/mdn/pom.xml
@@ -18,12 +18,12 @@
     under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>james-project</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-project</artifactId>
         <version>3.6.0-SNAPSHOT</version>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>james-mdn</artifactId>
 
diff --git a/metrics/metrics-tests/pom.xml b/metrics/metrics-tests/pom.xml
index de47e55..b692fcd 100644
--- a/metrics/metrics-tests/pom.xml
+++ b/metrics/metrics-tests/pom.xml
@@ -18,12 +18,12 @@
     under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>metrics</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>metrics</artifactId>
         <version>3.6.0-SNAPSHOT</version>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>metrics-tests</artifactId>
 
diff --git a/mpt/impl/imap-mailbox/rabbitmq/pom.xml b/mpt/impl/imap-mailbox/rabbitmq/pom.xml
index 127d191..4944fce 100644
--- a/mpt/impl/imap-mailbox/rabbitmq/pom.xml
+++ b/mpt/impl/imap-mailbox/rabbitmq/pom.xml
@@ -22,8 +22,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>apache-james-mpt-imapmailbox</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>apache-james-mpt-imapmailbox</artifactId>
         <version>3.6.0-SNAPSHOT</version>
     </parent>
 
diff --git a/server/blob/blob-api/pom.xml b/server/blob/blob-api/pom.xml
index e0c935c..557e2e3 100644
--- a/server/blob/blob-api/pom.xml
+++ b/server/blob/blob-api/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server-blob</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-blob</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/blob/blob-cassandra/pom.xml b/server/blob/blob-cassandra/pom.xml
index 3a07679..b395e6e 100644
--- a/server/blob/blob-cassandra/pom.xml
+++ b/server/blob/blob-cassandra/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server-blob</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-blob</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/blob/blob-common/pom.xml b/server/blob/blob-common/pom.xml
index acd254a..d383468 100644
--- a/server/blob/blob-common/pom.xml
+++ b/server/blob/blob-common/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server-blob</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-blob</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/blob/blob-export-api/pom.xml b/server/blob/blob-export-api/pom.xml
index 8e9f5b0..a979624 100644
--- a/server/blob/blob-export-api/pom.xml
+++ b/server/blob/blob-export-api/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server-blob</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-blob</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/blob/blob-export-file/pom.xml b/server/blob/blob-export-file/pom.xml
index 8f82f46..0c44fe1 100644
--- a/server/blob/blob-export-file/pom.xml
+++ b/server/blob/blob-export-file/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server-blob</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-blob</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/blob/blob-gc/pom.xml b/server/blob/blob-gc/pom.xml
index 44e3d1b..a396e74 100644
--- a/server/blob/blob-gc/pom.xml
+++ b/server/blob/blob-gc/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server-blob</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-blob</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/blob/blob-memory/pom.xml b/server/blob/blob-memory/pom.xml
index cb002cb..f6b1d34 100644
--- a/server/blob/blob-memory/pom.xml
+++ b/server/blob/blob-memory/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server-blob</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-blob</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/blob/blob-s3/pom.xml b/server/blob/blob-s3/pom.xml
index b87695e..8d35903 100644
--- a/server/blob/blob-s3/pom.xml
+++ b/server/blob/blob-s3/pom.xml
@@ -20,13 +20,9 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
-    <properties>
-        <s3-sdk.version>2.14.12</s3-sdk.version>
-    </properties>
-
     <parent>
-        <artifactId>james-server-blob</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-blob</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
@@ -36,6 +32,10 @@
 
     <name>Apache James :: Server :: Blob :: S3</name>
 
+    <properties>
+        <s3-sdk.version>2.14.12</s3-sdk.version>
+    </properties>
+
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/blob/blob-storage-strategy/pom.xml b/server/blob/blob-storage-strategy/pom.xml
index e2ba795..c462b0b 100644
--- a/server/blob/blob-storage-strategy/pom.xml
+++ b/server/blob/blob-storage-strategy/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server-blob</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-blob</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/blob/mail-store/pom.xml b/server/blob/mail-store/pom.xml
index c1df268..2dd459d 100644
--- a/server/blob/mail-store/pom.xml
+++ b/server/blob/mail-store/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server-blob</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-blob</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml b/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml
index 579bc8b..6ed69e7 100644
--- a/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml
+++ b/server/container/guice/cassandra-rabbitmq-ldap-guice/pom.xml
@@ -18,18 +18,18 @@
     under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>james-server-guice</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-guice</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>james-server-cassandra-rabbitmq-ldap-guice</artifactId>
 
     <name>Apache James :: Server :: Cassandra/Ldap with RabbitMQ - guice injection</name>
     <description>An advanced email server - Cassandra/Ldap backend and RabbitMQ messaging with guice injection</description>
-
-    <artifactId>james-server-cassandra-rabbitmq-ldap-guice</artifactId>
     <dependencies>
         <dependency>
             <groupId>${james.groupId}</groupId>
diff --git a/server/container/guice/protocols/webadmin-mail-over-web/pom.xml b/server/container/guice/protocols/webadmin-mail-over-web/pom.xml
index 25278ea..e8190bb 100644
--- a/server/container/guice/protocols/webadmin-mail-over-web/pom.xml
+++ b/server/container/guice/protocols/webadmin-mail-over-web/pom.xml
@@ -18,13 +18,13 @@
     under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.james</groupId>
         <artifactId>james-server-guice</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>james-server-guice-webadmin-mail-over-web</artifactId>
     <packaging>jar</packaging>
diff --git a/server/container/guice/protocols/webadmin-mailqueue/pom.xml b/server/container/guice/protocols/webadmin-mailqueue/pom.xml
index ec8b246..2a4290c 100644
--- a/server/container/guice/protocols/webadmin-mailqueue/pom.xml
+++ b/server/container/guice/protocols/webadmin-mailqueue/pom.xml
@@ -20,10 +20,10 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
     <modelVersion>4.0.0</modelVersion>
-    
+
     <parent>
-        <artifactId>james-server-guice</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-guice</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/server/container/guice/protocols/webadmin-mailrepository/pom.xml b/server/container/guice/protocols/webadmin-mailrepository/pom.xml
index 1527a81..4ff4e21 100644
--- a/server/container/guice/protocols/webadmin-mailrepository/pom.xml
+++ b/server/container/guice/protocols/webadmin-mailrepository/pom.xml
@@ -20,10 +20,10 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
     <modelVersion>4.0.0</modelVersion>
-    
+
     <parent>
-        <artifactId>james-server-guice</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-guice</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/server/container/guice/protocols/webadmin-rabbitmq-mailqueue/pom.xml b/server/container/guice/protocols/webadmin-rabbitmq-mailqueue/pom.xml
index 9d625f4..7689d3e 100644
--- a/server/container/guice/protocols/webadmin-rabbitmq-mailqueue/pom.xml
+++ b/server/container/guice/protocols/webadmin-rabbitmq-mailqueue/pom.xml
@@ -20,10 +20,10 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
     <modelVersion>4.0.0</modelVersion>
-    
+
     <parent>
-        <artifactId>james-server-guice</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server-guice</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
index ccb1b97..1069813 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>jmap-draft-integration-testing</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>jmap-draft-integration-testing</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml b/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
index f452e7f..83edc18 100644
--- a/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
+++ b/server/protocols/jmap-draft-integration-testing/memory-jmap-draft-integration-testing/pom.xml
@@ -21,8 +21,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>jmap-draft-integration-testing</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>jmap-draft-integration-testing</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml
index 682a117..7cd5490 100644
--- a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml
+++ b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/pom.xml
@@ -3,8 +3,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>jmap-draft-integration-testing</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>jmap-draft-integration-testing</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml b/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml
index c1092ac..cd9674a 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml
+++ b/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/pom.xml
@@ -17,19 +17,17 @@
     specific language governing permissions and limitations
     under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>jmap-rfc-8621-integration-tests</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>jmap-rfc-8621-integration-tests</artifactId>
         <version>3.6.0-SNAPSHOT</version>
     </parent>
-
-    <modelVersion>4.0.0</modelVersion>
     <artifactId>distributed-jmap-rfc-8621-integration-tests</artifactId>
-    <description>Distributed Integration testing for JMAP RFC-8621</description>
     <name>Apache James :: Server :: JMAP RFC-8621 :: Distributed Integration Testing</name>
+    <description>Distributed Integration testing for JMAP RFC-8621</description>
 
     <dependencies>
         <dependency>
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/pom.xml b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/pom.xml
index e024ff5..3fb6359 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/pom.xml
+++ b/server/protocols/jmap-rfc-8621-integration-tests/jmap-rfc-8621-integration-tests-common/pom.xml
@@ -17,19 +17,17 @@
     specific language governing permissions and limitations
     under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>jmap-rfc-8621-integration-tests</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>jmap-rfc-8621-integration-tests</artifactId>
         <version>3.6.0-SNAPSHOT</version>
     </parent>
-
-    <modelVersion>4.0.0</modelVersion>
     <artifactId>jmap-rfc-8621-integration-tests-common</artifactId>
-    <description>JMAP RFC-8621 integration test suite common to all products</description>
     <name>Apache James :: Server :: JMAP RFC-8621 :: Contract for Integration Testing</name>
+    <description>JMAP RFC-8621 integration test suite common to all products</description>
 
     <dependencies>
         <dependency>
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/pom.xml b/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/pom.xml
index 97bc022..6d61d42 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/pom.xml
+++ b/server/protocols/jmap-rfc-8621-integration-tests/memory-jmap-rfc-8621-integration-tests/pom.xml
@@ -17,19 +17,17 @@
     specific language governing permissions and limitations
     under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>jmap-rfc-8621-integration-tests</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>jmap-rfc-8621-integration-tests</artifactId>
         <version>3.6.0-SNAPSHOT</version>
     </parent>
-
-    <modelVersion>4.0.0</modelVersion>
     <artifactId>memory-jmap-rfc-8621-integration-tests</artifactId>
-    <description>JMAP RFC-8621 integration test for memory product</description>
     <name>Apache James :: Server :: JMAP RFC-8621 :: Memory Integration Testing</name>
+    <description>JMAP RFC-8621 integration test for memory product</description>
 
     <dependencies>
         <dependency>
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/pom.xml b/server/protocols/jmap-rfc-8621-integration-tests/pom.xml
index 1208634..afd061e 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/pom.xml
+++ b/server/protocols/jmap-rfc-8621-integration-tests/pom.xml
@@ -17,17 +17,15 @@
     specific language governing permissions and limitations
     under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>james-server</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
-
-    <modelVersion>4.0.0</modelVersion>
     <artifactId>jmap-rfc-8621-integration-tests</artifactId>
     <packaging>pom</packaging>
     <name>Apache James :: Server :: JMAP RFC-8621 :: Integration Testing</name>
diff --git a/server/protocols/jmap-rfc-8621/pom.xml b/server/protocols/jmap-rfc-8621/pom.xml
index c7b3a4e..9692da3 100644
--- a/server/protocols/jmap-rfc-8621/pom.xml
+++ b/server/protocols/jmap-rfc-8621/pom.xml
@@ -17,8 +17,7 @@
     specific language governing permissions and limitations
     under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
diff --git a/server/protocols/jmap/pom.xml b/server/protocols/jmap/pom.xml
index 33e0e04..3180a0d 100644
--- a/server/protocols/jmap/pom.xml
+++ b/server/protocols/jmap/pom.xml
@@ -17,15 +17,14 @@
   * specific language governing permissions and limitations      *
   * under the License.                                           *
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
-
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>james-server</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>james-server-jmap</artifactId>
 
diff --git a/server/protocols/webadmin-cli/pom.xml b/server/protocols/webadmin-cli/pom.xml
index 97bb4c7..fcf926b 100644
--- a/server/protocols/webadmin-cli/pom.xml
+++ b/server/protocols/webadmin-cli/pom.xml
@@ -17,22 +17,18 @@
     specific language governing permissions and limitations
     under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>james-server</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
-
-    <modelVersion>4.0.0</modelVersion>
+    <artifactId>webadmin-cli</artifactId>
     <name>Apache James :: Server :: Web Admin CLI</name>
     <description>James Webadmin based CLI</description>
-    <artifactId>webadmin-cli</artifactId>
-
-
 
     <dependencies>
         <dependency>
diff --git a/server/protocols/webadmin/webadmin-mail-over-web/pom.xml b/server/protocols/webadmin/webadmin-mail-over-web/pom.xml
index 27e6dd5..624f1eb 100644
--- a/server/protocols/webadmin/webadmin-mail-over-web/pom.xml
+++ b/server/protocols/webadmin/webadmin-mail-over-web/pom.xml
@@ -18,13 +18,13 @@
     under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.james</groupId>
         <artifactId>james-server</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>james-server-webadmin-mail-over-web</artifactId>
     <packaging>jar</packaging>
diff --git a/server/queue/queue-memory/pom.xml b/server/queue/queue-memory/pom.xml
index b6525aa..4c34652 100644
--- a/server/queue/queue-memory/pom.xml
+++ b/server/queue/queue-memory/pom.xml
@@ -3,8 +3,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/server/task/task-api/pom.xml b/server/task/task-api/pom.xml
index 2b18578..09a15d9 100644
--- a/server/task/task-api/pom.xml
+++ b/server/task/task-api/pom.xml
@@ -22,8 +22,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/server/task/task-distributed/pom.xml b/server/task/task-distributed/pom.xml
index ef1abd1..f152981 100644
--- a/server/task/task-distributed/pom.xml
+++ b/server/task/task-distributed/pom.xml
@@ -22,8 +22,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/server/task/task-json/pom.xml b/server/task/task-json/pom.xml
index 631fd76..637011d 100644
--- a/server/task/task-json/pom.xml
+++ b/server/task/task-json/pom.xml
@@ -22,8 +22,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/server/task/task-memory/pom.xml b/server/task/task-memory/pom.xml
index 0085afd..7bdd962 100644
--- a/server/task/task-memory/pom.xml
+++ b/server/task/task-memory/pom.xml
@@ -22,8 +22,8 @@
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <artifactId>james-server</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-server</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
diff --git a/testing/base/pom.xml b/testing/base/pom.xml
index 5a14231..5f9325b 100644
--- a/testing/base/pom.xml
+++ b/testing/base/pom.xml
@@ -18,13 +18,13 @@
     under the License.
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
     <parent>
-        <artifactId>james-project</artifactId>
         <groupId>org.apache.james</groupId>
+        <artifactId>james-project</artifactId>
         <version>3.6.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>testing-base</artifactId>
 


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


[james-project] 12/16: JAMES-3441 [REFACTORING] Use Optionals and encapsulating class for JamesMailSpooler mutable content

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 ef2890346dce94ad957310a1c9bcbee58404b041
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Nov 18 12:53:26 2020 +0700

    JAMES-3441 [REFACTORING] Use Optionals and encapsulating class for JamesMailSpooler mutable content
---
 .../mailetcontainer/impl/JamesMailSpooler.java     | 240 +++++++++++----------
 1 file changed, 132 insertions(+), 108 deletions(-)

diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
index b6ceddb..23623db 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
@@ -63,6 +63,126 @@ import reactor.core.scheduler.Schedulers;
  * them from the spool when processing is complete.
  */
 public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMBean {
+    private static class Runner {
+        private final AtomicInteger processingActive = new AtomicInteger(0);
+        private final MetricFactory metricFactory;
+        private final MailProcessor mailProcessor;
+        private final MailRepository errorRepository;
+        private final MailRepositoryUrl errorRepositoryURL;
+        private final reactor.core.Disposable disposable;
+        private final MailQueue queue;
+        private final int concurrencyLevel;
+
+        private Runner(MetricFactory metricFactory, MailProcessor mailProcessor, MailRepository errorRepository, MailRepositoryUrl errorRepositoryURL, MailQueue queue, int concurrencyLevel) {
+            this.metricFactory = metricFactory;
+            this.mailProcessor = mailProcessor;
+            this.errorRepository = errorRepository;
+            this.errorRepositoryURL = errorRepositoryURL;
+            this.disposable = run(queue);
+            this.queue = queue;
+            this.concurrencyLevel = concurrencyLevel;
+        }
+
+        private reactor.core.Disposable run(MailQueue queue) {
+            return Flux.from(queue.deQueue())
+                .flatMap(item -> handleOnQueueItem(item).subscribeOn(Schedulers.elastic()), concurrencyLevel)
+                .onErrorContinue((throwable, item) -> LOGGER.error("Exception processing mail while spooling {}", item, throwable))
+                .subscribeOn(Schedulers.elastic())
+                .subscribe();
+        }
+
+        private Mono<Void> handleOnQueueItem(MailQueueItem queueItem) {
+            TimeMetric timeMetric = metricFactory.timer(SPOOL_PROCESSING);
+            return Mono.fromCallable(processingActive::incrementAndGet)
+                .flatMap(ignore -> processMail(queueItem))
+                .doOnSuccess(any -> timeMetric.stopAndPublish().logWhenExceedP99(DEFAULT_100_MS_THRESHOLD))
+                .doOnTerminate(processingActive::decrementAndGet);
+        }
+
+        private Mono<Void> processMail(MailQueueItem queueItem) {
+            return Mono
+                .using(
+                    queueItem::getMail,
+                    mail -> Mono.fromRunnable(() -> performProcessMail(queueItem, mail)),
+                    LifecycleUtil::dispose);
+        }
+
+        private void performProcessMail(MailQueueItem queueItem, Mail mail) {
+            LOGGER.debug("==== Begin processing mail {} ====", mail.getName());
+            try {
+                mailProcessor.service(mail);
+
+                if (Thread.currentThread().isInterrupted()) {
+                    throw new InterruptedException("Thread has been interrupted");
+                }
+                queueItem.done(true);
+            } catch (Exception e) {
+                handleError(queueItem, mail, e);
+            } finally {
+                LOGGER.debug("==== End processing mail {} ====", mail.getName());
+            }
+        }
+
+        private void handleError(MailQueueItem queueItem, Mail mail, Exception processingException) {
+            int failureCount = computeFailureCount(mail);
+
+            try {
+                if (failureCount > MAXIMUM_FAILURE_COUNT) {
+                    LOGGER.error("Failed {} processing {} consecutive times. Abort. Mail is saved in {}", mail.getName(), failureCount, errorRepositoryURL.asString());
+                    storeInErrorRepository(queueItem);
+                } else {
+                    LOGGER.error("Failed {} processing {} consecutive times. Mail is requeued with increased failure count.", mail.getName(), failureCount, processingException);
+                    reEnqueue(queueItem, failureCount);
+                }
+            } catch (Exception nestedE) {
+                LOGGER.error("Could not apply standard error handling for {}, defaulting to nack", mail.getName(), nestedE);
+                nack(queueItem, processingException);
+            }
+        }
+
+        private int computeFailureCount(Mail mail) {
+            Integer previousFailureCount = mail.getAttribute(MAIL_PROCESSING_ERROR_COUNT)
+                .flatMap(attribute -> attribute.getValue().valueAs(Integer.class))
+                .orElse(0);
+            return previousFailureCount + 1;
+        }
+
+        private void reEnqueue(MailQueueItem queueItem, int failureCount) throws MailQueue.MailQueueException {
+            Mail mail = queueItem.getMail();
+            mail.setAttribute(new Attribute(MAIL_PROCESSING_ERROR_COUNT, AttributeValue.of(failureCount)));
+            queue.enQueue(mail);
+            queueItem.done(true);
+        }
+
+        private void storeInErrorRepository(MailQueueItem queueItem) throws MessagingException {
+            errorRepository.store(queueItem.getMail());
+            queueItem.done(true);
+        }
+
+        private void nack(MailQueueItem queueItem, Exception processingException) {
+            try {
+                queueItem.done(false);
+            } catch (MailQueue.MailQueueException ex) {
+                throw new RuntimeException(processingException);
+            }
+        }
+
+        public void dispose() {
+            LOGGER.info("start dispose() ...");
+            disposable.dispose();
+            try {
+                queue.close();
+            } catch (IOException e) {
+                LOGGER.debug("error closing queue", e);
+            }
+            LOGGER.info("thread shutdown completed.");
+        }
+
+        public int getCurrentSpoolCount() {
+            return processingActive.get();
+        }
+    }
+
     private static final Logger LOGGER = LoggerFactory.getLogger(JamesMailSpooler.class);
 
     public static final String SPOOL_PROCESSING = "spoolProcessing";
@@ -74,23 +194,14 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
      * concurrency level to use for dequeuing mails from spool, allows to throttle resources dedicated to that async
      * process.
      */
-    private int concurrencyLevel;
-
-    private final AtomicInteger processingActive = new AtomicInteger(0);
-
     private final MetricFactory metricFactory;
-
-    /**
-     * The mail processor
-     */
     private final MailProcessor mailProcessor;
     private final MailRepositoryStore mailRepositoryStore;
-
     private final MailQueueFactory<?> queueFactory;
+
+    private int concurrencyLevel;
     private MailRepositoryUrl errorRepositoryURL;
-    private MailRepository errorRepository;
-    private reactor.core.Disposable disposable;
-    private MailQueue queue;
+    private Optional<Runner> runner;
 
     @Inject
     public JamesMailSpooler(MetricFactory metricFactory, MailProcessor mailProcessor, MailRepositoryStore mailRepositoryStore, MailQueueFactory<?> queueFactory) {
@@ -118,100 +229,20 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
     public void init() {
         LOGGER.info("init...");
         LOGGER.info("Concurrency level is {}", concurrencyLevel);
-        queue = queueFactory.createQueue(MailQueueFactory.SPOOL, MailQueueFactory.prefetchCount(concurrencyLevel));
-        disposable = run(queue);
+        MailQueue queue = queueFactory.createQueue(MailQueueFactory.SPOOL, MailQueueFactory.prefetchCount(concurrencyLevel));
+        runner = Optional.of(new Runner(metricFactory,
+            mailProcessor, errorRepository(), errorRepositoryURL, queue, concurrencyLevel));
         LOGGER.info("Spooler started");
-        try {
-            this.errorRepository = mailRepositoryStore.select(errorRepositoryURL);
-        } catch (MailRepositoryStore.MailRepositoryStoreException e) {
-            throw new RuntimeException(e);
-        }
-
-    }
-
-    private reactor.core.Disposable run(MailQueue queue) {
-        return Flux.from(queue.deQueue())
-            .flatMap(item -> handleOnQueueItem(item).subscribeOn(Schedulers.elastic()), concurrencyLevel)
-            .onErrorContinue((throwable, item) -> LOGGER.error("Exception processing mail while spooling {}", item, throwable))
-            .subscribeOn(Schedulers.elastic())
-            .subscribe();
-    }
-
-    private Mono<Void> handleOnQueueItem(MailQueueItem queueItem) {
-        TimeMetric timeMetric = metricFactory.timer(SPOOL_PROCESSING);
-        return Mono.fromCallable(processingActive::incrementAndGet)
-            .flatMap(ignore -> processMail(queueItem))
-            .doOnSuccess(any -> timeMetric.stopAndPublish().logWhenExceedP99(DEFAULT_100_MS_THRESHOLD))
-            .doOnTerminate(processingActive::decrementAndGet);
-    }
-
-    private Mono<Void> processMail(MailQueueItem queueItem) {
-        return Mono
-            .using(
-                queueItem::getMail,
-                mail -> Mono.fromRunnable(() -> performProcessMail(queueItem, mail)),
-                LifecycleUtil::dispose);
-    }
-
-    private void performProcessMail(MailQueueItem queueItem, Mail mail) {
-        LOGGER.debug("==== Begin processing mail {} ====", mail.getName());
-        try {
-            mailProcessor.service(mail);
-
-            if (Thread.currentThread().isInterrupted()) {
-                throw new InterruptedException("Thread has been interrupted");
-            }
-            queueItem.done(true);
-        } catch (Exception e) {
-            handleError(queueItem, mail, e);
-        } finally {
-            LOGGER.debug("==== End processing mail {} ====", mail.getName());
-        }
     }
 
-    private void handleError(MailQueueItem queueItem, Mail mail, Exception processingException) {
-        int failureCount = computeFailureCount(mail);
-
+    private MailRepository errorRepository() {
         try {
-            if (failureCount > MAXIMUM_FAILURE_COUNT) {
-                LOGGER.error("Failed {} processing {} consecutive times. Abort. Mail is saved in {}", mail.getName(), failureCount, errorRepositoryURL.asString());
-                storeInErrorRepository(queueItem);
-            } else {
-                LOGGER.error("Failed {} processing {} consecutive times. Mail is requeued with increased failure count.", mail.getName(), failureCount, processingException);
-                reEnqueue(queueItem, failureCount);
-            }
-        } catch (Exception nestedE) {
-            LOGGER.error("Could not apply standard error handling for {}, defaulting to nack", mail.getName(), nestedE);
-            nack(queueItem, processingException);
+            return mailRepositoryStore.select(errorRepositoryURL);
+        } catch (MailRepositoryStore.MailRepositoryStoreException e) {
+            throw new RuntimeException(e);
         }
     }
 
-    private int computeFailureCount(Mail mail) {
-        Integer previousFailureCount = mail.getAttribute(MAIL_PROCESSING_ERROR_COUNT)
-            .flatMap(attribute -> attribute.getValue().valueAs(Integer.class))
-            .orElse(0);
-        return previousFailureCount + 1;
-    }
-
-    private void reEnqueue(MailQueueItem queueItem, int failureCount) throws MailQueue.MailQueueException {
-        Mail mail = queueItem.getMail();
-        mail.setAttribute(new Attribute(MAIL_PROCESSING_ERROR_COUNT, AttributeValue.of(failureCount)));
-        queue.enQueue(mail);
-        queueItem.done(true);
-    }
-
-    private void storeInErrorRepository(MailQueueItem queueItem) throws MessagingException {
-        errorRepository.store(queueItem.getMail());
-        queueItem.done(true);
-    }
-
-    private void nack(MailQueueItem queueItem, Exception processingException) {
-        try {
-            queueItem.done(false);
-        } catch (MailQueue.MailQueueException ex) {
-            throw new RuntimeException(processingException);
-        }
-    }
 
     /**
      * The dispose operation is called at the end of a components lifecycle.
@@ -224,14 +255,7 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
     @PreDestroy
     @Override
     public void dispose() {
-        LOGGER.info("start dispose() ...");
-        disposable.dispose();
-        try {
-            queue.close();
-        } catch (IOException e) {
-            LOGGER.debug("error closing queue", e);
-        }
-        LOGGER.info("thread shutdown completed.");
+        runner.ifPresent(Runner::dispose);
     }
 
     @Override
@@ -241,6 +265,6 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
 
     @Override
     public int getCurrentSpoolCount() {
-        return processingActive.get();
+        return runner.map(Runner::getCurrentSpoolCount).orElse(0);
     }
 }


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


[james-project] 14/16: JAMES-3441 [Refactoring] Strong type & extract JamesMailSpooler configuration

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 f7cc352d7a189ad10d0dcdb71c8d6aded07bb439
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Nov 18 13:06:37 2020 +0700

    JAMES-3441 [Refactoring] Strong type & extract JamesMailSpooler configuration
    
    This ease injection overrides for this configuration thus ease testing
---
 .../modules/server/CamelMailetContainerModule.java | 12 ++-
 .../mailetcontainer/impl/JamesMailSpooler.java     | 91 ++++++++++++++++------
 2 files changed, 76 insertions(+), 27 deletions(-)

diff --git a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
index 68c7d06..0364045 100644
--- a/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
+++ b/server/container/guice/mailet/src/main/java/org/apache/james/modules/server/CamelMailetContainerModule.java
@@ -45,6 +45,7 @@ import org.apache.james.mailetcontainer.impl.JamesMailetContext;
 import org.apache.james.mailetcontainer.impl.MatcherMailetPair;
 import org.apache.james.mailetcontainer.impl.camel.CamelCompositeProcessor;
 import org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor;
+import org.apache.james.mailrepository.api.MailRepositoryStore;
 import org.apache.james.server.core.configuration.ConfigurationProvider;
 import org.apache.james.transport.mailets.RemoveMimeHeader;
 import org.apache.james.transport.matchers.All;
@@ -123,12 +124,19 @@ public class CamelMailetContainerModule extends AbstractModule {
         return camelContext;
     }
 
+    @Provides
+    @Singleton
+    public JamesMailSpooler.Configuration spoolerConfiguration(MailRepositoryStore mailRepositoryStore, ConfigurationProvider configurationProvider) {
+        HierarchicalConfiguration<ImmutableNode> conf = getJamesSpoolerConfiguration(configurationProvider);
+        return JamesMailSpooler.Configuration.from(mailRepositoryStore, conf);
+    }
+
     @ProvidesIntoSet
-    InitializationOperation startSpooler(JamesMailSpooler jamesMailSpooler, ConfigurationProvider configurationProvider) {
+    InitializationOperation startSpooler(JamesMailSpooler jamesMailSpooler, JamesMailSpooler.Configuration configuration) {
         return InitilizationOperationBuilder
             .forClass(JamesMailSpooler.class)
             .init(() -> {
-                jamesMailSpooler.configure(getJamesSpoolerConfiguration(configurationProvider));
+                jamesMailSpooler.configure(configuration);
                 jamesMailSpooler.init();
             });
     }
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
index 6244e4c..cb15deb 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
@@ -53,6 +53,7 @@ import org.apache.mailet.Mail;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.base.Preconditions;
 
 import reactor.core.publisher.Flux;
@@ -70,24 +71,24 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
         private final MetricFactory metricFactory;
         private final MailProcessor mailProcessor;
         private final MailRepository errorRepository;
-        private final MailRepositoryUrl errorRepositoryURL;
         private final reactor.core.Disposable disposable;
         private final MailQueue queue;
-        private final int concurrencyLevel;
+        private final Configuration configuration;
 
-        private Runner(MetricFactory metricFactory, MailProcessor mailProcessor, MailRepository errorRepository, MailRepositoryUrl errorRepositoryURL, MailQueue queue, int concurrencyLevel) {
+        private Runner(MetricFactory metricFactory, MailProcessor mailProcessor,
+                       MailRepository errorRepository, MailQueue queue, Configuration configuration) {
             this.metricFactory = metricFactory;
             this.mailProcessor = mailProcessor;
             this.errorRepository = errorRepository;
-            this.errorRepositoryURL = errorRepositoryURL;
-            this.disposable = run(queue);
             this.queue = queue;
-            this.concurrencyLevel = concurrencyLevel;
+            this.configuration = configuration;
+
+            this.disposable = run(queue);
         }
 
         private reactor.core.Disposable run(MailQueue queue) {
             return Flux.from(queue.deQueue())
-                .flatMap(item -> handleOnQueueItem(item).subscribeOn(Schedulers.elastic()), concurrencyLevel)
+                .flatMap(item -> handleOnQueueItem(item).subscribeOn(Schedulers.elastic()), configuration.getConcurrencyLevel())
                 .onErrorContinue((throwable, item) -> LOGGER.error("Exception processing mail while spooling {}", item, throwable))
                 .subscribeOn(Schedulers.elastic())
                 .subscribe();
@@ -130,7 +131,7 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
 
             try {
                 if (failureCount > MAXIMUM_FAILURE_COUNT) {
-                    LOGGER.error("Failed {} processing {} consecutive times. Abort. Mail is saved in {}", mail.getName(), failureCount, errorRepositoryURL.asString());
+                    LOGGER.error("Failed {} processing {} consecutive times. Abort. Mail is saved in {}", mail.getName(), failureCount, configuration.getErrorRepositoryURL().asString());
                     storeInErrorRepository(queueItem);
                 } else {
                     LOGGER.error("Failed {} processing {} consecutive times. Mail is requeued with increased failure count.", mail.getName(), failureCount, processingException);
@@ -185,6 +186,50 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
         }
     }
 
+    public static class Configuration {
+        public static Configuration from(MailRepositoryStore mailRepositoryStore, HierarchicalConfiguration<ImmutableNode> config) {
+            int concurrencyLevel = config.getInt("threads", 100);
+            MailRepositoryUrl errorRepositoryURL = Optional.ofNullable(config.getString("errorRepository", null))
+                .map(MailRepositoryUrl::from)
+                .orElseGet(() -> MailRepositoryUrl.fromPathAndProtocol(
+                    mailRepositoryStore.defaultProtocol()
+                        .orElseThrow(() -> new IllegalStateException("Cannot retrieve mailRepository URL, you need to configure an `errorRepository` property for the spooler.0")),
+                    ERROR_REPOSITORY_PATH));
+
+            return new Configuration(concurrencyLevel, errorRepositoryURL);
+        }
+
+        private final int concurrencyLevel;
+        private final MailRepositoryUrl errorRepositoryURL;
+
+        public Configuration(int concurrencyLevel, MailRepositoryUrl errorRepositoryURL) {
+            Preconditions.checkArgument(concurrencyLevel >= 0, "'threads' needs to be greater than or equal to zero");
+            
+            this.concurrencyLevel = concurrencyLevel;
+            this.errorRepositoryURL = errorRepositoryURL;
+        }
+
+        public int getConcurrencyLevel() {
+            return concurrencyLevel;
+        }
+
+        public boolean isEnabled() {
+            return concurrencyLevel > 0;
+        }
+
+        public MailRepositoryUrl getErrorRepositoryURL() {
+            return errorRepositoryURL;
+        }
+
+        @Override
+        public String toString() {
+            return MoreObjects.toStringHelper(this)
+                .add("concurrencyLevel", concurrencyLevel)
+                .add("errorRepositoryURL", errorRepositoryURL)
+                .toString();
+        }
+    }
+
     private static final Logger LOGGER = LoggerFactory.getLogger(JamesMailSpooler.class);
 
     public static final String SPOOL_PROCESSING = "spoolProcessing";
@@ -201,8 +246,7 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
     private final MailRepositoryStore mailRepositoryStore;
     private final MailQueueFactory<?> queueFactory;
 
-    private int concurrencyLevel;
-    private MailRepositoryUrl errorRepositoryURL;
+    private Configuration configuration;
     private Optional<Runner> runner;
 
     @Inject
@@ -215,13 +259,11 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
 
     @Override
     public void configure(HierarchicalConfiguration<ImmutableNode> config) {
-        concurrencyLevel = config.getInt("threads", 100);
-        errorRepositoryURL = Optional.ofNullable(config.getString("errorRepository", null))
-            .map(MailRepositoryUrl::from)
-            .orElseGet(() -> MailRepositoryUrl.fromPathAndProtocol(
-                mailRepositoryStore.defaultProtocol()
-                    .orElseThrow(() -> new IllegalStateException("Cannot retrieve mailRepository URL, you need to configure an `errorRepository` property for the spooler.0")),
-                ERROR_REPOSITORY_PATH));
+        configure(Configuration.from(mailRepositoryStore, config));
+    }
+
+    public void configure(Configuration configuration) {
+        this.configuration = configuration;
     }
 
     /**
@@ -229,22 +271,21 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
      */
     @PostConstruct
     public void init() {
-        Preconditions.checkArgument(concurrencyLevel >= 0, "'threads' needs to be greater than or equal to zero");
-        if (concurrencyLevel > 0) {
+        if (configuration.isEnabled()) {
             LOGGER.info("init...");
-            LOGGER.info("Concurrency level is {}", concurrencyLevel);
-            MailQueue queue = queueFactory.createQueue(MailQueueFactory.SPOOL, MailQueueFactory.prefetchCount(concurrencyLevel));
+            LOGGER.info("Concurrency level is {}", configuration.getConcurrencyLevel());
+            MailQueue queue = queueFactory.createQueue(MailQueueFactory.SPOOL, MailQueueFactory.prefetchCount(configuration.getConcurrencyLevel()));
             runner = Optional.of(new Runner(metricFactory,
-                mailProcessor, errorRepository(), errorRepositoryURL, queue, concurrencyLevel));
+                mailProcessor, errorRepository(), queue, configuration));
             LOGGER.info("Spooler started");
         } else {
-            LOGGER.info("Spooler had been dis-activated. To enable is set 'threads' count to a value greater than zero");
+            LOGGER.info("Spooler had been deactivated. To enable it set 'threads' count to a value greater than zero");
         }
     }
 
     private MailRepository errorRepository() {
         try {
-            return mailRepositoryStore.select(errorRepositoryURL);
+            return mailRepositoryStore.select(configuration.getErrorRepositoryURL());
         } catch (MailRepositoryStore.MailRepositoryStoreException e) {
             throw new RuntimeException(e);
         }
@@ -267,7 +308,7 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
 
     @Override
     public int getThreadCount() {
-        return concurrencyLevel;
+        return configuration.getConcurrencyLevel();
     }
 
     @Override


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


[james-project] 03/16: JAMES-2124 Enforces strict dependency ordering in pom files

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 66ed1439c69f06e4aca25d9b15edf22a77694f2f
Author: Jean Helou <jh...@codamens.fr>
AuthorDate: Wed Nov 18 09:31:49 2020 +0100

    JAMES-2124 Enforces strict dependency ordering in pom files
    
    This commit adds the sortpom-maven-plugin to the compile phase of the
    build. By default the plugin is configured to fail if it detects an
    incorrect dependency order in a pom.
    
    Because sorting xml by hand is fairly painful, this commit also adds a
    profile -PsortPom. When used this profile will change the plugin's
    configuration to sort dependencies in place. This will **modify** the
    pom files where ordering was incorrect.
---
 mpt/app/pom.xml | 22 ++++++++++++++++-
 pom.xml         | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 94 insertions(+), 1 deletion(-)

diff --git a/mpt/app/pom.xml b/mpt/app/pom.xml
index 701e817..5054953 100644
--- a/mpt/app/pom.xml
+++ b/mpt/app/pom.xml
@@ -56,6 +56,10 @@ interfaces to the MPT library.</description>
 
     <build>
         <plugins>
+            <?SORTPOM IGNORE?>
+            <!-- We need to run a specific execution of sortpom after the shade plugin has
+            generated the dependency reduced file and execution order is defined by order of
+            declaration -->
             <!-- Uber Jar -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
@@ -79,7 +83,23 @@ interfaces to the MPT library.</description>
                     </execution>
                 </executions>
             </plugin>
-
+            <plugin>
+                <groupId>com.github.ekryd.sortpom</groupId>
+                <artifactId>sortpom-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>sort-reduced-pom</id>
+                        <goals>
+                            <goal>sort</goal>
+                        </goals>
+                        <phase>package</phase>
+                        <configuration>
+                            <pomFile>dependency-reduced-pom.xml</pomFile>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <?SORTPOM RESUME?>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-jar-plugin</artifactId>
diff --git a/pom.xml b/pom.xml
index a054465..e9282ca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2741,6 +2741,48 @@
                     <version>1.0</version>
                 </plugin>
                 <plugin>
+                    <groupId>com.github.ekryd.sortpom</groupId>
+                    <artifactId>sortpom-maven-plugin</artifactId>
+                    <version>2.12.0</version>
+                    <configuration>
+                        <createBackupFile>false</createBackupFile>
+                        <expandEmptyElements>false</expandEmptyElements>
+                        <keepBlankLines>true</keepBlankLines>
+                        <nrOfIndentSpace>4</nrOfIndentSpace>
+                        <sortDependencies>groupId,artifactId</sortDependencies>
+                        <sortModules>true</sortModules>
+                        <predefinedSortOrder>recommended_2008_06</predefinedSortOrder>
+                    </configuration>
+                    <executions>
+                        <execution>
+                            <id>strict-pom-ordering</id>
+                            <goals>
+                                <goal>verify</goal>
+                            </goals>
+                            <phase>validate</phase>
+                            <configuration>
+                                <verifyFail>Stop</verifyFail>
+                            </configuration>
+                        </execution>
+                        <execution>
+                            <!--
+                             Use -PsortPom to switch from verify and
+                             fail to sort in place. Note that sort in place
+                             will rewrite the pom files and may introduce
+                             non-semantic changes in the xml:
+                             - attribute ordering,
+                             - empty tag format,
+                             - whitespace
+                             -->
+                            <id>fix-pom-ordering</id>
+                            <goals>
+                                <goal>verify</goal>
+                            </goals>
+                            <phase>none</phase>
+                        </execution>
+                    </executions>
+                </plugin>
+                <plugin>
                     <groupId>com.github.kongchen</groupId>
                     <artifactId>swagger-maven-plugin</artifactId>
                     <version>3.1.7</version>
@@ -3203,6 +3245,10 @@
         </pluginManagement>
         <plugins>
             <plugin>
+                <groupId>com.github.ekryd.sortpom</groupId>
+                <artifactId>sortpom-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-enforcer-plugin</artifactId>
                 <executions>
@@ -3391,6 +3437,33 @@
             </build>
         </profile>
         <profile>
+            <id>sortPom</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.github.ekryd.sortpom</groupId>
+                        <artifactId>sortpom-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>strict-pom-ordering</id>
+                                <goals>
+                                    <goal>verify</goal>
+                                </goals>
+                                <phase>none</phase>
+                            </execution>
+                            <execution>
+                                <id>fix-pom-ordering</id>
+                                <goals>
+                                    <goal>verify</goal>
+                                </goals>
+                                <phase>validate</phase>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
             <id>partial-build</id>
             <build>
                 <plugins>


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


[james-project] 11/16: JAMES-2124 updates contribution documentation

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 288f7fcb57feda978a9c1f841028c710b79e6ef6
Author: Jean Helou <jh...@codamens.fr>
AuthorDate: Thu Nov 19 10:53:46 2020 +0100

    JAMES-2124 updates contribution documentation
---
 docs/modules/community/pages/contributing.adoc | 30 +++++++++++++++-----------
 src/site/xdoc/contribute.xml                   | 14 +++++++++---
 2 files changed, 28 insertions(+), 16 deletions(-)

diff --git a/docs/modules/community/pages/contributing.adoc b/docs/modules/community/pages/contributing.adoc
index 7691e4e..6e6c6cb 100644
--- a/docs/modules/community/pages/contributing.adoc
+++ b/docs/modules/community/pages/contributing.adoc
@@ -110,7 +110,7 @@ https://www.oracle.com/java/technologies/javase/codeconventions-contents.html[Ja
 for fixing their own code.*
 
 . Your code should pass our https://github.com/apache/james-project/blob/master/checkstyle.xml[checkstyle] which runs
-upon mvn clean install.
+upon `mvn compile` and all phases which depend on `compile`.
 . Extra spaces between parentheses are not allowed:
 
 ```
@@ -134,18 +134,22 @@ GREATLY appreciated as this will help to improve the James project.
 
 ** Define your dependency versions in james-project pom.xml. This structurally ensures all projects get the same v
 ersion, and that there is no version clashes.
-** Don't use _org.apache.james_ groupId for your dependencies. Use _${james.groupId}_. If not, you break the policies
-for automatic sorting, as well as make it more ambiguous.
-** You should be ordering your dependencies. The sort order is:
-*** If the project is part of org.james.apache groupId? Internal dependencies goes first.
-*** Then we order by groupId
-*** Then we order by artifactId
-*** Then we order by type. test-jar goes last.
-
-You should also split multiple attributes each on a new line.
-
-You should ensure your POM files, as well as sections ordering follow the
-https://maven.apache.org/ref/3.0.3/maven-model/maven.html[Maven Model].
+** Don't use _org.apache.james_ groupId for internal dependencies. Use _${james.groupId}_. If not, you break the policies
+for automatic sorting, as well as make it more ambiguous. One exception is apache-mime4j-* artifacts which share the
+james groupId despite living in a different repository.
+** You should be ordering your dependencies. The sort order of tags and dependencies in the pom is automatically enforced at build time. By default the build
+will fail if violations are detected.
+
+The pom file ordering can be quickly checked using :
+```
+mvn validate
+```
+If you get an error and want the tool to fix it for you, you can use :
+```
+mvn validate -PsortPom
+```
+The `sortPom` profile can be used on all maven phases. Make sure to review the changes made by the tool, it is known to
+sometimes remove whitespaces which may not be desirable.
 
 === Code patches
 
diff --git a/src/site/xdoc/contribute.xml b/src/site/xdoc/contribute.xml
index 1cb9fc1..1af5ddb 100644
--- a/src/site/xdoc/contribute.xml
+++ b/src/site/xdoc/contribute.xml
@@ -253,13 +253,21 @@ Here is some more details about what my commit does, and the rationals of the ch
               <ol>Then we order by artifactId</ol>
               <ol>Then we order by type. <i>test-jar</i> goes last.</ol>
             </ul>
-            Hopefully, some tools are doing this sorting for you:</li>
+            Proper ordering is enforced by the project build. The build will fail in case violations are detected</li>
+          <li>POM files, as well as sections ordering should follows the <a href="http://maven.apache.org/ref/3.0.3/maven-model/maven.html">Maven Model</a></li>
         </ul>
+
+        You can quickly check the status of your pom files using:
+        <pre>
+          <code>mvn validate</code>
+        </pre>
+        You can ask the build to reorder pom files according to the rules using the <code>sortPom</code> profile:
         <pre>
-          <code>mvn com.github.ekryd.sortpom:sortpom-maven-plugin:sort -Dsort.keepBlankLines -Dsort.sortDependencies=groupId,artifactId -Dsort.nrOfIndentSpace=4 -Dsort.createBackupFile=false -Dsort.sortModules=true -Dsort.expandEmptyElements=false  -Dsort.predefinedSortOrder="recommended_2008_06"</code>
+          <code>mvn validate -PsortPom</code>
         </pre>
+        <p>Make sure you properly review all changes made by the automatic rewriting as XML processing tools are liberal
+        with whitespace.</p>
         <p>You should also split multiple attributes each on a new line.</p>
-        <p>You should ensure your POM files, as well as sections ordering follows the <a href="http://maven.apache.org/ref/3.0.3/maven-model/maven.html">Maven Model</a></p>
       </p>
       <p>
         <strong>Eclipse IDE</strong>


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


[james-project] 02/16: JAMES-3441 Document specialized instances setup

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 f98bcca7f4347ec3a6bbf2a8e4325c5da29d8a6d
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Nov 19 16:20:18 2020 +0700

    JAMES-3441 Document specialized instances setup
---
 .../assets/images/specialized-instances.png        | Bin 0 -> 45878 bytes
 docs/modules/servers/nav.adoc                      |   1 +
 .../pages/distributed/architecture/index.adoc      |   6 ++++
 .../architecture/specialized-instances.adoc        |  37 +++++++++++++++++++++
 4 files changed, 44 insertions(+)

diff --git a/docs/modules/servers/assets/images/specialized-instances.png b/docs/modules/servers/assets/images/specialized-instances.png
new file mode 100644
index 0000000..687cefe
Binary files /dev/null and b/docs/modules/servers/assets/images/specialized-instances.png differ
diff --git a/docs/modules/servers/nav.adoc b/docs/modules/servers/nav.adoc
index 20c7360..7002b26 100644
--- a/docs/modules/servers/nav.adoc
+++ b/docs/modules/servers/nav.adoc
@@ -14,6 +14,7 @@
 *** xref:distributed/objectives.adoc[]
 *** xref:distributed/architecture/index.adoc[]
 **** xref:distributed/architecture/consistency-model.adoc[]
+**** xref:distributed/architecture/specialized-instances.adoc[]
 *** xref:distributed/run.adoc[]
 *** xref:distributed/run-docker.adoc[]
 *** xref:distributed/configure/index.adoc[]
diff --git a/docs/modules/servers/pages/distributed/architecture/index.adoc b/docs/modules/servers/pages/distributed/architecture/index.adoc
index 01f4961..0bbbb34 100644
--- a/docs/modules/servers/pages/distributed/architecture/index.adoc
+++ b/docs/modules/servers/pages/distributed/architecture/index.adoc
@@ -34,6 +34,12 @@ The following protocols should be considered experimental
 * *JMAP* (draft specification as defined link:https://github.com/apache/james-project/tree/master/server/protocols/jmap-draft/doc[here])
 * *POP3*
 
+== Topology
+
+While it is perfectly possible to deploy homogeneous James instances, with the same configuration and thus the same
+protocols and the same responsibilities one might want to investigate in
+xref:distributed/architecture/specialized-instances.adoc['Specialized instances'].
+
 == Components
 
 This section presents the various components of the Distributed server, providing context about
diff --git a/docs/modules/servers/pages/distributed/architecture/specialized-instances.adoc b/docs/modules/servers/pages/distributed/architecture/specialized-instances.adoc
new file mode 100644
index 0000000..e13d75e
--- /dev/null
+++ b/docs/modules/servers/pages/distributed/architecture/specialized-instances.adoc
@@ -0,0 +1,37 @@
+= Distributed James Server &mdash; Specialized instances
+:navtitle: Specialized instances
+
+While it is perfectly possible to deploy homogeneous James instances, with the same configuration and thus the same
+protocols and the same responsibilities one might want to investigate in 'Specialized instances'.
+
+This deployment topology consists of Distributed James servers with heterogeneous configurations on top of shared
+data-bases. Groups of James servers will thus handle various protocols and have different responsibilities.
+
+This approach limits cascading failures across protocols and services. Think of *OutOfMemoryErrors*, Cassandra driver 
+queue overuse, CPUs starvation, etc.
+
+However, we can't speak of micro-services here: all James instances runs the same code, James is still a monolith, and
+databases need to be shared across instances.
+
+image::specialized-instances.png[Example of Specialized instances topology]
+
+We speak of:
+
+ - **Front-line servers** serves protocols. James enables to easily turn protocols on and off. Typically, each protocol would 
+ be isolated in its own group of James instances: james-imap, james-jmap, james-smtp, james-webadmin, etc... Refer to
+ protocols configuration files to learn more.
+ 
+ - **Back-office servers** handles other services like:
+    - Mail processing.
+    - Remote delivery.
+    - Event processing.
+    - Task execution.
+
+Front-line servers will likely not handle back office responsibilities (but be sure to have back-office servers that do!).
+  - xref:distributed/configure/mailetcontainer.adoc[Mail processing can be switched off].
+  - xref:distributed/configure/listeners.adoc[Mailbox event processing can be switched off].
+  - xref:distributed/configure/rabbitmq.adoc[Task execution can be switched off].
+  - Remote Delivery service is not started if the RemoteDelivery mailet is not positioned in mailetcontainer.xml.
+  
+Of course, the above instances can be collocated at will, to reach some intermediate deployments with fewer 
+instances to mitigate costs.
\ No newline at end of file


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


[james-project] 13/16: JAMES-3441 Avoid starting mail spooler when 'threads' = 0

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 73ea004fcc7eeea3cd93bf39d5e87359e17a9b69
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Nov 18 12:57:14 2020 +0700

    JAMES-3441 Avoid starting mail spooler when 'threads' = 0
    
    This allows configuring which James instances, within a distributed topology, should
    handle mail processing.
---
 .../james/mailetcontainer/impl/JamesMailSpooler.java  | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
index 23623db..6244e4c 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailSpooler.java
@@ -53,6 +53,8 @@ import org.apache.mailet.Mail;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Preconditions;
+
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 import reactor.core.scheduler.Schedulers;
@@ -227,12 +229,17 @@ public class JamesMailSpooler implements Disposable, Configurable, MailSpoolerMB
      */
     @PostConstruct
     public void init() {
-        LOGGER.info("init...");
-        LOGGER.info("Concurrency level is {}", concurrencyLevel);
-        MailQueue queue = queueFactory.createQueue(MailQueueFactory.SPOOL, MailQueueFactory.prefetchCount(concurrencyLevel));
-        runner = Optional.of(new Runner(metricFactory,
-            mailProcessor, errorRepository(), errorRepositoryURL, queue, concurrencyLevel));
-        LOGGER.info("Spooler started");
+        Preconditions.checkArgument(concurrencyLevel >= 0, "'threads' needs to be greater than or equal to zero");
+        if (concurrencyLevel > 0) {
+            LOGGER.info("init...");
+            LOGGER.info("Concurrency level is {}", concurrencyLevel);
+            MailQueue queue = queueFactory.createQueue(MailQueueFactory.SPOOL, MailQueueFactory.prefetchCount(concurrencyLevel));
+            runner = Optional.of(new Runner(metricFactory,
+                mailProcessor, errorRepository(), errorRepositoryURL, queue, concurrencyLevel));
+            LOGGER.info("Spooler started");
+        } else {
+            LOGGER.info("Spooler had been dis-activated. To enable is set 'threads' count to a value greater than zero");
+        }
     }
 
     private MailRepository errorRepository() {


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