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 rc...@apache.org on 2020/07/15 04:36:16 UTC
[james-project] 08/09: JAMES-3266 Document ElasticSearch
opt-in/opt-out
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 106bba2e9e753b7d8954695fe12e20e4f7ef07b0
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Jun 23 17:24:42 2020 +0700
JAMES-3266 Document ElasticSearch opt-in/opt-out
---
.../java/org/apache/james/SearchModuleChooser.java | 11 ++------
.../AuthenticatedCassandraJamesServerTest.java | 21 ++------------
.../org/apache/james/CassandraJamesServerTest.java | 7 +----
.../apache/james/CassandraJmapJamesServerTest.java | 7 +----
.../CassandraMailRepositoryIntegrationTest.java | 7 +----
.../CassandraMessageIdManagerInjectionTest.java | 7 +----
.../org/apache/james/CassandraNodeConfTest.java | 7 +----
.../org/apache/james/CassandraWithTikaTest.java | 8 +-----
.../james/DefaultCassandraJamesServerTest.java | 7 +----
.../test/java/org/apache/james/ESReporterTest.java | 7 +----
.../apache/james/JamesCapabilitiesServerTest.java | 7 +----
.../james/JamesServerWithRetryConnectionTest.java | 7 +----
...esWithNonCompatibleElasticSearchServerTest.java | 7 +----
.../org/apache/james/KeyspaceCreationTest.java | 28 +++----------------
...a => TestingDistributedJamesServerBuilder.java} | 32 ++++++++++------------
.../apache/james/WithCassandraBlobStoreTest.java | 7 +----
.../apache/james/CassandraLdapJamesServerTest.java | 7 +----
.../james/CassandraLdapJmapJamesServerTest.java | 7 +----
.../jmap/cassandra/CassandraImapErrorTest.java | 10 ++-----
.../jmap/cassandra/CassandraSendMDNMethodTest.java | 10 ++-----
.../CassandraSpamAssassinContractTest.java | 10 ++-----
src/site/xdoc/server/config-elasticsearch.xml | 10 +++++++
22 files changed, 55 insertions(+), 176 deletions(-)
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/SearchModuleChooser.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/SearchModuleChooser.java
index b6713f3..a35b5d9 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/SearchModuleChooser.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/SearchModuleChooser.java
@@ -66,11 +66,6 @@ public class SearchModuleChooser {
// Required for CLI
private static class FakeMessageSearchIndex extends ListeningMessageSearchIndex {
- private static class FakeMessageSearchIndexGroup extends Group {
-
- }
-
- private static final FakeMessageSearchIndexGroup GROUP = new FakeMessageSearchIndexGroup();
public FakeMessageSearchIndex() {
super(null, null);
@@ -82,7 +77,7 @@ public class SearchModuleChooser {
}
@Override
- public Mono<Void> delete(MailboxSession session, Mailbox mailbox, Collection<MessageUid> expungedUids) {
+ public Mono<Void> delete(MailboxSession session, MailboxId mailboxId, Collection<MessageUid> expungedUids) {
throw new NotImplementedException("not implemented");
}
@@ -92,7 +87,7 @@ public class SearchModuleChooser {
}
@Override
- public Mono<Void> update(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> updatedFlagsList) {
+ public Mono<Void> update(MailboxSession session, MailboxId mailboxId, List<UpdatedFlags> updatedFlagsList) {
throw new NotImplementedException("not implemented");
}
@@ -103,7 +98,7 @@ public class SearchModuleChooser {
@Override
public Group getDefaultGroup() {
- return GROUP;
+ throw new NotImplementedException("not implemented");
}
@Override
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/AuthenticatedCassandraJamesServerTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/AuthenticatedCassandraJamesServerTest.java
index 9a5fd68..58a6b35 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/AuthenticatedCassandraJamesServerTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/AuthenticatedCassandraJamesServerTest.java
@@ -43,12 +43,7 @@ class AuthenticatedCassandraJamesServerTest {
@Nested
class AuthenticationTest implements JamesServerContract {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(cassandraExtension)
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
@@ -64,12 +59,7 @@ class AuthenticatedCassandraJamesServerTest {
@Nested
class SslTest {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(cassandraExtension)
.disableAutoStart()
@@ -94,12 +84,7 @@ class AuthenticatedCassandraJamesServerTest {
@Nested
class AuthenticationFailureTest {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(cassandraExtension)
.disableAutoStart()
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java
index cab7b20..699ca01 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java
@@ -30,12 +30,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraJamesServerTest implements JamesServerContract {
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapJamesServerTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapJamesServerTest.java
index 69fe6a7..97efb6b 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapJamesServerTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapJamesServerTest.java
@@ -27,12 +27,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraJmapJamesServerTest implements JmapJamesServerContract {
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMailRepositoryIntegrationTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMailRepositoryIntegrationTest.java
index 88f0c7b..77354ac 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMailRepositoryIntegrationTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMailRepositoryIntegrationTest.java
@@ -47,12 +47,7 @@ class CassandraMailRepositoryIntegrationTest {
private SMTPMessageSender smtpMessageSender = new SMTPMessageSender("other.com");
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMessageIdManagerInjectionTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMessageIdManagerInjectionTest.java
index 49378ba..3ea1bd9 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMessageIdManagerInjectionTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraMessageIdManagerInjectionTest.java
@@ -33,12 +33,7 @@ import com.google.inject.multibindings.Multibinder;
class CassandraMessageIdManagerInjectionTest {
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraNodeConfTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraNodeConfTest.java
index b9bd416..738e50b 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraNodeConfTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraNodeConfTest.java
@@ -42,12 +42,7 @@ class CassandraNodeConfTest {
private static final int CASSANDRA_PORT = 9042;
private static JamesServerBuilder extensionBuilder() {
- return new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ return TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraWithTikaTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraWithTikaTest.java
index db503ed..31615a3 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraWithTikaTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraWithTikaTest.java
@@ -24,13 +24,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraWithTikaTest implements JamesServerContract {
@RegisterExtension
- static JamesServerExtension testExtension =
- new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new CassandraExtension())
.extension(new TikaExtension())
.extension(new DockerElasticSearchExtension())
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DefaultCassandraJamesServerTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DefaultCassandraJamesServerTest.java
index 7bca678..86b6de5 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DefaultCassandraJamesServerTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/DefaultCassandraJamesServerTest.java
@@ -33,12 +33,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class DefaultCassandraJamesServerTest {
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
index 50a1fd4..f3a12db 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/ESReporterTest.java
@@ -61,12 +61,7 @@ class ESReporterTest {
static final DockerElasticSearchExtension elasticSearchExtension = new DockerElasticSearchExtension();
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(elasticSearchExtension)
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesCapabilitiesServerTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesCapabilitiesServerTest.java
index 12fd2a1..0a8f58d 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesCapabilitiesServerTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesCapabilitiesServerTest.java
@@ -36,12 +36,7 @@ class JamesCapabilitiesServerTest {
private static final MailboxManager mailboxManager = mock(MailboxManager.class);
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesServerWithRetryConnectionTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesServerWithRetryConnectionTest.java
index 387c2fc..8afe525 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesServerWithRetryConnectionTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesServerWithRetryConnectionTest.java
@@ -46,12 +46,7 @@ class JamesServerWithRetryConnectionTest {
private static final CassandraExtension dockerCassandra = new CassandraExtension();
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(dockerElasticSearch)
.extension(dockerCassandra)
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesWithNonCompatibleElasticSearchServerTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesWithNonCompatibleElasticSearchServerTest.java
index e6021a2..8dded5f 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesWithNonCompatibleElasticSearchServerTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesWithNonCompatibleElasticSearchServerTest.java
@@ -37,12 +37,7 @@ class JamesWithNonCompatibleElasticSearchServerTest {
static DockerElasticSearch dockerES2 = new DockerElasticSearch.NoAuth(Images.ELASTICSEARCH_2);
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension(dockerES2))
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/KeyspaceCreationTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/KeyspaceCreationTest.java
index 8adcc62..14e229e 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/KeyspaceCreationTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/KeyspaceCreationTest.java
@@ -33,12 +33,7 @@ class KeyspaceCreationTest {
@Nested
class CreateWhenKeyspaceExists {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
@@ -59,12 +54,7 @@ class KeyspaceCreationTest {
@Nested
class CreateWhenDoesNotExistAndHasRights {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
@@ -91,12 +81,7 @@ class KeyspaceCreationTest {
@Nested
class CreateWhenDoesNotExistAndDoNotHaveRights {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
@@ -123,12 +108,7 @@ class KeyspaceCreationTest {
@Nested
class StartWhenKeyspaceDoesNotExist {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraWithTikaTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/TestingDistributedJamesServerBuilder.java
similarity index 58%
copy from server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraWithTikaTest.java
copy to server/container/guice/cassandra-guice/src/test/java/org/apache/james/TestingDistributedJamesServerBuilder.java
index db503ed..211ef78 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraWithTikaTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/TestingDistributedJamesServerBuilder.java
@@ -19,23 +19,21 @@
package org.apache.james;
-import org.apache.james.modules.TestJMAPServerModule;
-import org.junit.jupiter.api.extension.RegisterExtension;
+public class TestingDistributedJamesServerBuilder {
+ @FunctionalInterface
+ interface ConfigurationSpecification {
+ CassandraJamesServerConfiguration.Builder customize(CassandraJamesServerConfiguration.Builder configuration);
+ }
-class CassandraWithTikaTest implements JamesServerContract {
- @RegisterExtension
- static JamesServerExtension testExtension =
- new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
+ public static JamesServerBuilder<CassandraJamesServerConfiguration> forConfiguration(ConfigurationSpecification configurationSpecification) {
+ return new JamesServerBuilder<>(tmpDir ->
+ configurationSpecification.customize(CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
- .extension(new CassandraExtension())
- .extension(new TikaExtension())
- .extension(new DockerElasticSearchExtension())
- .server(configuration -> CassandraJamesServerMain.createServer(configuration)
- .overrideWith(new TestJMAPServerModule())
- .overrideWith(DOMAIN_LIST_CONFIGURATION_MODULE))
- .build();
+ .configurationFromClasspath())
+ .build());
+ }
+
+ public static JamesServerBuilder<CassandraJamesServerConfiguration> withSearchConfiguration(SearchConfiguration searchConfiguration) {
+ return forConfiguration(configuration -> configuration.searchConfiguration(searchConfiguration));
+ }
}
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 c86d4d8..d8f99b4 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
@@ -27,12 +27,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
@RegisterExtension
- static JamesServerExtension jamesServerExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension jamesServerExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.extension(new SpamAssassinModuleExtension())
diff --git a/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJamesServerTest.java b/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJamesServerTest.java
index 8c20b54..7d5e782 100644
--- a/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJamesServerTest.java
+++ b/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJamesServerTest.java
@@ -53,12 +53,7 @@ class CassandraLdapJamesServerTest implements JamesServerContract {
SMTPMessageSender messageSender = new SMTPMessageSender(Domain.LOCALHOST.asString());
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.extension(new LdapTestExtension())
diff --git a/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJmapJamesServerTest.java b/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJmapJamesServerTest.java
index ccf7097..7c537b0 100644
--- a/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJmapJamesServerTest.java
+++ b/server/container/guice/cassandra-ldap-guice/src/test/java/org/apache/james/CassandraLdapJmapJamesServerTest.java
@@ -25,12 +25,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraLdapJmapJamesServerTest implements JmapJamesServerContract {
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.extension(new LdapTestExtension())
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraImapErrorTest.java b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraImapErrorTest.java
index e4261ab..7a5119e 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraImapErrorTest.java
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraImapErrorTest.java
@@ -26,13 +26,12 @@ import static org.assertj.core.api.Assertions.assertThat;
import org.apache.commons.net.imap.IMAPClient;
import org.apache.james.CassandraExtension;
-import org.apache.james.CassandraJamesServerConfiguration;
import org.apache.james.CassandraJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.GuiceJamesServer;
-import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
import org.apache.james.SearchConfiguration;
+import org.apache.james.TestingDistributedJamesServerBuilder;
import org.apache.james.jmap.draft.JmapGuiceProbe;
import org.apache.james.modules.TestJMAPServerModule;
import org.apache.james.modules.protocols.ImapGuiceProbe;
@@ -49,12 +48,7 @@ class CassandraImapErrorTest {
private final CassandraExtension cassandraExtension = new CassandraExtension();
@RegisterExtension
- JamesServerExtension serverExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ JamesServerExtension serverExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(cassandraExtension)
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSendMDNMethodTest.java b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSendMDNMethodTest.java
index 1a171d3..54bd376 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSendMDNMethodTest.java
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSendMDNMethodTest.java
@@ -20,12 +20,11 @@
package org.apache.james.jmap.cassandra;
import org.apache.james.CassandraExtension;
-import org.apache.james.CassandraJamesServerConfiguration;
import org.apache.james.CassandraJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
-import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
import org.apache.james.SearchConfiguration;
+import org.apache.james.TestingDistributedJamesServerBuilder;
import org.apache.james.jmap.draft.methods.integration.SendMDNMethodTest;
import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
import org.apache.james.mailbox.model.MessageId;
@@ -35,12 +34,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
public class CassandraSendMDNMethodTest extends SendMDNMethodTest {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSpamAssassinContractTest.java b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSpamAssassinContractTest.java
index c06f44b..5ad8098 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSpamAssassinContractTest.java
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/CassandraSpamAssassinContractTest.java
@@ -19,12 +19,11 @@
package org.apache.james.jmap.cassandra;
import org.apache.james.CassandraExtension;
-import org.apache.james.CassandraJamesServerConfiguration;
import org.apache.james.CassandraJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
-import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
import org.apache.james.SearchConfiguration;
+import org.apache.james.TestingDistributedJamesServerBuilder;
import org.apache.james.jmap.draft.methods.integration.SpamAssassinContract;
import org.apache.james.jmap.draft.methods.integration.SpamAssassinModuleExtension;
import org.apache.james.modules.TestJMAPServerModule;
@@ -35,12 +34,7 @@ class CassandraSpamAssassinContractTest implements SpamAssassinContract {
private static final SpamAssassinModuleExtension spamAssassinExtension = new SpamAssassinModuleExtension();
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
- CassandraJamesServerConfiguration.builder()
- .workingDirectory(tmpDir)
- .configurationFromClasspath()
- .searchConfiguration(SearchConfiguration.elasticSearch())
- .build())
+ static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.extension(spamAssassinExtension)
diff --git a/src/site/xdoc/server/config-elasticsearch.xml b/src/site/xdoc/server/config-elasticsearch.xml
index 3a6f54e..866f887 100644
--- a/src/site/xdoc/server/config-elasticsearch.xml
+++ b/src/site/xdoc/server/config-elasticsearch.xml
@@ -115,6 +115,16 @@
<dd>Specify the ElasticSearch alias name used for writing quotas</dd>
</dl>
+ <p>
+ ElasticSearch component can be disabled but consider it would make search feature to not work. In particular it will break JMAP protocol and SEARCH IMAP comment in an nondeterministic way.
+ This is controlled via the <code>enabled</code> property (boolean, defaults
+ to true). Setting this configuration parameter to <code>false</code> will effectively disable ElasticSearch, no
+ further indexation will be done however searches will rely on the scrolling search, leading to expensive and longer
+ searches. Disabling ElasticSearch requires no extra action, however
+ <a href="https://github.com/apache/james-project/blob/master/src/site/markdown/server/manage-webadmin.md#reindexing-all-mails">
+ a full re-indexing</a> needs to be carried out when enabling ElasticSearch.
+ </p>
+
For configuring the metric reporting on ElasticSearch :
<dl>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org