You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2020/07/31 09:24:44 UTC
[james-project] 23/28: JAMES-3350 Split Guice server tests to
better leverage lifecycle benefits
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 0d8348b5051e6d471f3bfb6175e704606103c36d
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Jul 28 14:04:43 2020 +0700
JAMES-3350 Split Guice server tests to better leverage lifecycle benefits
Note that we don't need separate static extensions
---
...va => WithCassandraBlobStoreImmutableTest.java} | 21 +++---
.../apache/james/WithCassandraBlobStoreTest.java | 16 +---
...eExtension.java => WithCacheImmutableTest.java} | 55 +++-----------
...ithCacheTest.java => WithCacheMutableTest.java} | 10 ++-
.../org/apache/james/WithCassandraBlobStore.java | 88 ----------------------
.../james/WithCassandraBlobStoreImmutableTest.java | 49 ++++++++++++
...java => WithCassandraBlobStoreMutableTest.java} | 10 ++-
.../apache/james/WithDefaultAwsS3Extension.java | 71 -----------------
...est.java => WithDefaultAwsS3ImmutableTest.java} | 11 ++-
...eTest.java => WithDefaultAwsS3MutableTest.java} | 12 ++-
.../apache/james/WithDefaultSwiftExtension.java | 71 -----------------
...est.java => WithDefaultSwiftImmutableTest.java} | 11 ++-
...eTest.java => WithDefaultSwiftMutableTest.java} | 12 ++-
.../apache/james/WithEncryptedAwsS3Extension.java | 72 ------------------
...t.java => WithEncryptedAwsS3ImmutableTest.java} | 12 ++-
...est.java => WithEncryptedAwsS3MutableTest.java} | 13 +++-
.../apache/james/WithEncryptedSwiftExtension.java | 72 ------------------
...t.java => WithEncryptedSwiftImmutableTest.java} | 12 ++-
...est.java => WithEncryptedSwiftMutableTest.java} | 13 +++-
...n.java => WithScanningSearchImmutableTest.java} | 56 +++-----------
...est.java => WithScanningSearchMutableTest.java} | 10 ++-
.../james/jmap/draft/JmapJamesServerContract.java | 25 +++---
.../memory/MemoryJwtFilterIntegrationTest.java | 1 -
23 files changed, 182 insertions(+), 541 deletions(-)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java
similarity index 57%
copy from server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
copy to server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java
index d8f99b4..884e061 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java
@@ -24,16 +24,19 @@ import org.apache.james.jmap.draft.methods.integration.SpamAssassinModuleExtensi
import org.apache.james.modules.TestJMAPServerModule;
import org.junit.jupiter.api.extension.RegisterExtension;
-class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
-
+class WithCassandraBlobStoreImmutableTest implements JmapJamesServerContract, JamesServerContract {
@RegisterExtension
- static JamesServerExtension jamesServerExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
- .extension(new DockerElasticSearchExtension())
- .extension(new CassandraExtension())
- .extension(new SpamAssassinModuleExtension())
- .server(configuration -> CassandraJamesServerMain.createServer(configuration)
- .overrideWith(new TestJMAPServerModule())
- .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE))
+ static JamesServerExtension jamesServerExtension = baseExtensionBuilder()
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
.build();
+ static JamesServerBuilder<CassandraJamesServerConfiguration> baseExtensionBuilder() {
+ return TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
+ .extension(new DockerElasticSearchExtension())
+ .extension(new CassandraExtension())
+ .extension(new SpamAssassinModuleExtension())
+ .server(configuration -> CassandraJamesServerMain.createServer(configuration)
+ .overrideWith(new TestJMAPServerModule())
+ .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE));
+ }
}
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
index d8f99b4..2bf74d8 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
@@ -19,21 +19,11 @@
package org.apache.james;
-import org.apache.james.jmap.draft.JmapJamesServerContract;
-import org.apache.james.jmap.draft.methods.integration.SpamAssassinModuleExtension;
-import org.apache.james.modules.TestJMAPServerModule;
import org.junit.jupiter.api.extension.RegisterExtension;
-class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
-
+class WithCassandraBlobStoreTest implements MailsShouldBeWellReceived {
@RegisterExtension
- static JamesServerExtension jamesServerExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
- .extension(new DockerElasticSearchExtension())
- .extension(new CassandraExtension())
- .extension(new SpamAssassinModuleExtension())
- .server(configuration -> CassandraJamesServerMain.createServer(configuration)
- .overrideWith(new TestJMAPServerModule())
- .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE))
+ static JamesServerExtension jamesServerExtension = WithCassandraBlobStoreImmutableTest.baseExtensionBuilder()
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST)
.build();
-
}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheExtension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheImmutableTest.java
similarity index 55%
rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheExtension.java
rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheImmutableTest.java
index a971e3e..5dbcf14 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheExtension.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheImmutableTest.java
@@ -24,21 +24,17 @@ import org.apache.james.modules.AwsS3BlobStoreExtension;
import org.apache.james.modules.RabbitMQExtension;
import org.apache.james.modules.TestJMAPServerModule;
import org.apache.james.modules.blobstore.BlobStoreConfiguration;
-import org.junit.jupiter.api.extension.AfterAllCallback;
-import org.junit.jupiter.api.extension.AfterEachCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.BeforeEachCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolutionException;
-import org.junit.jupiter.api.extension.ParameterResolver;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class WithCacheExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
- private final JamesServerExtension jamesServerExtension;
+class WithCacheImmutableTest implements JmapJamesServerContract, JamesServerContract {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = baseExtensionBuilder()
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
+ .build();
- WithCacheExtension() {
- jamesServerExtension = new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir ->
+ static JamesServerBuilder<CassandraRabbitMQJamesConfiguration> baseExtensionBuilder() {
+ return new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir ->
CassandraRabbitMQJamesConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
@@ -54,37 +50,6 @@ public class WithCacheExtension implements BeforeAllCallback, AfterAllCallback,
.extension(new AwsS3BlobStoreExtension())
.server(configuration -> CassandraRabbitMQJamesServerMain.createServer(configuration)
.overrideWith(new TestJMAPServerModule())
- .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE))
- .build();
+ .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE));
}
-
- @Override
- public void beforeAll(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeAll(context);
- }
-
- @Override
- public void afterAll(ExtensionContext context) throws Exception {
- jamesServerExtension.afterAll(context);
- }
-
- @Override
- public void beforeEach(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeEach(context);
- }
-
- @Override
- public void afterEach(ExtensionContext context) throws Exception {
- jamesServerExtension.afterEach(context);
- }
-
- @Override
- public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return (parameterContext.getParameter().getType() == GuiceJamesServer.class);
- }
-
- @Override
- public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return jamesServerExtension.getGuiceJamesServer();
- }
-}
+}
\ No newline at end of file
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheMutableTest.java
similarity index 78%
rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheTest.java
rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheMutableTest.java
index ee5ebbc..53d8476 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheMutableTest.java
@@ -19,9 +19,11 @@
package org.apache.james;
-import org.apache.james.jmap.draft.JmapJamesServerContract;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithCacheExtension.class)
-class WithCacheTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+class WithCacheMutableTest implements MailsShouldBeWellReceived {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = WithCacheImmutableTest.baseExtensionBuilder()
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST)
+ .build();
}
\ No newline at end of file
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStore.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStore.java
deleted file mode 100644
index 98dd3a6..0000000
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStore.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * 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 org.apache.james.jmap.draft.JmapJamesServerContract;
-import org.apache.james.modules.RabbitMQExtension;
-import org.apache.james.modules.TestJMAPServerModule;
-import org.apache.james.modules.blobstore.BlobStoreConfiguration;
-import org.junit.jupiter.api.extension.AfterAllCallback;
-import org.junit.jupiter.api.extension.AfterEachCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.BeforeEachCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolutionException;
-import org.junit.jupiter.api.extension.ParameterResolver;
-
-public class WithCassandraBlobStore implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
-
- private final JamesServerExtension jamesServerExtension;
-
- WithCassandraBlobStore() {
- jamesServerExtension = new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir ->
- CassandraRabbitMQJamesConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .blobStore(BlobStoreConfiguration.builder()
- .cassandra()
- .disableCache()
- .passthrough())
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
- .extension(new DockerElasticSearchExtension())
- .extension(new CassandraExtension())
- .extension(new RabbitMQExtension())
- .server(configuration -> CassandraRabbitMQJamesServerMain.createServer(configuration)
- .overrideWith(new TestJMAPServerModule())
- .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE))
- .build();
- }
-
- @Override
- public void beforeAll(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeAll(context);
- }
-
- @Override
- public void afterAll(ExtensionContext context) throws Exception {
- jamesServerExtension.afterAll(context);
- }
-
- @Override
- public void beforeEach(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeEach(context);
- }
-
- @Override
- public void afterEach(ExtensionContext context) throws Exception {
- jamesServerExtension.afterEach(context);
- }
-
- @Override
- public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return (parameterContext.getParameter().getType() == GuiceJamesServer.class);
- }
-
- @Override
- public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return jamesServerExtension.getGuiceJamesServer();
- }
-}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java
new file mode 100644
index 0000000..f6d1ed6
--- /dev/null
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreImmutableTest.java
@@ -0,0 +1,49 @@
+/*
+ * 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 org.apache.james.jmap.draft.JmapJamesServerContract;
+import org.apache.james.modules.RabbitMQExtension;
+import org.apache.james.modules.TestJMAPServerModule;
+import org.apache.james.modules.blobstore.BlobStoreConfiguration;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+public class WithCassandraBlobStoreImmutableTest implements JmapJamesServerContract, JamesServerContract {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = baseExtensionBuilder()
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
+ .build();
+
+ static JamesServerBuilder<CassandraRabbitMQJamesConfiguration> baseExtensionBuilder() {
+ return new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir ->
+ CassandraRabbitMQJamesConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .blobStore(BlobStoreConfiguration.cassandra())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
+ .extension(new DockerElasticSearchExtension())
+ .extension(new CassandraExtension())
+ .extension(new RabbitMQExtension())
+ .server(configuration -> CassandraRabbitMQJamesServerMain.createServer(configuration)
+ .overrideWith(new TestJMAPServerModule())
+ .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE));
+ }
+}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreMutableTest.java
similarity index 70%
copy from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
copy to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreMutableTest.java
index 33219bb..cbc908f 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreMutableTest.java
@@ -19,9 +19,11 @@
package org.apache.james;
-import org.apache.james.jmap.draft.JmapJamesServerContract;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithCassandraBlobStore.class)
-public class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+public class WithCassandraBlobStoreMutableTest implements MailsShouldBeWellReceived {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = WithCassandraBlobStoreImmutableTest.baseExtensionBuilder()
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST)
+ .build();
}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Extension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Extension.java
deleted file mode 100644
index 03a035e..0000000
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Extension.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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 org.apache.james.modules.AwsS3BlobStoreExtension;
-import org.junit.jupiter.api.extension.AfterAllCallback;
-import org.junit.jupiter.api.extension.AfterEachCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.BeforeEachCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolutionException;
-import org.junit.jupiter.api.extension.ParameterResolver;
-
-public class WithDefaultAwsS3Extension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
-
- private final JamesServerExtension jamesServerExtension;
-
- WithDefaultAwsS3Extension() {
- jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
- .extension(new AwsS3BlobStoreExtension())
- .build();
- }
-
- @Override
- public void beforeAll(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeAll(context);
- }
-
- @Override
- public void afterAll(ExtensionContext context) throws Exception {
- jamesServerExtension.afterAll(context);
- }
-
- @Override
- public void beforeEach(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeEach(context);
- }
-
- @Override
- public void afterEach(ExtensionContext context) throws Exception {
- jamesServerExtension.afterEach(context);
- }
-
- @Override
- public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return (parameterContext.getParameter().getType() == GuiceJamesServer.class);
- }
-
- @Override
- public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return jamesServerExtension.getGuiceJamesServer();
- }
-}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Test.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3ImmutableTest.java
similarity index 75%
rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Test.java
rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3ImmutableTest.java
index 7a3dfce..207f3cc 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3Test.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3ImmutableTest.java
@@ -24,12 +24,17 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.blob.objectstorage.DefaultPayloadCodec;
import org.apache.james.blob.objectstorage.PayloadCodec;
import org.apache.james.jmap.draft.JmapJamesServerContract;
+import org.apache.james.modules.AwsS3BlobStoreExtension;
import org.apache.james.modules.objectstorage.aws.s3.DockerAwsS3TestRule;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithDefaultAwsS3Extension.class)
-public class WithDefaultAwsS3Test implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+public class WithDefaultAwsS3ImmutableTest implements JmapJamesServerContract, JamesServerContract {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
+ .extension(new AwsS3BlobStoreExtension())
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
+ .build();
@Test
void defaultPayloadShouldBeByDefault(GuiceJamesServer jamesServer) {
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3MutableTest.java
similarity index 64%
copy from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
copy to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3MutableTest.java
index 33219bb..8e284d1 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultAwsS3MutableTest.java
@@ -19,9 +19,13 @@
package org.apache.james;
-import org.apache.james.jmap.draft.JmapJamesServerContract;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.apache.james.modules.AwsS3BlobStoreExtension;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithCassandraBlobStore.class)
-public class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+public class WithDefaultAwsS3MutableTest implements MailsShouldBeWellReceived {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
+ .extension(new AwsS3BlobStoreExtension())
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST)
+ .build();
}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftExtension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftExtension.java
deleted file mode 100644
index 3e867aa..0000000
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftExtension.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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 org.apache.james.modules.SwiftBlobStoreExtension;
-import org.junit.jupiter.api.extension.AfterAllCallback;
-import org.junit.jupiter.api.extension.AfterEachCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.BeforeEachCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolutionException;
-import org.junit.jupiter.api.extension.ParameterResolver;
-
-public class WithDefaultSwiftExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
-
- private final JamesServerExtension jamesServerExtension;
-
- WithDefaultSwiftExtension() {
- jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
- .extension(new SwiftBlobStoreExtension())
- .build();
- }
-
- @Override
- public void beforeAll(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeAll(context);
- }
-
- @Override
- public void afterAll(ExtensionContext context) throws Exception {
- jamesServerExtension.afterAll(context);
- }
-
- @Override
- public void beforeEach(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeEach(context);
- }
-
- @Override
- public void afterEach(ExtensionContext context) throws Exception {
- jamesServerExtension.afterEach(context);
- }
-
- @Override
- public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return (parameterContext.getParameter().getType() == GuiceJamesServer.class);
- }
-
- @Override
- public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return jamesServerExtension.getGuiceJamesServer();
- }
-}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftImmutableTest.java
similarity index 75%
rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftTest.java
rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftImmutableTest.java
index 0459647..f46a3c3 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftImmutableTest.java
@@ -24,12 +24,17 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.blob.objectstorage.DefaultPayloadCodec;
import org.apache.james.blob.objectstorage.PayloadCodec;
import org.apache.james.jmap.draft.JmapJamesServerContract;
+import org.apache.james.modules.SwiftBlobStoreExtension;
import org.apache.james.modules.objectstorage.swift.DockerSwiftTestRule;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithDefaultSwiftExtension.class)
-public class WithDefaultSwiftTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+public class WithDefaultSwiftImmutableTest implements JmapJamesServerContract, JamesServerContract {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
+ .extension(new SwiftBlobStoreExtension())
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
+ .build();
@Test
void defaultPayloadShouldBeByDefault(GuiceJamesServer jamesServer) {
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftMutableTest.java
similarity index 64%
copy from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
copy to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftMutableTest.java
index 33219bb..fe4ae75 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithDefaultSwiftMutableTest.java
@@ -19,9 +19,13 @@
package org.apache.james;
-import org.apache.james.jmap.draft.JmapJamesServerContract;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.apache.james.modules.SwiftBlobStoreExtension;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithCassandraBlobStore.class)
-public class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+public class WithDefaultSwiftMutableTest implements MailsShouldBeWellReceived {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
+ .extension(new SwiftBlobStoreExtension())
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST)
+ .build();
}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Extension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Extension.java
deleted file mode 100644
index c4927a2..0000000
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Extension.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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 org.apache.james.modules.AwsS3BlobStoreExtension;
-import org.apache.james.modules.objectstorage.PayloadCodecFactory;
-import org.junit.jupiter.api.extension.AfterAllCallback;
-import org.junit.jupiter.api.extension.AfterEachCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.BeforeEachCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolutionException;
-import org.junit.jupiter.api.extension.ParameterResolver;
-
-public class WithEncryptedAwsS3Extension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
-
- private final JamesServerExtension jamesServerExtension;
-
- WithEncryptedAwsS3Extension() {
- jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
- .extension(new AwsS3BlobStoreExtension(PayloadCodecFactory.AES256))
- .build();
- }
-
- @Override
- public void beforeAll(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeAll(context);
- }
-
- @Override
- public void afterAll(ExtensionContext context) throws Exception {
- jamesServerExtension.afterAll(context);
- }
-
- @Override
- public void beforeEach(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeEach(context);
- }
-
- @Override
- public void afterEach(ExtensionContext context) throws Exception {
- jamesServerExtension.afterEach(context);
- }
-
- @Override
- public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return (parameterContext.getParameter().getType() == GuiceJamesServer.class);
- }
-
- @Override
- public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return jamesServerExtension.getGuiceJamesServer();
- }
-}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Test.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3ImmutableTest.java
similarity index 72%
rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Test.java
rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3ImmutableTest.java
index aa500c6..c4172b7 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3Test.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3ImmutableTest.java
@@ -24,12 +24,18 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.blob.objectstorage.AESPayloadCodec;
import org.apache.james.blob.objectstorage.PayloadCodec;
import org.apache.james.jmap.draft.JmapJamesServerContract;
+import org.apache.james.modules.AwsS3BlobStoreExtension;
+import org.apache.james.modules.objectstorage.PayloadCodecFactory;
import org.apache.james.modules.objectstorage.aws.s3.DockerAwsS3TestRule;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithEncryptedAwsS3Extension.class)
-public class WithEncryptedAwsS3Test implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+public class WithEncryptedAwsS3ImmutableTest implements JmapJamesServerContract, JamesServerContract {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
+ .extension(new AwsS3BlobStoreExtension(PayloadCodecFactory.AES256))
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
+ .build();
@Test
void encryptedPayloadShouldBeConfiguredWhenProvidingEncryptedPayloadConfiguration(GuiceJamesServer jamesServer) {
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3MutableTest.java
similarity index 60%
copy from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
copy to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3MutableTest.java
index 33219bb..361e575 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedAwsS3MutableTest.java
@@ -19,9 +19,14 @@
package org.apache.james;
-import org.apache.james.jmap.draft.JmapJamesServerContract;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.apache.james.modules.AwsS3BlobStoreExtension;
+import org.apache.james.modules.objectstorage.PayloadCodecFactory;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithCassandraBlobStore.class)
-public class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+public class WithEncryptedAwsS3MutableTest implements MailsShouldBeWellReceived {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
+ .extension(new AwsS3BlobStoreExtension(PayloadCodecFactory.AES256))
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST)
+ .build();
}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftExtension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftExtension.java
deleted file mode 100644
index 422a281..0000000
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftExtension.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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 org.apache.james.modules.SwiftBlobStoreExtension;
-import org.apache.james.modules.objectstorage.PayloadCodecFactory;
-import org.junit.jupiter.api.extension.AfterAllCallback;
-import org.junit.jupiter.api.extension.AfterEachCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.BeforeEachCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolutionException;
-import org.junit.jupiter.api.extension.ParameterResolver;
-
-public class WithEncryptedSwiftExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
-
- private final JamesServerExtension jamesServerExtension;
-
- WithEncryptedSwiftExtension() {
- jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
- .extension(new SwiftBlobStoreExtension(PayloadCodecFactory.AES256))
- .build();
- }
-
- @Override
- public void beforeAll(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeAll(context);
- }
-
- @Override
- public void afterAll(ExtensionContext context) throws Exception {
- jamesServerExtension.afterAll(context);
- }
-
- @Override
- public void beforeEach(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeEach(context);
- }
-
- @Override
- public void afterEach(ExtensionContext context) throws Exception {
- jamesServerExtension.afterEach(context);
- }
-
- @Override
- public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return (parameterContext.getParameter().getType() == GuiceJamesServer.class);
- }
-
- @Override
- public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return jamesServerExtension.getGuiceJamesServer();
- }
-}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftImmutableTest.java
similarity index 72%
rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftTest.java
rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftImmutableTest.java
index 0f998bc..aeb59d8 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftImmutableTest.java
@@ -24,12 +24,18 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.blob.objectstorage.AESPayloadCodec;
import org.apache.james.blob.objectstorage.PayloadCodec;
import org.apache.james.jmap.draft.JmapJamesServerContract;
+import org.apache.james.modules.SwiftBlobStoreExtension;
+import org.apache.james.modules.objectstorage.PayloadCodecFactory;
import org.apache.james.modules.objectstorage.swift.DockerSwiftTestRule;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithEncryptedSwiftExtension.class)
-public class WithEncryptedSwiftTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+public class WithEncryptedSwiftImmutableTest implements JmapJamesServerContract, JamesServerContract {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
+ .extension(new SwiftBlobStoreExtension(PayloadCodecFactory.AES256))
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
+ .build();
@Test
void encryptedPayloadShouldBeConfiguredWhenProvidingEncryptedPayloadConfiguration(GuiceJamesServer jamesServer) {
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftMutableTest.java
similarity index 60%
rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftMutableTest.java
index 33219bb..7f45b8e 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCassandraBlobStoreTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithEncryptedSwiftMutableTest.java
@@ -19,9 +19,14 @@
package org.apache.james;
-import org.apache.james.jmap.draft.JmapJamesServerContract;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.apache.james.modules.SwiftBlobStoreExtension;
+import org.apache.james.modules.objectstorage.PayloadCodecFactory;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithCassandraBlobStore.class)
-public class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+public class WithEncryptedSwiftMutableTest implements MailsShouldBeWellReceived {
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = CassandraRabbitMQJamesServerFixture.baseExtensionBuilder()
+ .extension(new SwiftBlobStoreExtension(PayloadCodecFactory.AES256))
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST)
+ .build();
}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchExtension.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchImmutableTest.java
similarity index 54%
rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchExtension.java
rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchImmutableTest.java
index ddeaabe..90fddc6 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchExtension.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchImmutableTest.java
@@ -24,21 +24,11 @@ import org.apache.james.modules.AwsS3BlobStoreExtension;
import org.apache.james.modules.RabbitMQExtension;
import org.apache.james.modules.TestJMAPServerModule;
import org.apache.james.modules.blobstore.BlobStoreConfiguration;
-import org.junit.jupiter.api.extension.AfterAllCallback;
-import org.junit.jupiter.api.extension.AfterEachCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.BeforeEachCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-import org.junit.jupiter.api.extension.ParameterContext;
-import org.junit.jupiter.api.extension.ParameterResolutionException;
-import org.junit.jupiter.api.extension.ParameterResolver;
+import org.junit.jupiter.api.extension.RegisterExtension;
-public class WithScanningSearchExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
-
- private final JamesServerExtension jamesServerExtension;
-
- WithScanningSearchExtension() {
- jamesServerExtension = new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir ->
+class WithScanningSearchImmutableTest implements JmapJamesServerContract, JamesServerContract {
+ static JamesServerBuilder<CassandraRabbitMQJamesConfiguration> baseExtension() {
+ return new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir ->
CassandraRabbitMQJamesConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
@@ -53,37 +43,11 @@ public class WithScanningSearchExtension implements BeforeAllCallback, AfterAllC
.extension(new AwsS3BlobStoreExtension())
.server(configuration -> CassandraRabbitMQJamesServerMain.createServer(configuration)
.overrideWith(new TestJMAPServerModule())
- .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE))
- .build();
- }
-
- @Override
- public void beforeAll(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeAll(context);
+ .overrideWith(JmapJamesServerContract.DOMAIN_LIST_CONFIGURATION_MODULE));
}
- @Override
- public void afterAll(ExtensionContext context) throws Exception {
- jamesServerExtension.afterAll(context);
- }
-
- @Override
- public void beforeEach(ExtensionContext context) throws Exception {
- jamesServerExtension.beforeEach(context);
- }
-
- @Override
- public void afterEach(ExtensionContext context) throws Exception {
- jamesServerExtension.afterEach(context);
- }
-
- @Override
- public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return (parameterContext.getParameter().getType() == GuiceJamesServer.class);
- }
-
- @Override
- public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
- return jamesServerExtension.getGuiceJamesServer();
- }
-}
+ @RegisterExtension
+ static JamesServerExtension jamesServerExtension = baseExtension()
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
+ .build();
+}
\ No newline at end of file
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchMutableTest.java
similarity index 78%
rename from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchTest.java
rename to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchMutableTest.java
index ec30cc9..2a9ea35 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchMutableTest.java
@@ -19,9 +19,11 @@
package org.apache.james;
-import org.apache.james.jmap.draft.JmapJamesServerContract;
-import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.RegisterExtension;
-@ExtendWith(WithScanningSearchExtension.class)
-class WithScanningSearchTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+class WithScanningSearchMutableTest implements MailsShouldBeWellReceived {
+ @RegisterExtension
+ JamesServerExtension jamesServerExtension = WithScanningSearchImmutableTest.baseExtension()
+ .lifeCycle(JamesServerExtension.Lifecycle.PER_TEST)
+ .build();
}
\ No newline at end of file
diff --git a/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/JmapJamesServerContract.java b/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/JmapJamesServerContract.java
index 461b0af..f9d7301 100644
--- a/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/JmapJamesServerContract.java
+++ b/server/container/guice/protocols/jmap/src/test/java/org/apache/james/jmap/draft/JmapJamesServerContract.java
@@ -26,7 +26,6 @@ import java.nio.charset.StandardCharsets;
import org.apache.james.GuiceJamesServer;
import org.apache.james.domainlist.lib.DomainListConfiguration;
-import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import com.google.inject.Module;
@@ -34,6 +33,7 @@ import com.google.inject.Module;
import io.restassured.RestAssured;
import io.restassured.builder.RequestSpecBuilder;
import io.restassured.http.ContentType;
+import io.restassured.specification.RequestSpecification;
public interface JmapJamesServerContract {
Module DOMAIN_LIST_CONFIGURATION_MODULE = binder -> binder.bind(DomainListConfiguration.class)
@@ -43,19 +43,9 @@ public interface JmapJamesServerContract {
.build());
String JAMES_SERVER_HOST = "127.0.0.1";
- @BeforeEach
- default void setup(GuiceJamesServer server) throws Exception {
-
- RestAssured.requestSpecification = new RequestSpecBuilder()
- .setContentType(ContentType.JSON)
- .setAccept(ContentType.JSON)
- .setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8)))
- .setPort(server.getProbe(JmapGuiceProbe.class).getJmapPort().getValue())
- .build();
- }
-
@Test
- default void connectJMAPServerShouldRespondBadRequest() {
+ default void connectJMAPServerShouldRespondBadRequest(GuiceJamesServer server) {
+ RestAssured.requestSpecification = requestSpec(server);
given()
.body("{\"badAttributeName\": \"value\"}")
.when()
@@ -63,4 +53,13 @@ public interface JmapJamesServerContract {
.then()
.statusCode(400);
}
+
+ static RequestSpecification requestSpec(GuiceJamesServer server) {
+ return new RequestSpecBuilder()
+ .setContentType(ContentType.JSON)
+ .setAccept(ContentType.JSON)
+ .setConfig(newConfig().encoderConfig(encoderConfig().defaultContentCharset(StandardCharsets.UTF_8)))
+ .setPort(server.getProbe(JmapGuiceProbe.class).getJmapPort().getValue())
+ .build();
+ }
}
diff --git a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryJwtFilterIntegrationTest.java b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryJwtFilterIntegrationTest.java
index f724152..c1aeca7 100644
--- a/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryJwtFilterIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/memory-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/memory/MemoryJwtFilterIntegrationTest.java
@@ -37,6 +37,5 @@ class MemoryJwtFilterIntegrationTest extends JwtFilterIntegrationTest {
.overrideWith(new WebadminIntegrationTestModule())
.overrideWith(binder -> binder.bind(AuthenticationFilter.class).to(JwtFilter.class))
.overrideWith(binder -> binder.bind(JwtConfiguration.class).toInstance(jwtConfiguration())))
- .lifeCycle(JamesServerExtension.Lifecycle.PER_CLASS)
.build();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org