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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
