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