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

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

commit 2f932709f055146b02085eae65e88026e586ab80
Author: Gautier DI FOLCO <[email protected]>
AuthorDate: Tue Mar 12 14:21:05 2019 +0100

    JAMES-2671 Add AwsS3 integration tests
---
 .../smtp/cassandra-rabbitmq-object-storage/pom.xml | 13 ---
 .../james/CassandraRabbitMQAwsS3JmapTestRule.java  | 97 ++++++++++++++++++++++
 .../CassandraRabbitMQLdapJmapJamesServerTest.java  | 13 ++-
 .../cucumber/CucumberAwsS3Singleton.java}          | 27 ++----
 .../rabbitmq-jmap-integration-testing/pom.xml      | 20 +----
 ...ilterTest.java => RabbitMQAwsS3FilterTest.java} |  9 +-
 ...va => RabbitMQAwsS3ForwardIntegrationTest.java} | 11 +--
 ...va => RabbitMQAwsS3GetMailboxesMethodTest.java} | 11 +--
 ... => RabbitMQAwsS3GetMessageListMethodTest.java} |  7 +-
 ...a => RabbitMQAwsS3GetVacationResponseTest.java} | 11 +--
 ...va => RabbitMQAwsS3JmapAuthenticationTest.java} | 11 +--
 ...est.java => RabbitMQAwsS3ProvisioningTest.java} |  7 +-
 ...est.java => RabbitMQAwsS3QuotaMailingTest.java} |  7 +-
 ...st.java => RabbitMQAwsS3SendMDNMethodTest.java} | 25 +++---
 ...va => RabbitMQAwsS3SetMailboxesMethodTest.java} |  9 +-
 ...ava => RabbitMQAwsS3SetMessagesMethodTest.java} |  9 +-
 ...a => RabbitMQAwsS3SetVacationResponseTest.java} | 11 +--
 ... => RabbitMQAwsS3SpamAssassinContractTest.java} |  7 +-
 ...a => RabbitMQAwsS3VacationIntegrationTest.java} | 11 +--
 ...RabbitMQAwsS3VacationRelayIntegrationTest.java} |  7 +-
 ...ilterTest.java => RabbitMQSwiftFilterTest.java} |  2 +-
 ...va => RabbitMQSwiftForwardIntegrationTest.java} |  2 +-
 ...va => RabbitMQSwiftGetMailboxesMethodTest.java} |  2 +-
 ... => RabbitMQSwiftGetMessageListMethodTest.java} |  2 +-
 ...a => RabbitMQSwiftGetVacationResponseTest.java} |  4 +-
 ...va => RabbitMQSwiftJmapAuthenticationTest.java} |  4 +-
 ...est.java => RabbitMQSwiftProvisioningTest.java} |  2 +-
 ...est.java => RabbitMQSwiftQuotaMailingTest.java} |  2 +-
 ...st.java => RabbitMQSwiftSendMDNMethodTest.java} |  2 +-
 ...va => RabbitMQSwiftSetMailboxesMethodTest.java} |  2 +-
 ...ava => RabbitMQSwiftSetMessagesMethodTest.java} |  2 +-
 ...a => RabbitMQSwiftSetVacationResponseTest.java} |  2 +-
 ... => RabbitMQSwiftSpamAssassinContractTest.java} |  2 +-
 ...a => RabbitMQSwiftVacationIntegrationTest.java} |  2 +-
 ...RabbitMQSwiftVacationRelayIntegrationTest.java} |  2 +-
 .../CucumberAwsS3Singleton.java}                   | 27 ++----
 ...tMQStepdefs.java => RabbitMQAwsS3Stepdefs.java} | 43 +++++-----
 ...tMQStepdefs.java => RabbitMQSwiftStepdefs.java} |  4 +-
 38 files changed, 250 insertions(+), 181 deletions(-)

diff --git a/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml 
b/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml
index 0b7d7ef..91a4e23 100644
--- a/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml
+++ b/mpt/impl/smtp/cassandra-rabbitmq-object-storage/pom.xml
@@ -110,17 +110,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <reuseForks>true</reuseForks>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
 </project>
\ No newline at end of file
diff --git 
a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQAwsS3JmapTestRule.java
 
b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQAwsS3JmapTestRule.java
new file mode 100644
index 0000000..49220e4
--- /dev/null
+++ 
b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQAwsS3JmapTestRule.java
@@ -0,0 +1,97 @@
+/****************************************************************
+ * 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 java.io.IOException;
+
+import org.apache.james.backend.rabbitmq.DockerRabbitMQSingleton;
+import org.apache.james.mailbox.extractor.TextExtractor;
+import org.apache.james.mailbox.store.search.PDFTextExtractor;
+import org.apache.james.modules.TestAwsS3BlobStoreModule;
+import org.apache.james.modules.TestESMetricReporterModule;
+import org.apache.james.modules.TestJMAPServerModule;
+import org.apache.james.modules.TestRabbitMQModule;
+import org.apache.james.server.core.configuration.Configuration;
+import org.junit.rules.TemporaryFolder;
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+import com.google.inject.Module;
+
+public class CassandraRabbitMQAwsS3JmapTestRule implements TestRule {
+
+    private static final int LIMIT_TO_10_MESSAGES = 10;
+    public static final int TWO_SECONDS = 2000;
+    private final TemporaryFolder temporaryFolder;
+
+    public static CassandraRabbitMQAwsS3JmapTestRule defaultTestRule() {
+        return new CassandraRabbitMQAwsS3JmapTestRule(new 
EmbeddedElasticSearchRule());
+    }
+
+    private final GuiceModuleTestRule guiceModuleTestRule;
+
+    public CassandraRabbitMQAwsS3JmapTestRule(GuiceModuleTestRule... 
guiceModuleTestRule) {
+        TempFilesystemTestRule tempFilesystemTestRule = new 
TempFilesystemTestRule();
+        this.temporaryFolder = tempFilesystemTestRule.getTemporaryFolder();
+        this.guiceModuleTestRule =
+            AggregateGuiceModuleTestRule
+                .of(guiceModuleTestRule)
+                .aggregate(tempFilesystemTestRule);
+    }
+
+    public GuiceJamesServer jmapServer(Module... additionals) throws 
IOException {
+        Configuration configuration = Configuration.builder()
+            .workingDirectory(temporaryFolder.newFolder())
+            .configurationFromClasspath()
+            .build();
+
+        return GuiceJamesServer.forConfiguration(configuration)
+            .combineWith(CassandraRabbitMQJamesServerMain.MODULES)
+            .overrideWith(binder -> 
binder.bind(TextExtractor.class).to(PDFTextExtractor.class))
+            .overrideWith(new 
TestRabbitMQModule(DockerRabbitMQSingleton.SINGLETON))
+            .overrideWith(new TestAwsS3BlobStoreModule())
+            .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES))
+            .overrideWith(new TestESMetricReporterModule())
+            .overrideWith(guiceModuleTestRule.getModule())
+            .overrideWith((binder -> 
binder.bind(CleanupTasksPerformer.class).asEagerSingleton()))
+            .overrideWith(additionals);
+    }
+
+    @Override
+    public Statement apply(Statement base, Description description) {
+        return guiceModuleTestRule.apply(base, description);
+    }
+
+    public void await() {
+        awaitProcessingStart();
+        guiceModuleTestRule.await();
+    }
+
+    private void awaitProcessingStart() {
+        // As the RabbitMQEventBus is asynchronous we have otherwise no 
guaranties that the processing to be awaiting for did start
+        try {
+            Thread.sleep(TWO_SECONDS);
+        } catch (InterruptedException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}
+
diff --git 
a/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
 
b/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
index 41f0438..1644816 100644
--- 
a/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
+++ 
b/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
@@ -27,6 +27,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import java.io.IOException;
 
 import org.apache.commons.net.imap.IMAPClient;
+import org.apache.james.modules.AwsS3BlobStoreExtension;
 import org.apache.james.modules.RabbitMQExtension;
 import org.apache.james.modules.SwiftBlobStoreExtension;
 import org.apache.james.modules.TestJMAPServerModule;
@@ -66,7 +67,17 @@ class CassandraRabbitMQLdapJmapJamesServerTest {
 
     @Nested
     @TestInstance(TestInstance.Lifecycle.PER_CLASS)
-    class WithoutSwift implements ContractSuite {
+    class WithAwsS3 implements ContractSuite {
+        @RegisterExtension
+        JamesServerExtension testExtension = baseJamesServerExtensionBuilder()
+                .extension(new AwsS3BlobStoreExtension())
+                .server(configuration -> buildGuiceServer(configuration, 
BlobStoreChoosingConfiguration.objectStorage()))
+                .build();
+    }
+
+    @Nested
+    @TestInstance(TestInstance.Lifecycle.PER_CLASS)
+    class WithoutSwiftOrAwsS3 implements ContractSuite {
         @RegisterExtension
         JamesServerExtension testExtension = baseJamesServerExtensionBuilder()
             .server(configuration -> buildGuiceServer(configuration, 
BlobStoreChoosingConfiguration.cassandra()))
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
 
b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CucumberAwsS3Singleton.java
similarity index 61%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
copy to 
server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CucumberAwsS3Singleton.java
index 93753a9..a6b64ba 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
+++ 
b/server/protocols/jmap-integration-testing/cassandra-jmap-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CucumberAwsS3Singleton.java
@@ -16,27 +16,14 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
+package org.apache.james.jmap.cassandra.cucumber;
 
-package org.apache.james.jmap.rabbitmq;
+import org.apache.james.modules.objectstorage.PayloadCodecFactory;
+import org.apache.james.modules.objectstorage.aws.s3.DockerAwsS3TestRule;
 
-import java.io.IOException;
+public class CucumberAwsS3Singleton {
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
-import org.apache.james.DockerCassandraRule;
-import org.apache.james.GuiceJamesServer;
-import org.apache.james.jmap.methods.integration.QuotaMailingTest;
-import org.junit.ClassRule;
-import org.junit.Rule;
-
-public class RabbitMQQuotaMailingTest extends QuotaMailingTest {
-    @ClassRule
-    public static DockerCassandraRule cassandra = new DockerCassandraRule();
-
-    @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
-
-    @Override
-    protected GuiceJamesServer createJmapServer() throws IOException {
-        return rule.jmapServer(cassandra.getModule());
-    }
+    public static DockerAwsS3TestRule swiftServer = new DockerAwsS3TestRule();
+    public static DockerAwsS3TestRule encryptedAwsS3Server = new 
DockerAwsS3TestRule(PayloadCodecFactory.AES256);
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/pom.xml
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/pom.xml
index a6c4482..b8d231b 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/pom.xml
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/pom.xml
@@ -12,7 +12,7 @@
     <artifactId>rabbitmq-jmap-integration-testing</artifactId>
     <packaging>jar</packaging>
 
-    <name>Apache James :: Server :: JMAP :: RabbitMQ + Swift + Cassandra 
Integration testing</name>
+    <name>Apache James :: Server :: JMAP :: RabbitMQ + Object Store + 
Cassandra Integration testing</name>
 
     <dependencies>
         <dependency>
@@ -169,20 +169,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <argLine>-Xms512m -Xmx1024m</argLine>
-                    <reuseForks>true</reuseForks>
-                    <!-- Fail tests longer than 2 hours, prevent form random 
locking tests -->
-                    
<forkedProcessTimeoutInSeconds>7200</forkedProcessTimeoutInSeconds>
-                    <groups 
combine.self="override">org.apache.james.jmap.categories.BasicFeature,org.apache.james.jmap.categories.EnableCucumber</groups>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
\ No newline at end of file
+</project>
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQFilterTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3FilterTest.java
similarity index 89%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQFilterTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3FilterTest.java
index 37fa065..70bfd1c 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQFilterTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3FilterTest.java
@@ -21,7 +21,7 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.methods.integration.FilterTest;
@@ -30,13 +30,13 @@ import org.apache.james.mailbox.model.MailboxId;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQFilterTest extends FilterTest {
+public class RabbitMQAwsS3FilterTest extends FilterTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
 
     @Override
     protected GuiceJamesServer createJmapServer() throws IOException {
@@ -47,4 +47,5 @@ public class RabbitMQFilterTest extends FilterTest {
     protected MailboxId randomMailboxId() {
         return CassandraId.timeBased();
     }
-}
\ No newline at end of file
+}
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQForwardIntegrationTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3ForwardIntegrationTest.java
similarity index 88%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQForwardIntegrationTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3ForwardIntegrationTest.java
index 8f5ab38..113111b 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQForwardIntegrationTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3ForwardIntegrationTest.java
@@ -21,7 +21,7 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.methods.integration.ForwardIntegrationTest;
@@ -29,19 +29,20 @@ import org.apache.james.webadmin.WebAdminConfiguration;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQForwardIntegrationTest extends ForwardIntegrationTest {
+public class RabbitMQAwsS3ForwardIntegrationTest extends 
ForwardIntegrationTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
-    
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
+
     @Override
     protected GuiceJamesServer createJmapServer() throws IOException {
         return rule.jmapServer(cassandra.getModule(),
             binder -> binder.bind(WebAdminConfiguration.class)
                 .toInstance(WebAdminConfiguration.TEST_CONFIGURATION));
     }
-    
+
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMailboxesMethodTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetMailboxesMethodTest.java
similarity index 87%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMailboxesMethodTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetMailboxesMethodTest.java
index 55e90e2..6be472e 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMailboxesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetMailboxesMethodTest.java
@@ -21,24 +21,25 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.methods.integration.GetMailboxesMethodTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQGetMailboxesMethodTest extends GetMailboxesMethodTest {
+public class RabbitMQAwsS3GetMailboxesMethodTest extends 
GetMailboxesMethodTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
-    
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
+
     @Override
     protected GuiceJamesServer createJmapServer() throws IOException {
         return rule.jmapServer(cassandra.getModule());
     }
-    
+
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMessageListMethodTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetMessageListMethodTest.java
similarity index 88%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMessageListMethodTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetMessageListMethodTest.java
index 80a62b3..a01235a 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMessageListMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetMessageListMethodTest.java
@@ -21,7 +21,7 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.methods.integration.GetMessageListMethodTest;
@@ -29,13 +29,13 @@ import org.apache.james.modules.TestJMAPServerModule;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQGetMessageListMethodTest extends GetMessageListMethodTest 
{
+public class RabbitMQAwsS3GetMessageListMethodTest extends 
GetMessageListMethodTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
 
     @Override
     protected GuiceJamesServer createJmapServer() throws IOException {
@@ -48,3 +48,4 @@ public class RabbitMQGetMessageListMethodTest extends 
GetMessageListMethodTest {
         rule.await();
     }
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetVacationResponseTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetVacationResponseTest.java
similarity index 83%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetVacationResponseTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetVacationResponseTest.java
index 17ba7e3..8bb27c5 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetVacationResponseTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3GetVacationResponseTest.java
@@ -21,7 +21,7 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.methods.integration.GetVacationResponseTest;
@@ -29,18 +29,18 @@ import org.apache.james.util.date.ZonedDateTimeProvider;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQGetVacationResponseTest extends GetVacationResponseTest {
+public class RabbitMQAwsS3GetVacationResponseTest extends 
GetVacationResponseTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
-    
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
+
     @Override
     protected GuiceJamesServer createJmapServer(ZonedDateTimeProvider 
zonedDateTimeProvider) throws IOException {
         return rule.jmapServer(cassandra.getModule())
-                .overrideWith(binder -> 
binder.bind(ZonedDateTimeProvider.class).toInstance(zonedDateTimeProvider));
+            .overrideWith(binder -> 
binder.bind(ZonedDateTimeProvider.class).toInstance(zonedDateTimeProvider));
     }
 
     @Override
@@ -48,3 +48,4 @@ public class RabbitMQGetVacationResponseTest extends 
GetVacationResponseTest {
         rule.await();
     }
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQJmapAuthenticationTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3JmapAuthenticationTest.java
similarity index 83%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQJmapAuthenticationTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3JmapAuthenticationTest.java
index fd596c6..79ff66c 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQJmapAuthenticationTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3JmapAuthenticationTest.java
@@ -20,7 +20,7 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.FixedDateZonedDateTimeProvider;
@@ -29,18 +29,19 @@ import org.apache.james.util.date.ZonedDateTimeProvider;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQJmapAuthenticationTest extends JMAPAuthenticationTest {
+public class RabbitMQAwsS3JmapAuthenticationTest extends 
JMAPAuthenticationTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
-    
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
+
     @Override
     protected GuiceJamesServer createJmapServer(FixedDateZonedDateTimeProvider 
zonedDateTimeProvider) throws IOException {
         return rule.jmapServer(cassandra.getModule())
-                .overrideWith(binder -> 
binder.bind(ZonedDateTimeProvider.class).toInstance(zonedDateTimeProvider));
+            .overrideWith(binder -> 
binder.bind(ZonedDateTimeProvider.class).toInstance(zonedDateTimeProvider));
     }
 
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQProvisioningTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3ProvisioningTest.java
similarity index 87%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQProvisioningTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3ProvisioningTest.java
index b6bb874..beff06e 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQProvisioningTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3ProvisioningTest.java
@@ -21,20 +21,20 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.ProvisioningTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQProvisioningTest extends ProvisioningTest {
+public class RabbitMQAwsS3ProvisioningTest extends ProvisioningTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
 
     @Override
     protected GuiceJamesServer createJmapServer() throws IOException {
@@ -42,3 +42,4 @@ public class RabbitMQProvisioningTest extends 
ProvisioningTest {
     }
 
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3QuotaMailingTest.java
similarity index 87%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3QuotaMailingTest.java
index 93753a9..ca4be16 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3QuotaMailingTest.java
@@ -21,22 +21,23 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.methods.integration.QuotaMailingTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQQuotaMailingTest extends QuotaMailingTest {
+public class RabbitMQAwsS3QuotaMailingTest extends QuotaMailingTest {
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
 
     @Override
     protected GuiceJamesServer createJmapServer() throws IOException {
         return rule.jmapServer(cassandra.getModule());
     }
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSendMDNMethodTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java
similarity index 76%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSendMDNMethodTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java
index a4351cd..17de893 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSendMDNMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java
@@ -30,30 +30,31 @@ import 
org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.store.search.PDFTextExtractor;
+import org.apache.james.modules.AwsS3BlobStoreExtension;
 import org.apache.james.modules.RabbitMQExtension;
-import org.apache.james.modules.SwiftBlobStoreExtension;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
-public class RabbitMQSendMDNMethodTest extends SendMDNMethodTest {
+public class RabbitMQAwsS3SendMDNMethodTest extends SendMDNMethodTest {
 
     private static final long LIMIT_TO_10_MESSAGES = 10;
 
     @RegisterExtension
     JamesServerExtension testExtension = new JamesServerBuilder()
-        .extension(new EmbeddedElasticSearchExtension())
-        .extension(new CassandraExtension())
-        .extension(new SwiftBlobStoreExtension())
-        .extension(new RabbitMQExtension())
-        .server(configuration -> 
GuiceJamesServer.forConfiguration(configuration)
-            .combineWith(CassandraRabbitMQJamesServerMain.MODULES)
-            .overrideWith(binder -> 
binder.bind(TextExtractor.class).to(PDFTextExtractor.class))
-            .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES)))
-        .build();
+            .extension(new EmbeddedElasticSearchExtension())
+            .extension(new CassandraExtension())
+            .extension(new AwsS3BlobStoreExtension())
+            .extension(new RabbitMQExtension())
+            .server(configuration -> 
GuiceJamesServer.forConfiguration(configuration)
+                .combineWith(CassandraRabbitMQJamesServerMain.MODULES)
+                .overrideWith(binder -> 
binder.bind(TextExtractor.class).to(PDFTextExtractor.class))
+                .overrideWith(new TestJMAPServerModule(LIMIT_TO_10_MESSAGES)))
+            .build();
 
     @Override
     protected MessageId randomMessageId() {
         return new CassandraMessageId.Factory().generate();
     }
-    
+
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMailboxesMethodTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetMailboxesMethodTest.java
similarity index 87%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMailboxesMethodTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetMailboxesMethodTest.java
index e21a651..871d4e2 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMailboxesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetMailboxesMethodTest.java
@@ -21,21 +21,21 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.methods.integration.SetMailboxesMethodTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQSetMailboxesMethodTest extends SetMailboxesMethodTest {
+public class RabbitMQAwsS3SetMailboxesMethodTest extends 
SetMailboxesMethodTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
-    
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
+
     @Override
     protected GuiceJamesServer createJmapServer() throws IOException {
         return rule.jmapServer(cassandra.getModule());
@@ -47,3 +47,4 @@ public class RabbitMQSetMailboxesMethodTest extends 
SetMailboxesMethodTest {
     }
 
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMessagesMethodTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetMessagesMethodTest.java
similarity index 90%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMessagesMethodTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetMessagesMethodTest.java
index 3a7eb0e..a10c413 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMessagesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetMessagesMethodTest.java
@@ -21,7 +21,7 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.methods.integration.SetMessagesMethodTest;
@@ -32,13 +32,13 @@ import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
-public class RabbitMQSetMessagesMethodTest extends SetMessagesMethodTest {
+public class RabbitMQAwsS3SetMessagesMethodTest extends SetMessagesMethodTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
 
     @Override
     protected GuiceJamesServer createJmapServer() throws IOException {
@@ -49,7 +49,7 @@ public class RabbitMQSetMessagesMethodTest extends 
SetMessagesMethodTest {
     protected void await() {
         rule.await();
     }
-    
+
     @Override
     protected MessageId randomMessageId() {
         return new CassandraMessageId.Factory().generate();
@@ -63,3 +63,4 @@ public class RabbitMQSetMessagesMethodTest extends 
SetMessagesMethodTest {
 
     }
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetVacationResponseTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetVacationResponseTest.java
similarity index 87%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetVacationResponseTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetVacationResponseTest.java
index bbc6724..a808cd3 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetVacationResponseTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SetVacationResponseTest.java
@@ -21,21 +21,21 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.methods.integration.SetVacationResponseTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQSetVacationResponseTest extends SetVacationResponseTest {
+public class RabbitMQAwsS3SetVacationResponseTest extends 
SetVacationResponseTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
-    
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
+
     @Override
     protected GuiceJamesServer createJmapServer() throws IOException {
         return rule.jmapServer(cassandra.getModule());
@@ -45,5 +45,6 @@ public class RabbitMQSetVacationResponseTest extends 
SetVacationResponseTest {
     protected void await() {
         rule.await();
     }
-    
+
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSpamAssassinContractTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SpamAssassinContractTest.java
similarity index 93%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSpamAssassinContractTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SpamAssassinContractTest.java
index a72a6a9..bf05180 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSpamAssassinContractTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SpamAssassinContractTest.java
@@ -28,12 +28,12 @@ import 
org.apache.james.jmap.methods.integration.SpamAssassinContract;
 import org.apache.james.jmap.methods.integration.SpamAssassinModuleExtension;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.store.search.PDFTextExtractor;
+import org.apache.james.modules.AwsS3BlobStoreExtension;
 import org.apache.james.modules.RabbitMQExtension;
-import org.apache.james.modules.SwiftBlobStoreExtension;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
-class RabbitMQSpamAssassinContractTest implements SpamAssassinContract {
+class RabbitMQAwsS3SpamAssassinContractTest implements SpamAssassinContract {
 
     private static final int LIMIT_TO_20_MESSAGES = 20;
 
@@ -43,7 +43,7 @@ class RabbitMQSpamAssassinContractTest implements 
SpamAssassinContract {
         .extension(new EmbeddedElasticSearchExtension())
         .extension(new CassandraExtension())
         .extension(new RabbitMQExtension())
-        .extension(new SwiftBlobStoreExtension())
+        .extension(new AwsS3BlobStoreExtension())
         .extension(spamAssassinExtension)
         .server(configuration -> 
GuiceJamesServer.forConfiguration(configuration)
             .combineWith(CassandraRabbitMQJamesServerMain.MODULES)
@@ -51,3 +51,4 @@ class RabbitMQSpamAssassinContractTest implements 
SpamAssassinContract {
             .overrideWith(new TestJMAPServerModule(LIMIT_TO_20_MESSAGES)))
         .build();
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationIntegrationTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3VacationIntegrationTest.java
similarity index 87%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationIntegrationTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3VacationIntegrationTest.java
index 3a18190..8c42750 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationIntegrationTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3VacationIntegrationTest.java
@@ -21,21 +21,21 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.jmap.VacationIntegrationTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQVacationIntegrationTest extends VacationIntegrationTest {
+public class RabbitMQAwsS3VacationIntegrationTest extends 
VacationIntegrationTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
-    
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
+
     @Override
     protected GuiceJamesServer createJmapServer() throws IOException {
         return rule.jmapServer(cassandra.getModule());
@@ -45,5 +45,6 @@ public class RabbitMQVacationIntegrationTest extends 
VacationIntegrationTest {
     protected void await() {
         rule.await();
     }
-    
+
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationRelayIntegrationTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3VacationRelayIntegrationTest.java
similarity index 89%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationRelayIntegrationTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3VacationRelayIntegrationTest.java
index a620860..661b23c 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationRelayIntegrationTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3VacationRelayIntegrationTest.java
@@ -21,7 +21,7 @@ package org.apache.james.jmap.rabbitmq;
 
 import java.io.IOException;
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
+import org.apache.james.CassandraRabbitMQAwsS3JmapTestRule;
 import org.apache.james.DockerCassandraRule;
 import org.apache.james.GuiceJamesServer;
 import org.apache.james.dnsservice.api.DNSService;
@@ -30,7 +30,7 @@ import org.apache.james.jmap.VacationRelayIntegrationTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQVacationRelayIntegrationTest extends 
VacationRelayIntegrationTest {
+public class RabbitMQAwsS3VacationRelayIntegrationTest extends 
VacationRelayIntegrationTest {
 
     private final InMemoryDNSService inMemoryDNSService = new 
InMemoryDNSService();
 
@@ -38,7 +38,7 @@ public class RabbitMQVacationRelayIntegrationTest extends 
VacationRelayIntegrati
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
     @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
+    public CassandraRabbitMQAwsS3JmapTestRule rule = 
CassandraRabbitMQAwsS3JmapTestRule.defaultTestRule();
 
     @Override
     protected GuiceJamesServer getJmapServer() throws IOException {
@@ -58,3 +58,4 @@ public class RabbitMQVacationRelayIntegrationTest extends 
VacationRelayIntegrati
     }
 
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQFilterTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftFilterTest.java
similarity index 97%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQFilterTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftFilterTest.java
index 37fa065..18bedaf 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQFilterTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftFilterTest.java
@@ -30,7 +30,7 @@ import org.apache.james.mailbox.model.MailboxId;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQFilterTest extends FilterTest {
+public class RabbitMQSwiftFilterTest extends FilterTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQForwardIntegrationTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftForwardIntegrationTest.java
similarity index 96%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQForwardIntegrationTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftForwardIntegrationTest.java
index 8f5ab38..1394824 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQForwardIntegrationTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftForwardIntegrationTest.java
@@ -29,7 +29,7 @@ import org.apache.james.webadmin.WebAdminConfiguration;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQForwardIntegrationTest extends ForwardIntegrationTest {
+public class RabbitMQSwiftForwardIntegrationTest extends 
ForwardIntegrationTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMailboxesMethodTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftGetMailboxesMethodTest.java
similarity index 95%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMailboxesMethodTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftGetMailboxesMethodTest.java
index 55e90e2..865de0e 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMailboxesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftGetMailboxesMethodTest.java
@@ -28,7 +28,7 @@ import 
org.apache.james.jmap.methods.integration.GetMailboxesMethodTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQGetMailboxesMethodTest extends GetMailboxesMethodTest {
+public class RabbitMQSwiftGetMailboxesMethodTest extends 
GetMailboxesMethodTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMessageListMethodTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftGetMessageListMethodTest.java
similarity index 96%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMessageListMethodTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftGetMessageListMethodTest.java
index 80a62b3..e43ea26 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetMessageListMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftGetMessageListMethodTest.java
@@ -29,7 +29,7 @@ import org.apache.james.modules.TestJMAPServerModule;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQGetMessageListMethodTest extends GetMessageListMethodTest 
{
+public class RabbitMQSwiftGetMessageListMethodTest extends 
GetMessageListMethodTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetVacationResponseTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftGetVacationResponseTest.java
similarity index 91%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetVacationResponseTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftGetVacationResponseTest.java
index 17ba7e3..1605e8d 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQGetVacationResponseTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftGetVacationResponseTest.java
@@ -29,7 +29,7 @@ import org.apache.james.util.date.ZonedDateTimeProvider;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQGetVacationResponseTest extends GetVacationResponseTest {
+public class RabbitMQSwiftGetVacationResponseTest extends 
GetVacationResponseTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
@@ -40,7 +40,7 @@ public class RabbitMQGetVacationResponseTest extends 
GetVacationResponseTest {
     @Override
     protected GuiceJamesServer createJmapServer(ZonedDateTimeProvider 
zonedDateTimeProvider) throws IOException {
         return rule.jmapServer(cassandra.getModule())
-                .overrideWith(binder -> 
binder.bind(ZonedDateTimeProvider.class).toInstance(zonedDateTimeProvider));
+            .overrideWith(binder -> 
binder.bind(ZonedDateTimeProvider.class).toInstance(zonedDateTimeProvider));
     }
 
     @Override
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQJmapAuthenticationTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftJmapAuthenticationTest.java
similarity index 91%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQJmapAuthenticationTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftJmapAuthenticationTest.java
index fd596c6..ac77b8f 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQJmapAuthenticationTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftJmapAuthenticationTest.java
@@ -29,7 +29,7 @@ import org.apache.james.util.date.ZonedDateTimeProvider;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQJmapAuthenticationTest extends JMAPAuthenticationTest {
+public class RabbitMQSwiftJmapAuthenticationTest extends 
JMAPAuthenticationTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
@@ -40,7 +40,7 @@ public class RabbitMQJmapAuthenticationTest extends 
JMAPAuthenticationTest {
     @Override
     protected GuiceJamesServer createJmapServer(FixedDateZonedDateTimeProvider 
zonedDateTimeProvider) throws IOException {
         return rule.jmapServer(cassandra.getModule())
-                .overrideWith(binder -> 
binder.bind(ZonedDateTimeProvider.class).toInstance(zonedDateTimeProvider));
+            .overrideWith(binder -> 
binder.bind(ZonedDateTimeProvider.class).toInstance(zonedDateTimeProvider));
     }
 
 }
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQProvisioningTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftProvisioningTest.java
similarity index 96%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQProvisioningTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftProvisioningTest.java
index b6bb874..8fb5797 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQProvisioningTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftProvisioningTest.java
@@ -28,7 +28,7 @@ import org.apache.james.jmap.ProvisioningTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQProvisioningTest extends ProvisioningTest {
+public class RabbitMQSwiftProvisioningTest extends ProvisioningTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftQuotaMailingTest.java
similarity index 96%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftQuotaMailingTest.java
index 93753a9..bc3c8d7 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftQuotaMailingTest.java
@@ -28,7 +28,7 @@ import 
org.apache.james.jmap.methods.integration.QuotaMailingTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQQuotaMailingTest extends QuotaMailingTest {
+public class RabbitMQSwiftQuotaMailingTest extends QuotaMailingTest {
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
 
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSendMDNMethodTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSendMDNMethodTest.java
similarity index 97%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSendMDNMethodTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSendMDNMethodTest.java
index a4351cd..3483d3e 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSendMDNMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSendMDNMethodTest.java
@@ -35,7 +35,7 @@ import org.apache.james.modules.SwiftBlobStoreExtension;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
-public class RabbitMQSendMDNMethodTest extends SendMDNMethodTest {
+public class RabbitMQSwiftSendMDNMethodTest extends SendMDNMethodTest {
 
     private static final long LIMIT_TO_10_MESSAGES = 10;
 
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMailboxesMethodTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSetMailboxesMethodTest.java
similarity index 96%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMailboxesMethodTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSetMailboxesMethodTest.java
index e21a651..29993bd 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMailboxesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSetMailboxesMethodTest.java
@@ -28,7 +28,7 @@ import 
org.apache.james.jmap.methods.integration.SetMailboxesMethodTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQSetMailboxesMethodTest extends SetMailboxesMethodTest {
+public class RabbitMQSwiftSetMailboxesMethodTest extends 
SetMailboxesMethodTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMessagesMethodTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSetMessagesMethodTest.java
similarity index 96%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMessagesMethodTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSetMessagesMethodTest.java
index 3a7eb0e..0e38006 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetMessagesMethodTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSetMessagesMethodTest.java
@@ -32,7 +32,7 @@ import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
-public class RabbitMQSetMessagesMethodTest extends SetMessagesMethodTest {
+public class RabbitMQSwiftSetMessagesMethodTest extends SetMessagesMethodTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetVacationResponseTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSetVacationResponseTest.java
similarity index 95%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetVacationResponseTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSetVacationResponseTest.java
index bbc6724..b7d44a2 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSetVacationResponseTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSetVacationResponseTest.java
@@ -28,7 +28,7 @@ import 
org.apache.james.jmap.methods.integration.SetVacationResponseTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQSetVacationResponseTest extends SetVacationResponseTest {
+public class RabbitMQSwiftSetVacationResponseTest extends 
SetVacationResponseTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSpamAssassinContractTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSpamAssassinContractTest.java
similarity index 97%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSpamAssassinContractTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSpamAssassinContractTest.java
index a72a6a9..c1bc8be 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSpamAssassinContractTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftSpamAssassinContractTest.java
@@ -33,7 +33,7 @@ import org.apache.james.modules.SwiftBlobStoreExtension;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
-class RabbitMQSpamAssassinContractTest implements SpamAssassinContract {
+class RabbitMQSwiftSpamAssassinContractTest implements SpamAssassinContract {
 
     private static final int LIMIT_TO_20_MESSAGES = 20;
 
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationIntegrationTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftVacationIntegrationTest.java
similarity index 95%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationIntegrationTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftVacationIntegrationTest.java
index 3a18190..505beb0 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationIntegrationTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftVacationIntegrationTest.java
@@ -28,7 +28,7 @@ import org.apache.james.jmap.VacationIntegrationTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQVacationIntegrationTest extends VacationIntegrationTest {
+public class RabbitMQSwiftVacationIntegrationTest extends 
VacationIntegrationTest {
 
     @ClassRule
     public static DockerCassandraRule cassandra = new DockerCassandraRule();
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationRelayIntegrationTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftVacationRelayIntegrationTest.java
similarity index 96%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationRelayIntegrationTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftVacationRelayIntegrationTest.java
index a620860..def1a31 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQVacationRelayIntegrationTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQSwiftVacationRelayIntegrationTest.java
@@ -30,7 +30,7 @@ import org.apache.james.jmap.VacationRelayIntegrationTest;
 import org.junit.ClassRule;
 import org.junit.Rule;
 
-public class RabbitMQVacationRelayIntegrationTest extends 
VacationRelayIntegrationTest {
+public class RabbitMQSwiftVacationRelayIntegrationTest extends 
VacationRelayIntegrationTest {
 
     private final InMemoryDNSService inMemoryDNSService = new 
InMemoryDNSService();
 
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/CucumberAwsS3Singleton.java
similarity index 61%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/CucumberAwsS3Singleton.java
index 93753a9..6f06cc1 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQQuotaMailingTest.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/CucumberAwsS3Singleton.java
@@ -16,27 +16,14 @@
  * specific language governing permissions and limitations      *
  * under the License.                                           *
  ****************************************************************/
+package org.apache.james.jmap.rabbitmq.cucumber;
 
-package org.apache.james.jmap.rabbitmq;
+import org.apache.james.modules.objectstorage.PayloadCodecFactory;
+import org.apache.james.modules.objectstorage.aws.s3.DockerAwsS3TestRule;
 
-import java.io.IOException;
+public class CucumberAwsS3Singleton {
 
-import org.apache.james.CassandraRabbitMQSwiftJmapTestRule;
-import org.apache.james.DockerCassandraRule;
-import org.apache.james.GuiceJamesServer;
-import org.apache.james.jmap.methods.integration.QuotaMailingTest;
-import org.junit.ClassRule;
-import org.junit.Rule;
-
-public class RabbitMQQuotaMailingTest extends QuotaMailingTest {
-    @ClassRule
-    public static DockerCassandraRule cassandra = new DockerCassandraRule();
-
-    @Rule
-    public CassandraRabbitMQSwiftJmapTestRule rule = 
CassandraRabbitMQSwiftJmapTestRule.defaultTestRule();
-
-    @Override
-    protected GuiceJamesServer createJmapServer() throws IOException {
-        return rule.jmapServer(cassandra.getModule());
-    }
+    public static DockerAwsS3TestRule swiftServer = new DockerAwsS3TestRule();
+    public static DockerAwsS3TestRule encryptedAwsS3Server = new 
DockerAwsS3TestRule(PayloadCodecFactory.AES256);
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQAwsS3Stepdefs.java
similarity index 74%
copy from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java
copy to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQAwsS3Stepdefs.java
index b97c96e..64c2f91 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQAwsS3Stepdefs.java
@@ -40,8 +40,8 @@ import org.apache.james.modules.TestESMetricReporterModule;
 import org.apache.james.modules.TestElasticSearchModule;
 import org.apache.james.modules.TestJMAPServerModule;
 import org.apache.james.modules.TestRabbitMQModule;
-import org.apache.james.modules.TestSwiftBlobStoreModule;
-import org.apache.james.modules.objectstorage.swift.DockerSwiftTestRule;
+import org.apache.james.modules.TestAwsS3BlobStoreModule;
+import org.apache.james.modules.objectstorage.aws.s3.DockerAwsS3TestRule;
 import org.apache.james.server.CassandraTruncateTableTask;
 import org.apache.james.server.core.configuration.Configuration;
 import org.junit.rules.TemporaryFolder;
@@ -54,7 +54,7 @@ import cucumber.api.java.Before;
 import cucumber.runtime.java.guice.ScenarioScoped;
 
 @ScenarioScoped
-public class RabbitMQStepdefs {
+public class RabbitMQAwsS3Stepdefs {
 
     private final MainStepdefs mainStepdefs;
     private final ImapStepdefs imapStepdefs;
@@ -62,10 +62,10 @@ public class RabbitMQStepdefs {
     private EmbeddedElasticSearch embeddedElasticSearch = new 
EmbeddedElasticSearch(temporaryFolder);
     private DockerCassandraRule cassandraServer = 
CucumberCassandraSingleton.cassandraServer;
     private DockerRabbitMQRule rabbitMQServer = 
CucumberRabbitMQSingleton.rabbitMQServer;
-    private DockerSwiftTestRule swiftServer = 
CucumberSwiftSingleton.swiftServer;
+    private DockerAwsS3TestRule swiftServer = 
CucumberAwsS3Singleton.swiftServer;
 
     @Inject
-    private RabbitMQStepdefs(MainStepdefs mainStepdefs, ImapStepdefs 
imapStepdefs) {
+    private RabbitMQAwsS3Stepdefs(MainStepdefs mainStepdefs, ImapStepdefs 
imapStepdefs) {
         this.mainStepdefs = mainStepdefs;
         this.imapStepdefs = imapStepdefs;
     }
@@ -80,22 +80,22 @@ public class RabbitMQStepdefs {
         embeddedElasticSearch.before();
         mainStepdefs.messageIdFactory = new CassandraMessageId.Factory();
         Configuration configuration = Configuration.builder()
-            .workingDirectory(temporaryFolder.newFolder())
-            .configurationFromClasspath()
-            .build();
+                .workingDirectory(temporaryFolder.newFolder())
+                .configurationFromClasspath()
+                .build();
 
         mainStepdefs.jmapServer = 
GuiceJamesServer.forConfiguration(configuration)
-            .combineWith(CassandraRabbitMQJamesServerMain.MODULES)
-            .overrideWith(new TestJMAPServerModule(10))
-            .overrideWith(new TestESMetricReporterModule())
-            .overrideWith(new 
TestRabbitMQModule(rabbitMQServer.dockerRabbitMQ()))
-            .overrideWith(new TestSwiftBlobStoreModule())
-            .overrideWith(new TestElasticSearchModule(embeddedElasticSearch))
-            .overrideWith(cassandraServer.getModule())
-            .overrideWith(binder -> 
binder.bind(TextExtractor.class).to(DefaultTextExtractor.class))
-            .overrideWith((binder) -> 
binder.bind(PersistenceAdapter.class).to(MemoryPersistenceAdapter.class))
-            .overrideWith(binder -> Multibinder.newSetBinder(binder, 
CleanupTasksPerformer.CleanupTask.class).addBinding().to(CassandraTruncateTableTask.class))
-            .overrideWith((binder -> 
binder.bind(CleanupTasksPerformer.class).asEagerSingleton()));
+                .combineWith(CassandraRabbitMQJamesServerMain.MODULES)
+                .overrideWith(new TestJMAPServerModule(10))
+                .overrideWith(new TestESMetricReporterModule())
+                .overrideWith(new 
TestRabbitMQModule(rabbitMQServer.dockerRabbitMQ()))
+                .overrideWith(new TestAwsS3BlobStoreModule())
+                .overrideWith(new 
TestElasticSearchModule(embeddedElasticSearch))
+                .overrideWith(cassandraServer.getModule())
+                .overrideWith(binder -> 
binder.bind(TextExtractor.class).to(DefaultTextExtractor.class))
+                .overrideWith((binder) -> 
binder.bind(PersistenceAdapter.class).to(MemoryPersistenceAdapter.class))
+                .overrideWith(binder -> Multibinder.newSetBinder(binder, 
CleanupTasksPerformer.CleanupTask.class).addBinding().to(CassandraTruncateTableTask.class))
+                .overrideWith((binder -> 
binder.bind(CleanupTasksPerformer.class).asEagerSingleton()));
         mainStepdefs.awaitMethod = () -> 
embeddedElasticSearch.awaitForElasticSearch();
         mainStepdefs.init();
     }
@@ -110,9 +110,9 @@ public class RabbitMQStepdefs {
 
     private void ignoreFailures(ThrowingRunnable... cleaners) {
         Arrays.stream(cleaners)
-            .forEach(this::runSwallowingException);
+                .forEach(this::runSwallowingException);
     }
-    
+
     private void runSwallowingException(Runnable run) {
         try {
             run.run();
@@ -121,3 +121,4 @@ public class RabbitMQStepdefs {
         }
     }
 }
+
diff --git 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java
 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQSwiftStepdefs.java
similarity index 97%
rename from 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java
rename to 
server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQSwiftStepdefs.java
index b97c96e..aa86570 100644
--- 
a/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQStepdefs.java
+++ 
b/server/protocols/jmap-integration-testing/rabbitmq-jmap-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/RabbitMQSwiftStepdefs.java
@@ -54,7 +54,7 @@ import cucumber.api.java.Before;
 import cucumber.runtime.java.guice.ScenarioScoped;
 
 @ScenarioScoped
-public class RabbitMQStepdefs {
+public class RabbitMQSwiftStepdefs {
 
     private final MainStepdefs mainStepdefs;
     private final ImapStepdefs imapStepdefs;
@@ -65,7 +65,7 @@ public class RabbitMQStepdefs {
     private DockerSwiftTestRule swiftServer = 
CucumberSwiftSingleton.swiftServer;
 
     @Inject
-    private RabbitMQStepdefs(MainStepdefs mainStepdefs, ImapStepdefs 
imapStepdefs) {
+    private RabbitMQSwiftStepdefs(MainStepdefs mainStepdefs, ImapStepdefs 
imapStepdefs) {
         this.mainStepdefs = mainStepdefs;
         this.imapStepdefs = imapStepdefs;
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to