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:15 UTC
[james-project] 07/09: JAMES-3266 Offer an option to disable
ElasticSearch in Distributed James product
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 88ba42685d811760044bd21c1dcdf4ede7837745
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Thu Jun 4 11:22:56 2020 +0700
JAMES-3266 Offer an option to disable ElasticSearch in Distributed James product
---
server/container/guice/cassandra-guice/pom.xml | 4 +
.../james/CassandraJamesServerConfiguration.java} | 36 +++--
.../org/apache/james/CassandraJamesServerMain.java | 16 +--
.../java/org/apache/james/SearchConfiguration.java | 76 ++++++++++
.../java/org/apache/james/SearchModuleChooser.java | 154 +++++++++++++++++++++
.../AuthenticatedCassandraJamesServerTest.java | 21 ++-
.../java/org/apache/james/CacheSessionTest.java | 7 +-
.../org/apache/james/CassandraJamesServerTest.java | 7 +-
.../apache/james/CassandraJmapJamesServerTest.java | 7 +-
.../org/apache/james/CassandraJmapTestRule.java | 4 +-
.../CassandraMailRepositoryIntegrationTest.java | 7 +-
.../CassandraMessageIdManagerInjectionTest.java | 7 +-
.../org/apache/james/CassandraNodeConfTest.java | 7 +-
.../org/apache/james/CassandraWithTikaTest.java | 7 +-
.../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 +++-
.../apache/james/WithCassandraBlobStoreTest.java | 7 +-
.../CassandraSchemaVersionStartUpCheckTest.java | 9 +-
.../apache/james/CassandraLdapJamesServerMain.java | 8 +-
.../apache/james/CassandraLdapJamesServerTest.java | 7 +-
.../james/CassandraLdapJmapJamesServerTest.java | 7 +-
.../james/CassandraRabbitMQJamesConfiguration.java | 28 +++-
.../james/CassandraRabbitMQJamesServerMain.java | 4 +-
.../james/CassandraRabbitMQAwsS3JmapTestRule.java | 1 +
.../james/CassandraRabbitMQJamesServerFixture.java | 1 +
.../james/CassandraRabbitMQSwiftJmapTestRule.java | 1 +
.../java/org/apache/james/WithCacheExtension.java | 1 +
.../org/apache/james/WithCassandraBlobStore.java | 1 +
...nsion.java => WithScanningSearchExtension.java} | 8 +-
.../org/apache/james/WithScanningSearchTest.java} | 19 +--
.../CassandraRabbitMQLdapJamesServerMain.java | 6 +-
.../CassandraRabbitMQLdapJmapJamesServerTest.java | 1 +
.../jmap/cassandra/CassandraImapErrorTest.java | 9 +-
.../jmap/cassandra/CassandraSendMDNMethodTest.java | 9 +-
.../CassandraSpamAssassinContractTest.java | 9 +-
.../jmap/cassandra/cucumber/CassandraStepdefs.java | 6 +-
.../rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java | 2 +
.../RabbitMQAwsS3SpamAssassinContractTest.java | 2 +
.../cucumber/awss3/RabbitMQAwsS3Stepdefs.java | 2 +
.../distributed/DistributedAuthenticationTest.java | 2 +
.../distributed/DistributedEchoMethodTest.java | 2 +
.../rabbitmq/ConsistencyTasksIntegrationTest.java | 2 +
.../rabbitmq/FixingGhostMailboxTest.java | 2 +
.../rabbitmq/RabbitMQAuthorizedEndpointsTest.java | 2 +
.../RabbitMQEventDeadLettersIntegrationTest.java | 2 +
...stViewProjectionHealthCheckIntegrationTest.java | 2 +
.../rabbitmq/RabbitMQForwardIntegrationTest.java | 2 +
.../rabbitmq/RabbitMQJmapExtension.java | 2 +
.../rabbitmq/RabbitMQJwtFilterIntegrationTest.java | 2 +
...RabbitMQReindexingWithEventDeadLettersTest.java | 2 +
.../RabbitMQWebAdminServerIntegrationTest.java | 2 +
...dminServerTaskSerializationIntegrationTest.java | 2 +
...RabbitMQDeletedMessageVaultIntegrationTest.java | 2 +
...LinshareBlobExportMechanismIntegrationTest.java | 2 +
58 files changed, 512 insertions(+), 89 deletions(-)
diff --git a/server/container/guice/cassandra-guice/pom.xml b/server/container/guice/cassandra-guice/pom.xml
index 8526e09..01c7a62 100644
--- a/server/container/guice/cassandra-guice/pom.xml
+++ b/server/container/guice/cassandra-guice/pom.xml
@@ -95,6 +95,10 @@
</dependency>
<dependency>
<groupId>${james.groupId}</groupId>
+ <artifactId>apache-james-mailbox-quota-search-scanning</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${james.groupId}</groupId>
<artifactId>apache-james-mailbox-tika</artifactId>
<type>test-jar</type>
<scope>test</scope>
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesConfiguration.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerConfiguration.java
similarity index 74%
copy from server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesConfiguration.java
copy to server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerConfiguration.java
index 83c2b7e..30478c0 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesConfiguration.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerConfiguration.java
@@ -24,7 +24,6 @@ import java.util.Optional;
import org.apache.james.filesystem.api.FileSystem;
import org.apache.james.filesystem.api.JamesDirectoriesProvider;
-import org.apache.james.modules.blobstore.BlobStoreConfiguration;
import org.apache.james.server.core.JamesServerResourceLoader;
import org.apache.james.server.core.MissingArgumentException;
import org.apache.james.server.core.configuration.Configuration;
@@ -33,16 +32,16 @@ import org.apache.james.utils.PropertiesProvider;
import com.github.fge.lambdas.Throwing;
-public class CassandraRabbitMQJamesConfiguration implements Configuration {
+public class CassandraJamesServerConfiguration implements Configuration {
public static class Builder {
- private Optional<BlobStoreConfiguration> blobStoreConfiguration;
+ private Optional<SearchConfiguration> searchConfiguration;
private Optional<String> rootDirectory;
private Optional<ConfigurationPath> configurationPath;
private Builder() {
rootDirectory = Optional.empty();
configurationPath = Optional.empty();
- blobStoreConfiguration = Optional.empty();
+ searchConfiguration = Optional.empty();
}
public Builder workingDirectory(String path) {
@@ -73,37 +72,36 @@ public class CassandraRabbitMQJamesConfiguration implements Configuration {
return this;
}
- public Builder blobStore(BlobStoreConfiguration blobStoreConfiguration) {
- this.blobStoreConfiguration = Optional.of(blobStoreConfiguration);
+ public Builder searchConfiguration(SearchConfiguration searchConfiguration) {
+ this.searchConfiguration = Optional.of(searchConfiguration);
return this;
}
- public CassandraRabbitMQJamesConfiguration build() {
+ public CassandraJamesServerConfiguration build() {
ConfigurationPath configurationPath = this.configurationPath.orElse(new ConfigurationPath(FileSystem.FILE_PROTOCOL_AND_CONF));
JamesServerResourceLoader directories = new JamesServerResourceLoader(rootDirectory
.orElseThrow(() -> new MissingArgumentException("Server needs a working.directory env entry")));
- return new CassandraRabbitMQJamesConfiguration(
- configurationPath,
- directories,
- blobStoreConfiguration.orElseGet(Throwing.supplier(
- () -> BlobStoreConfiguration.parse(
- new PropertiesProvider(new FileSystemImpl(directories), configurationPath)))));
+ SearchConfiguration searchConfiguration = this.searchConfiguration.orElseGet(Throwing.supplier(
+ () -> SearchConfiguration.parse(
+ new PropertiesProvider(new FileSystemImpl(directories), configurationPath))));
+
+ return new CassandraJamesServerConfiguration(configurationPath, directories, searchConfiguration);
}
}
- public static CassandraRabbitMQJamesConfiguration.Builder builder() {
+ public static CassandraJamesServerConfiguration.Builder builder() {
return new Builder();
}
private final ConfigurationPath configurationPath;
private final JamesDirectoriesProvider directories;
- private final BlobStoreConfiguration blobStoreConfiguration;
+ private final SearchConfiguration searchConfiguration;
- public CassandraRabbitMQJamesConfiguration(ConfigurationPath configurationPath, JamesDirectoriesProvider directories, BlobStoreConfiguration blobStoreConfiguration) {
+ private CassandraJamesServerConfiguration(ConfigurationPath configurationPath, JamesDirectoriesProvider directories, SearchConfiguration searchConfiguration) {
this.configurationPath = configurationPath;
this.directories = directories;
- this.blobStoreConfiguration = blobStoreConfiguration;
+ this.searchConfiguration = searchConfiguration;
}
@Override
@@ -116,7 +114,7 @@ public class CassandraRabbitMQJamesConfiguration implements Configuration {
return directories;
}
- public BlobStoreConfiguration blobStoreConfiguration() {
- return blobStoreConfiguration;
+ public SearchConfiguration searchConfiguration() {
+ return searchConfiguration;
}
}
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
index bef678e..934538e 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
@@ -42,8 +42,6 @@ import org.apache.james.modules.mailbox.CassandraDeletedMessageVaultModule;
import org.apache.james.modules.mailbox.CassandraMailboxModule;
import org.apache.james.modules.mailbox.CassandraQuotaMailingModule;
import org.apache.james.modules.mailbox.CassandraSessionModule;
-import org.apache.james.modules.mailbox.ElasticSearchClientModule;
-import org.apache.james.modules.mailbox.ElasticSearchMailboxModule;
import org.apache.james.modules.mailbox.TikaMailboxModule;
import org.apache.james.modules.metrics.CassandraMetricsModule;
import org.apache.james.modules.protocols.IMAPServerModule;
@@ -65,7 +63,6 @@ import org.apache.james.modules.server.MailRepositoriesRoutesModule;
import org.apache.james.modules.server.MailboxRoutesModule;
import org.apache.james.modules.server.MailboxesExportRoutesModule;
import org.apache.james.modules.server.MessagesRoutesModule;
-import org.apache.james.modules.server.ReIndexingModule;
import org.apache.james.modules.server.SieveRoutesModule;
import org.apache.james.modules.server.SwaggerRoutesModule;
import org.apache.james.modules.server.TaskManagerModule;
@@ -75,7 +72,6 @@ import org.apache.james.modules.spamassassin.SpamAssassinListenerModule;
import org.apache.james.modules.vault.DeletedMessageVaultRoutesModule;
import org.apache.james.modules.webadmin.CassandraRoutesModule;
import org.apache.james.modules.webadmin.InconsistencySolvingRoutesModule;
-import org.apache.james.server.core.configuration.Configuration;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Module;
@@ -97,7 +93,6 @@ public class CassandraJamesServerMain implements JamesServerMain {
new MailboxRoutesModule(),
new MailQueueRoutesModule(),
new MailRepositoriesRoutesModule(),
- new ReIndexingModule(),
new SieveRoutesModule(),
new SwaggerRoutesModule(),
new WebAdminServerModule(),
@@ -138,6 +133,7 @@ public class CassandraJamesServerMain implements JamesServerMain {
new CassandraSessionModule(),
new CassandraSieveRepositoryModule(),
new CassandraUsersRepositoryModule(),
+ new ElasticSearchMetricReporterModule(),
BLOB_MODULE,
CASSANDRA_EVENT_STORE_JSON_SERIALIZATION_DEFAULT_MODULE);
@@ -145,9 +141,6 @@ public class CassandraJamesServerMain implements JamesServerMain {
new CassandraConsistencyTaskSerializationModule(),
new CassandraMailboxModule(),
new CassandraDeletedMessageVaultModule(),
- new ElasticSearchClientModule(),
- new ElasticSearchMailboxModule(),
- new ElasticSearchMetricReporterModule(),
new MailboxModule(),
new TikaMailboxModule(),
new SpamAssassinListenerModule());
@@ -167,7 +160,7 @@ public class CassandraJamesServerMain implements JamesServerMain {
);
public static void main(String[] args) throws Exception {
- Configuration configuration = Configuration.builder()
+ CassandraJamesServerConfiguration configuration = CassandraJamesServerConfiguration.builder()
.useWorkingDirectoryEnvProperty()
.build();
@@ -178,8 +171,9 @@ public class CassandraJamesServerMain implements JamesServerMain {
JamesServerMain.main(server);
}
- public static GuiceJamesServer createServer(Configuration configuration) {
+ public static GuiceJamesServer createServer(CassandraJamesServerConfiguration configuration) {
return GuiceJamesServer.forConfiguration(configuration)
- .combineWith(ALL_BUT_JMX_CASSANDRA_MODULE);
+ .combineWith(ALL_BUT_JMX_CASSANDRA_MODULE)
+ .combineWith(SearchModuleChooser.chooseModules(configuration.searchConfiguration()));
}
}
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/SearchConfiguration.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/SearchConfiguration.java
new file mode 100644
index 0000000..9bc4f5c
--- /dev/null
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/SearchConfiguration.java
@@ -0,0 +1,76 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james;
+
+import static org.apache.james.modules.mailbox.ElasticSearchMailboxModule.ELASTICSEARCH_CONFIGURATION_NAME;
+
+import java.io.FileNotFoundException;
+
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.ex.ConfigurationException;
+import org.apache.james.utils.PropertiesProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class SearchConfiguration {
+
+ public enum Implementation {
+ Scanning,
+ ElasticSearch
+ }
+
+ public static SearchConfiguration parse(PropertiesProvider propertiesProvider) throws ConfigurationException {
+ try {
+ Configuration configuration = propertiesProvider.getConfiguration(ELASTICSEARCH_CONFIGURATION_NAME);
+ return SearchConfiguration.from(configuration);
+ } catch (FileNotFoundException e) {
+ LOGGER.warn("Could not find {} configuration file, enabling elasticsearch by default", ELASTICSEARCH_CONFIGURATION_NAME);
+ return elasticSearch();
+ }
+ }
+
+ static SearchConfiguration from(Configuration configuration) {
+ if (configuration.getBoolean("enabled", true)) {
+ return elasticSearch();
+ }
+ return scanning();
+ }
+
+ public static SearchConfiguration scanning() {
+ return new SearchConfiguration(Implementation.Scanning);
+ }
+
+ public static SearchConfiguration elasticSearch() {
+ return new SearchConfiguration(Implementation.ElasticSearch);
+ }
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(SearchConfiguration.class);
+
+
+ private final Implementation implementation;
+
+ public SearchConfiguration(Implementation implementation) {
+ this.implementation = implementation;
+ }
+
+ public Implementation getImplementation() {
+ return implementation;
+ }
+}
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
new file mode 100644
index 0000000..b6713f3
--- /dev/null
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/SearchModuleChooser.java
@@ -0,0 +1,154 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james;
+
+import java.util.Collection;
+import java.util.EnumSet;
+import java.util.List;
+import java.util.stream.Stream;
+
+import javax.mail.Flags;
+
+import org.apache.commons.lang3.NotImplementedException;
+import org.apache.james.mailbox.MailboxManager;
+import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.events.Group;
+import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Mailbox;
+import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.model.SearchQuery;
+import org.apache.james.mailbox.model.UpdatedFlags;
+import org.apache.james.mailbox.store.mail.model.MailboxMessage;
+import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex;
+import org.apache.james.mailbox.store.search.MessageSearchIndex;
+import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
+import org.apache.james.modules.mailbox.ElasticSearchClientModule;
+import org.apache.james.modules.mailbox.ElasticSearchMailboxModule;
+import org.apache.james.modules.server.ReIndexingModule;
+import org.apache.james.quota.search.QuotaSearcher;
+import org.apache.james.quota.search.scanning.ScanningQuotaSearcher;
+
+import com.google.common.collect.ImmutableList;
+import com.google.inject.AbstractModule;
+import com.google.inject.Module;
+import com.google.inject.Scopes;
+
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+public class SearchModuleChooser {
+ private static class ScanningQuotaSearchModule extends AbstractModule {
+ @Override
+ protected void configure() {
+ bind(ScanningQuotaSearcher.class).in(Scopes.SINGLETON);
+ bind(QuotaSearcher.class).to(ScanningQuotaSearcher.class);
+ }
+ }
+
+ // 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);
+ }
+
+ @Override
+ public Mono<Void> add(MailboxSession session, Mailbox mailbox, MailboxMessage message) {
+ throw new NotImplementedException("not implemented");
+ }
+
+ @Override
+ public Mono<Void> delete(MailboxSession session, Mailbox mailbox, Collection<MessageUid> expungedUids) {
+ throw new NotImplementedException("not implemented");
+ }
+
+ @Override
+ public Mono<Void> deleteAll(MailboxSession session, MailboxId mailboxId) {
+ throw new NotImplementedException("not implemented");
+ }
+
+ @Override
+ public Mono<Void> update(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> updatedFlagsList) {
+ throw new NotImplementedException("not implemented");
+ }
+
+ @Override
+ public Mono<Flags> retrieveIndexedFlags(Mailbox mailbox, MessageUid uid) {
+ throw new NotImplementedException("not implemented");
+ }
+
+ @Override
+ public Group getDefaultGroup() {
+ return GROUP;
+ }
+
+ @Override
+ public Stream<MessageUid> search(MailboxSession session, Mailbox mailbox, SearchQuery searchQuery) throws MailboxException {
+ throw new NotImplementedException("not implemented");
+ }
+
+ @Override
+ public Flux<MessageId> search(MailboxSession session, Collection<MailboxId> mailboxIds, SearchQuery searchQuery, long limit) {
+ throw new NotImplementedException("not implemented");
+ }
+
+ @Override
+ public EnumSet<MailboxManager.SearchCapabilities> getSupportedCapabilities(EnumSet<MailboxManager.MessageCapabilities> messageCapabilities) {
+ throw new NotImplementedException("not implemented");
+ }
+
+ @Override
+ public ExecutionMode getExecutionMode() {
+ throw new NotImplementedException("not implemented");
+ }
+ }
+
+ private static class ScanningSearchModule extends AbstractModule {
+ @Override
+ protected void configure() {
+ bind(MessageSearchIndex.class).to(SimpleMessageSearchIndex.class);
+ bind(FakeMessageSearchIndex.class).in(Scopes.SINGLETON);
+ bind(ListeningMessageSearchIndex.class).to(FakeMessageSearchIndex.class);
+ }
+ }
+
+ public static List<Module> chooseModules(SearchConfiguration searchConfiguration) {
+ switch (searchConfiguration.getImplementation()) {
+ case ElasticSearch:
+ return ImmutableList.of(
+ new ElasticSearchClientModule(),
+ new ElasticSearchMailboxModule(),
+ new ReIndexingModule());
+ case Scanning:
+ return ImmutableList.of(
+ new ScanningQuotaSearchModule(),
+ new ScanningSearchModule());
+ default:
+ throw new RuntimeException("Unsupported search implementation " + searchConfiguration.getImplementation());
+ }
+ }
+}
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 4d8b3a9..9a5fd68 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,7 +43,12 @@ class AuthenticatedCassandraJamesServerTest {
@Nested
class AuthenticationTest implements JamesServerContract {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(cassandraExtension)
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
@@ -59,7 +64,12 @@ class AuthenticatedCassandraJamesServerTest {
@Nested
class SslTest {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(cassandraExtension)
.disableAutoStart()
@@ -84,7 +94,12 @@ class AuthenticatedCassandraJamesServerTest {
@Nested
class AuthenticationFailureTest {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(cassandraExtension)
.disableAutoStart()
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CacheSessionTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CacheSessionTest.java
index 7e2c394..24dfdf3 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CacheSessionTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CacheSessionTest.java
@@ -72,7 +72,12 @@ class CacheSessionTest {
}
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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/CassandraJamesServerTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJamesServerTest.java
index 9ad366a..cab7b20 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,7 +30,12 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraJamesServerTest implements JamesServerContract {
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 70befac..69fe6a7 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,7 +27,12 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraJmapJamesServerTest implements JmapJamesServerContract {
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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/CassandraJmapTestRule.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java
index 87cbe45..6a34304 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraJmapTestRule.java
@@ -23,7 +23,6 @@ import java.io.IOException;
import org.apache.james.modules.TestDockerESMetricReporterModule;
import org.apache.james.modules.TestJMAPServerModule;
-import org.apache.james.server.core.configuration.Configuration;
import org.apache.james.webadmin.WebAdminConfiguration;
import org.junit.rules.TemporaryFolder;
import org.junit.rules.TestRule;
@@ -55,9 +54,10 @@ public class CassandraJmapTestRule implements TestRule {
}
public GuiceJamesServer jmapServer(Module... additionals) throws IOException {
- Configuration configuration = Configuration.builder()
+ CassandraJamesServerConfiguration configuration = CassandraJamesServerConfiguration.builder()
.workingDirectory(temporaryFolder.newFolder())
.configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build();
return 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 5cacc6f..88f0c7b 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,7 +47,12 @@ class CassandraMailRepositoryIntegrationTest {
private SMTPMessageSender smtpMessageSender = new SMTPMessageSender("other.com");
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 eef7607..49378ba 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,7 +33,12 @@ import com.google.inject.multibindings.Multibinder;
class CassandraMessageIdManagerInjectionTest {
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 a44e56c..b9bd416 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,7 +42,12 @@ class CassandraNodeConfTest {
private static final int CASSANDRA_PORT = 9042;
private static JamesServerBuilder extensionBuilder() {
- return new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ return new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 4d822c6..db503ed 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
@@ -25,7 +25,12 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraWithTikaTest implements JamesServerContract {
@RegisterExtension
static JamesServerExtension testExtension =
- new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 bd3a158..7bca678 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,7 +33,12 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class DefaultCassandraJamesServerTest {
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 0d244df..50a1fd4 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,7 +61,12 @@ class ESReporterTest {
static final DockerElasticSearchExtension elasticSearchExtension = new DockerElasticSearchExtension();
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 23d5767..12fd2a1 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,7 +36,12 @@ class JamesCapabilitiesServerTest {
private static final MailboxManager mailboxManager = mock(MailboxManager.class);
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 c376ea2..387c2fc 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,7 +46,12 @@ class JamesServerWithRetryConnectionTest {
private static final CassandraExtension dockerCassandra = new CassandraExtension();
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 479053b..e6021a2 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,7 +37,12 @@ class JamesWithNonCompatibleElasticSearchServerTest {
static DockerElasticSearch dockerES2 = new DockerElasticSearch.NoAuth(Images.ELASTICSEARCH_2);
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 c7a2c3f..8adcc62 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,7 +33,12 @@ class KeyspaceCreationTest {
@Nested
class CreateWhenKeyspaceExists {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
@@ -54,7 +59,12 @@ class KeyspaceCreationTest {
@Nested
class CreateWhenDoesNotExistAndHasRights {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
@@ -81,7 +91,12 @@ class KeyspaceCreationTest {
@Nested
class CreateWhenDoesNotExistAndDoNotHaveRights {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
@@ -108,7 +123,12 @@ class KeyspaceCreationTest {
@Nested
class StartWhenKeyspaceDoesNotExist {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
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 86cdfc2..c86d4d8 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,7 +27,12 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
@RegisterExtension
- static JamesServerExtension jamesServerExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension jamesServerExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.extension(new SpamAssassinModuleExtension())
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/CassandraSchemaVersionStartUpCheckTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/CassandraSchemaVersionStartUpCheckTest.java
index a4a8a36..d1402e9 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/CassandraSchemaVersionStartUpCheckTest.java
+++ b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/CassandraSchemaVersionStartUpCheckTest.java
@@ -31,11 +31,13 @@ import java.nio.charset.Charset;
import java.util.Optional;
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.StartUpChecksPerformer.StartUpChecksException;
import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionDAO;
import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionManager;
@@ -57,7 +59,12 @@ class CassandraSchemaVersionStartUpCheckTest {
private static CassandraSchemaVersionDAO versionDAO = mock(CassandraSchemaVersionDAO.class);
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/CassandraLdapJamesServerMain.java b/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/CassandraLdapJamesServerMain.java
index ce1c6ac..42a8752 100644
--- a/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/CassandraLdapJamesServerMain.java
+++ b/server/container/guice/cassandra-ldap-guice/src/main/java/org/apache/james/CassandraLdapJamesServerMain.java
@@ -23,7 +23,6 @@ import static org.apache.james.CassandraJamesServerMain.ALL_BUT_JMX_CASSANDRA_MO
import org.apache.james.data.LdapUsersRepositoryModule;
import org.apache.james.modules.server.JMXServerModule;
-import org.apache.james.server.core.configuration.Configuration;
import com.google.inject.Module;
import com.google.inject.util.Modules;
@@ -33,7 +32,7 @@ public class CassandraLdapJamesServerMain implements JamesServerMain {
.with(new LdapUsersRepositoryModule());
public static void main(String[] args) throws Exception {
- Configuration configuration = Configuration.builder()
+ CassandraJamesServerConfiguration configuration = CassandraJamesServerConfiguration.builder()
.useWorkingDirectoryEnvProperty()
.build();
@@ -44,8 +43,9 @@ public class CassandraLdapJamesServerMain implements JamesServerMain {
JamesServerMain.main(server);
}
- static GuiceJamesServer createServer(Configuration configuration) {
+ static GuiceJamesServer createServer(CassandraJamesServerConfiguration configuration) {
return GuiceJamesServer.forConfiguration(configuration)
- .combineWith(MODULES);
+ .combineWith(MODULES)
+ .combineWith(SearchModuleChooser.chooseModules(configuration.searchConfiguration()));
}
}
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 f1fba58..8c20b54 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,7 +53,12 @@ class CassandraLdapJamesServerTest implements JamesServerContract {
SMTPMessageSender messageSender = new SMTPMessageSender(Domain.LOCALHOST.asString());
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 3bbb46a..ccf7097 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,7 +25,12 @@ import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraLdapJmapJamesServerTest implements JmapJamesServerContract {
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.extension(new LdapTestExtension())
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesConfiguration.java b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesConfiguration.java
index 83c2b7e..c252ef2 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesConfiguration.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesConfiguration.java
@@ -35,11 +35,13 @@ import com.github.fge.lambdas.Throwing;
public class CassandraRabbitMQJamesConfiguration implements Configuration {
public static class Builder {
+ private Optional<SearchConfiguration> searchConfiguration;
private Optional<BlobStoreConfiguration> blobStoreConfiguration;
private Optional<String> rootDirectory;
private Optional<ConfigurationPath> configurationPath;
private Builder() {
+ searchConfiguration = Optional.empty();
rootDirectory = Optional.empty();
configurationPath = Optional.empty();
blobStoreConfiguration = Optional.empty();
@@ -78,17 +80,29 @@ public class CassandraRabbitMQJamesConfiguration implements Configuration {
return this;
}
+ public Builder searchConfiguration(SearchConfiguration searchConfiguration) {
+ this.searchConfiguration = Optional.of(searchConfiguration);
+ return this;
+ }
+
+
public CassandraRabbitMQJamesConfiguration build() {
ConfigurationPath configurationPath = this.configurationPath.orElse(new ConfigurationPath(FileSystem.FILE_PROTOCOL_AND_CONF));
JamesServerResourceLoader directories = new JamesServerResourceLoader(rootDirectory
.orElseThrow(() -> new MissingArgumentException("Server needs a working.directory env entry")));
+ BlobStoreConfiguration blobStoreConfiguration = this.blobStoreConfiguration.orElseGet(Throwing.supplier(
+ () -> BlobStoreConfiguration.parse(
+ new PropertiesProvider(new FileSystemImpl(directories), configurationPath))));
+
+ SearchConfiguration searchConfiguration = this.searchConfiguration.orElseGet(Throwing.supplier(
+ () -> SearchConfiguration.parse(
+ new PropertiesProvider(new FileSystemImpl(directories), configurationPath))));
+
return new CassandraRabbitMQJamesConfiguration(
configurationPath,
directories,
- blobStoreConfiguration.orElseGet(Throwing.supplier(
- () -> BlobStoreConfiguration.parse(
- new PropertiesProvider(new FileSystemImpl(directories), configurationPath)))));
+ blobStoreConfiguration, searchConfiguration);
}
}
@@ -99,11 +113,13 @@ public class CassandraRabbitMQJamesConfiguration implements Configuration {
private final ConfigurationPath configurationPath;
private final JamesDirectoriesProvider directories;
private final BlobStoreConfiguration blobStoreConfiguration;
+ private final SearchConfiguration searchConfiguration;
- public CassandraRabbitMQJamesConfiguration(ConfigurationPath configurationPath, JamesDirectoriesProvider directories, BlobStoreConfiguration blobStoreConfiguration) {
+ public CassandraRabbitMQJamesConfiguration(ConfigurationPath configurationPath, JamesDirectoriesProvider directories, BlobStoreConfiguration blobStoreConfiguration, SearchConfiguration searchConfiguration) {
this.configurationPath = configurationPath;
this.directories = directories;
this.blobStoreConfiguration = blobStoreConfiguration;
+ this.searchConfiguration = searchConfiguration;
}
@Override
@@ -119,4 +135,8 @@ public class CassandraRabbitMQJamesConfiguration implements Configuration {
public BlobStoreConfiguration blobStoreConfiguration() {
return blobStoreConfiguration;
}
+
+ public SearchConfiguration searchConfiguration() {
+ return searchConfiguration;
+ }
}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java
index 38a1816..2e40639 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/CassandraRabbitMQJamesServerMain.java
@@ -53,10 +53,12 @@ public class CassandraRabbitMQJamesServerMain implements JamesServerMain {
public static GuiceJamesServer createServer(CassandraRabbitMQJamesConfiguration configuration) {
BlobStoreConfiguration blobStoreConfiguration = configuration.blobStoreConfiguration();
+ SearchConfiguration searchConfiguration = configuration.searchConfiguration();
return GuiceJamesServer.forConfiguration(configuration)
.combineWith(MODULES)
.combineWith(BlobStoreModulesChooser.chooseModules(blobStoreConfiguration))
- .combineWith(BlobStoreCacheModulesChooser.chooseModules(blobStoreConfiguration));
+ .combineWith(BlobStoreCacheModulesChooser.chooseModules(blobStoreConfiguration))
+ .combineWith(SearchModuleChooser.chooseModules(searchConfiguration));
}
}
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQAwsS3JmapTestRule.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQAwsS3JmapTestRule.java
index ccd7ae5..0fe2807 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQAwsS3JmapTestRule.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQAwsS3JmapTestRule.java
@@ -63,6 +63,7 @@ public class CassandraRabbitMQAwsS3JmapTestRule implements TestRule {
.workingDirectory(temporaryFolder.newFolder())
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build();
return CassandraRabbitMQJamesServerMain.createServer(configuration)
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQJamesServerFixture.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQJamesServerFixture.java
index 3d220f0..264faac 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQJamesServerFixture.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQJamesServerFixture.java
@@ -41,6 +41,7 @@ public class CassandraRabbitMQJamesServerFixture {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQSwiftJmapTestRule.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQSwiftJmapTestRule.java
index cf4d2b4..ae2891a 100644
--- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQSwiftJmapTestRule.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/CassandraRabbitMQSwiftJmapTestRule.java
@@ -62,6 +62,7 @@ public class CassandraRabbitMQSwiftJmapTestRule implements TestRule {
.workingDirectory(temporaryFolder.newFolder())
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build();
return CassandraRabbitMQJamesServerMain.createServer(configuration)
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/WithCacheExtension.java
index 85891e6..0df288c 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/WithCacheExtension.java
@@ -43,6 +43,7 @@ public class WithCacheExtension implements BeforeAllCallback, AfterAllCallback,
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().enableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
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
index bcb5118..36f9889 100644
--- 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
@@ -42,6 +42,7 @@ public class WithCassandraBlobStore implements BeforeAllCallback, AfterAllCallba
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.cassandra())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
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/WithScanningSearchExtension.java
similarity index 93%
copy from server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithCacheExtension.java
copy to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchExtension.java
index 85891e6..01088b7 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/WithScanningSearchExtension.java
@@ -33,18 +33,18 @@ import org.junit.jupiter.api.extension.ParameterContext;
import org.junit.jupiter.api.extension.ParameterResolutionException;
import org.junit.jupiter.api.extension.ParameterResolver;
-public class WithCacheExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
+public class WithScanningSearchExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, ParameterResolver {
private final JamesServerExtension jamesServerExtension;
- WithCacheExtension() {
+ WithScanningSearchExtension() {
jamesServerExtension = new JamesServerBuilder<CassandraRabbitMQJamesConfiguration>(tmpDir ->
CassandraRabbitMQJamesConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
- .blobStore(BlobStoreConfiguration.objectStorage().enableCache())
+ .blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.scanning())
.build())
- .extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.extension(new RabbitMQExtension())
.extension(new AwsS3BlobStoreExtension())
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraWithTikaTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchTest.java
similarity index 62%
copy from server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraWithTikaTest.java
copy to server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchTest.java
index 4d822c6..ec30cc9 100644
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/CassandraWithTikaTest.java
+++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/WithScanningSearchTest.java
@@ -19,18 +19,9 @@
package org.apache.james;
-import org.apache.james.modules.TestJMAPServerModule;
-import org.junit.jupiter.api.extension.RegisterExtension;
+import org.apache.james.jmap.draft.JmapJamesServerContract;
+import org.junit.jupiter.api.extension.ExtendWith;
-class CassandraWithTikaTest implements JamesServerContract {
- @RegisterExtension
- static JamesServerExtension testExtension =
- new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
- .extension(new CassandraExtension())
- .extension(new TikaExtension())
- .extension(new DockerElasticSearchExtension())
- .server(configuration -> CassandraJamesServerMain.createServer(configuration)
- .overrideWith(new TestJMAPServerModule())
- .overrideWith(DOMAIN_LIST_CONFIGURATION_MODULE))
- .build();
-}
+@ExtendWith(WithScanningSearchExtension.class)
+class WithScanningSearchTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {
+}
\ No newline at end of file
diff --git a/server/container/guice/cassandra-rabbitmq-ldap-guice/src/main/java/org/apache/james/CassandraRabbitMQLdapJamesServerMain.java b/server/container/guice/cassandra-rabbitmq-ldap-guice/src/main/java/org/apache/james/CassandraRabbitMQLdapJamesServerMain.java
index d91eb1c..0fc0c34 100644
--- a/server/container/guice/cassandra-rabbitmq-ldap-guice/src/main/java/org/apache/james/CassandraRabbitMQLdapJamesServerMain.java
+++ b/server/container/guice/cassandra-rabbitmq-ldap-guice/src/main/java/org/apache/james/CassandraRabbitMQLdapJamesServerMain.java
@@ -29,7 +29,7 @@ import com.google.inject.Module;
import com.google.inject.util.Modules;
public class CassandraRabbitMQLdapJamesServerMain implements JamesServerMain {
- public static final Module MODULES = Modules
+ private static final Module MODULES = Modules
.override(CassandraRabbitMQJamesServerMain.MODULES)
.with(new LdapUsersRepositoryModule());
@@ -47,10 +47,12 @@ public class CassandraRabbitMQLdapJamesServerMain implements JamesServerMain {
public static GuiceJamesServer createServer(CassandraRabbitMQJamesConfiguration configuration) {
BlobStoreConfiguration blobStoreConfiguration = configuration.blobStoreConfiguration();
+ SearchConfiguration searchConfiguration = configuration.searchConfiguration();
return GuiceJamesServer.forConfiguration(configuration)
.combineWith(MODULES)
.combineWith(BlobStoreModulesChooser.chooseModules(blobStoreConfiguration))
- .combineWith(BlobStoreCacheModulesChooser.chooseModules(blobStoreConfiguration));
+ .combineWith(BlobStoreCacheModulesChooser.chooseModules(blobStoreConfiguration))
+ .combineWith(SearchModuleChooser.chooseModules(searchConfiguration));
}
}
diff --git a/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java b/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
index 192adbc..ae150ca 100644
--- a/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
+++ b/server/container/guice/cassandra-rabbitmq-ldap-guice/src/test/java/org/apache/james/CassandraRabbitMQLdapJmapJamesServerTest.java
@@ -85,6 +85,7 @@ class CassandraRabbitMQLdapJmapJamesServerTest {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(blobStoreConfiguration)
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
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 fe81740..e4261ab 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,11 +26,13 @@ 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.jmap.draft.JmapGuiceProbe;
import org.apache.james.modules.TestJMAPServerModule;
import org.apache.james.modules.protocols.ImapGuiceProbe;
@@ -47,7 +49,12 @@ class CassandraImapErrorTest {
private final CassandraExtension cassandraExtension = new CassandraExtension();
@RegisterExtension
- JamesServerExtension serverExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ JamesServerExtension serverExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 97b78de..1a171d3 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,10 +20,12 @@
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.jmap.draft.methods.integration.SendMDNMethodTest;
import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
import org.apache.james.mailbox.model.MessageId;
@@ -33,7 +35,12 @@ import org.junit.jupiter.api.extension.RegisterExtension;
public class CassandraSendMDNMethodTest extends SendMDNMethodTest {
@RegisterExtension
- JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.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 429f47a..c06f44b 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,10 +19,12 @@
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.jmap.draft.methods.integration.SpamAssassinContract;
import org.apache.james.jmap.draft.methods.integration.SpamAssassinModuleExtension;
import org.apache.james.modules.TestJMAPServerModule;
@@ -33,7 +35,12 @@ class CassandraSpamAssassinContractTest implements SpamAssassinContract {
private static final SpamAssassinModuleExtension spamAssassinExtension = new SpamAssassinModuleExtension();
@RegisterExtension
- static JamesServerExtension testExtension = new JamesServerBuilder<>(JamesServerBuilder.defaultConfigurationProvider())
+ static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
+ CassandraJamesServerConfiguration.builder()
+ .workingDirectory(tmpDir)
+ .configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
+ .build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.extension(spamAssassinExtension)
diff --git a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java
index cde2a08..a9fdcab 100644
--- a/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java
+++ b/server/protocols/jmap-draft-integration-testing/cassandra-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/cassandra/cucumber/CassandraStepdefs.java
@@ -25,10 +25,12 @@ import javax.inject.Inject;
import org.apache.activemq.store.PersistenceAdapter;
import org.apache.activemq.store.memory.MemoryPersistenceAdapter;
+import org.apache.james.CassandraJamesServerConfiguration;
import org.apache.james.CassandraJamesServerMain;
import org.apache.james.CleanupTasksPerformer;
import org.apache.james.DockerCassandraRule;
import org.apache.james.DockerElasticSearchRule;
+import org.apache.james.SearchConfiguration;
import org.apache.james.jmap.draft.methods.integration.cucumber.ImapStepdefs;
import org.apache.james.jmap.draft.methods.integration.cucumber.MainStepdefs;
import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
@@ -37,7 +39,6 @@ import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
import org.apache.james.modules.TestDockerESMetricReporterModule;
import org.apache.james.modules.TestJMAPServerModule;
import org.apache.james.server.CassandraTruncateTableTask;
-import org.apache.james.server.core.configuration.Configuration;
import org.junit.rules.TemporaryFolder;
import com.github.fge.lambdas.runnable.ThrowingRunnable;
@@ -69,9 +70,10 @@ public class CassandraStepdefs {
elasticSearch.start();
mainStepdefs.messageIdFactory = new CassandraMessageId.Factory();
- Configuration configuration = Configuration.builder()
+ CassandraJamesServerConfiguration configuration = CassandraJamesServerConfiguration.builder()
.workingDirectory(temporaryFolder.newFolder())
.configurationFromClasspath()
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build();
mainStepdefs.jmapServer = CassandraJamesServerMain.createServer(configuration)
diff --git a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java
index 9f526b1..93506b8 100644
--- a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java
+++ b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SendMDNMethodTest.java
@@ -25,6 +25,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.jmap.draft.methods.integration.SendMDNMethodTest;
import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
import org.apache.james.mailbox.model.MessageId;
@@ -42,6 +43,7 @@ public class RabbitMQAwsS3SendMDNMethodTest extends SendMDNMethodTest {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SpamAssassinContractTest.java b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SpamAssassinContractTest.java
index e8f6fbe..b74ddc7 100644
--- a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SpamAssassinContractTest.java
+++ b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/RabbitMQAwsS3SpamAssassinContractTest.java
@@ -24,6 +24,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.jmap.draft.methods.integration.SpamAssassinContract;
import org.apache.james.jmap.draft.methods.integration.SpamAssassinModuleExtension;
import org.apache.james.modules.AwsS3BlobStoreExtension;
@@ -41,6 +42,7 @@ class RabbitMQAwsS3SpamAssassinContractTest implements SpamAssassinContract {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQAwsS3Stepdefs.java b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQAwsS3Stepdefs.java
index 846f808..19bdf2e 100644
--- a/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQAwsS3Stepdefs.java
+++ b/server/protocols/jmap-draft-integration-testing/rabbitmq-jmap-draft-integration-testing/src/test/java/org/apache/james/jmap/rabbitmq/cucumber/awss3/RabbitMQAwsS3Stepdefs.java
@@ -30,6 +30,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.CleanupTasksPerformer;
import org.apache.james.DockerCassandraRule;
import org.apache.james.DockerElasticSearchRule;
+import org.apache.james.SearchConfiguration;
import org.apache.james.jmap.draft.methods.integration.cucumber.ImapStepdefs;
import org.apache.james.jmap.draft.methods.integration.cucumber.MainStepdefs;
import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
@@ -81,6 +82,7 @@ public class RabbitMQAwsS3Stepdefs {
.workingDirectory(temporaryFolder.newFolder())
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build();
mainStepdefs.jmapServer = CassandraRabbitMQJamesServerMain.createServer(configuration)
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedAuthenticationTest.java b/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedAuthenticationTest.java
index 8ab8ee8..52f9764 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedAuthenticationTest.java
+++ b/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedAuthenticationTest.java
@@ -25,6 +25,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.jmap.rfc8621.contract.AuthenticationContract;
import org.apache.james.modules.AwsS3BlobStoreExtension;
import org.apache.james.modules.RabbitMQExtension;
@@ -39,6 +40,7 @@ class DistributedAuthenticationTest implements AuthenticationContract {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEchoMethodTest.java b/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEchoMethodTest.java
index 1e504db..9827396 100644
--- a/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEchoMethodTest.java
+++ b/server/protocols/jmap-rfc-8621-integration-tests/distributed-jmap-rfc-8621-integration-tests/src/test/java/org/apache/james/jmap/rfc8621/distributed/DistributedEchoMethodTest.java
@@ -25,6 +25,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.jmap.rfc8621.contract.EchoMethodContract;
import org.apache.james.modules.AwsS3BlobStoreExtension;
import org.apache.james.modules.RabbitMQExtension;
@@ -40,6 +41,7 @@ public class DistributedEchoMethodTest implements EchoMethodContract {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/ConsistencyTasksIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/ConsistencyTasksIntegrationTest.java
index 6d9335b..3a5c87a 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/ConsistencyTasksIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/ConsistencyTasksIntegrationTest.java
@@ -46,6 +46,7 @@ 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.backends.cassandra.Scenario.Barrier;
import org.apache.james.backends.cassandra.TestingSession;
import org.apache.james.backends.cassandra.init.SessionWithInitializedTablesFactory;
@@ -128,6 +129,7 @@ class ConsistencyTasksIntegrationTest {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/FixingGhostMailboxTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/FixingGhostMailboxTest.java
index 03bd915..bf73116 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/FixingGhostMailboxTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/FixingGhostMailboxTest.java
@@ -49,6 +49,7 @@ 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.backends.cassandra.init.ClusterFactory;
import org.apache.james.backends.cassandra.init.configuration.ClusterConfiguration;
import org.apache.james.core.Username;
@@ -115,6 +116,7 @@ class FixingGhostMailboxTest {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQAuthorizedEndpointsTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQAuthorizedEndpointsTest.java
index e4aeac4..afca267 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQAuthorizedEndpointsTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQAuthorizedEndpointsTest.java
@@ -25,6 +25,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.junit.categories.BasicFeature;
import org.apache.james.modules.AwsS3BlobStoreExtension;
import org.apache.james.modules.RabbitMQExtension;
@@ -44,6 +45,7 @@ class RabbitMQAuthorizedEndpointsTest extends AuthorizedEndpointsTest {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
index 0057187..70ec14c 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQEventDeadLettersIntegrationTest.java
@@ -44,6 +44,7 @@ import org.apache.james.GuiceJamesServer;
import org.apache.james.GuiceModuleTestExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.backends.rabbitmq.DockerRabbitMQ;
import org.apache.james.core.Username;
import org.apache.james.junit.categories.BasicFeature;
@@ -205,6 +206,7 @@ class RabbitMQEventDeadLettersIntegrationTest {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQFastViewProjectionHealthCheckIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQFastViewProjectionHealthCheckIntegrationTest.java
index 0871e29..45416a9 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQFastViewProjectionHealthCheckIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQFastViewProjectionHealthCheckIntegrationTest.java
@@ -25,6 +25,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.modules.AwsS3BlobStoreExtension;
import org.apache.james.modules.RabbitMQExtension;
import org.apache.james.modules.TestJMAPServerModule;
@@ -40,6 +41,7 @@ class RabbitMQFastViewProjectionHealthCheckIntegrationTest extends FastViewProje
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQForwardIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQForwardIntegrationTest.java
index b7b726a..e72de6d 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQForwardIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQForwardIntegrationTest.java
@@ -25,6 +25,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.modules.AwsS3BlobStoreExtension;
import org.apache.james.modules.RabbitMQExtension;
import org.apache.james.modules.TestJMAPServerModule;
@@ -40,6 +41,7 @@ class RabbitMQForwardIntegrationTest extends ForwardIntegrationTest {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQJmapExtension.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQJmapExtension.java
index 8790c35..da86d14 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQJmapExtension.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQJmapExtension.java
@@ -29,6 +29,7 @@ import org.apache.james.CleanupTasksPerformer;
import org.apache.james.DockerCassandraRule;
import org.apache.james.DockerElasticSearchRule;
import org.apache.james.GuiceJamesServer;
+import org.apache.james.SearchConfiguration;
import org.apache.james.backends.rabbitmq.DockerRabbitMQSingleton;
import org.apache.james.modules.TestDockerESMetricReporterModule;
import org.apache.james.modules.TestRabbitMQModule;
@@ -150,6 +151,7 @@ public class RabbitMQJmapExtension implements BeforeAllCallback, AfterAllCallbac
.workingDirectory(temporaryFolder.newFolder())
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build();
return CassandraRabbitMQJamesServerMain.createServer(configuration)
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQJwtFilterIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQJwtFilterIntegrationTest.java
index e3f68d2..fca871b 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQJwtFilterIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQJwtFilterIntegrationTest.java
@@ -25,6 +25,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.jwt.JwtConfiguration;
import org.apache.james.modules.AwsS3BlobStoreExtension;
import org.apache.james.modules.RabbitMQExtension;
@@ -42,6 +43,7 @@ class RabbitMQJwtFilterIntegrationTest extends JwtFilterIntegrationTest {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQReindexingWithEventDeadLettersTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQReindexingWithEventDeadLettersTest.java
index a16607b..fd3168a 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQReindexingWithEventDeadLettersTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQReindexingWithEventDeadLettersTest.java
@@ -39,6 +39,7 @@ 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.jmap.AccessToken;
import org.apache.james.jmap.LocalHostURIBuilder;
import org.apache.james.jmap.draft.JmapGuiceProbe;
@@ -87,6 +88,7 @@ class RabbitMQReindexingWithEventDeadLettersTest {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(dockerElasticSearch)
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationTest.java
index 44cb8dc..7162cb3 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerIntegrationTest.java
@@ -35,6 +35,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.backends.cassandra.versions.CassandraSchemaVersionManager;
import org.apache.james.junit.categories.BasicFeature;
import org.apache.james.modules.AwsS3BlobStoreExtension;
@@ -64,6 +65,7 @@ class RabbitMQWebAdminServerIntegrationTest extends WebAdminServerIntegrationTes
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java
index 753f992..f0775df 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/RabbitMQWebAdminServerTaskSerializationIntegrationTest.java
@@ -44,6 +44,7 @@ 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.backends.cassandra.versions.CassandraSchemaVersionManager;
import org.apache.james.backends.cassandra.versions.SchemaVersion;
import org.apache.james.core.Username;
@@ -103,6 +104,7 @@ class RabbitMQWebAdminServerTaskSerializationIntegrationTest {
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQDeletedMessageVaultIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQDeletedMessageVaultIntegrationTest.java
index 31b6392..c620031 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQDeletedMessageVaultIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQDeletedMessageVaultIntegrationTest.java
@@ -25,6 +25,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.modules.AwsS3BlobStoreExtension;
import org.apache.james.modules.RabbitMQExtension;
import org.apache.james.modules.TestJMAPServerModule;
@@ -44,6 +45,7 @@ class RabbitMQDeletedMessageVaultIntegrationTest extends DeletedMessageVaultInte
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(ES_EXTENSION)
.extension(new CassandraExtension())
diff --git a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQLinshareBlobExportMechanismIntegrationTest.java b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQLinshareBlobExportMechanismIntegrationTest.java
index 2a175d6..ed82af5 100644
--- a/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQLinshareBlobExportMechanismIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/distributed-webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/rabbitmq/vault/RabbitMQLinshareBlobExportMechanismIntegrationTest.java
@@ -25,6 +25,7 @@ import org.apache.james.CassandraRabbitMQJamesServerMain;
import org.apache.james.DockerElasticSearchExtension;
import org.apache.james.JamesServerBuilder;
import org.apache.james.JamesServerExtension;
+import org.apache.james.SearchConfiguration;
import org.apache.james.backends.rabbitmq.DockerRabbitMQSingleton;
import org.apache.james.mailbox.extractor.TextExtractor;
import org.apache.james.mailbox.store.search.PDFTextExtractor;
@@ -46,6 +47,7 @@ class RabbitMQLinshareBlobExportMechanismIntegrationTest extends LinshareBlobExp
.workingDirectory(tmpDir)
.configurationFromClasspath()
.blobStore(BlobStoreConfiguration.objectStorage().disableCache())
+ .searchConfiguration(SearchConfiguration.elasticSearch())
.build())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org