Skip to content

Commit

Permalink
fixup! JAMES-3266 Document ElasticSearch opt-in/opt-out
Browse files Browse the repository at this point in the history
  • Loading branch information
nvduc91 committed Jul 2, 2020
1 parent 7d71e5f commit 964dc38
Show file tree
Hide file tree
Showing 22 changed files with 71 additions and 160 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,6 @@ protected void configure() {

// 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);
Expand All @@ -82,7 +77,7 @@ public Mono<Void> add(MailboxSession session, Mailbox mailbox, MailboxMessage me
}

@Override
public Mono<Void> delete(MailboxSession session, Mailbox mailbox, Collection<MessageUid> expungedUids) {
public Mono<Void> delete(MailboxSession session, MailboxId mailboxId, Collection<MessageUid> expungedUids) {
throw new NotImplementedException("not implemented");
}

Expand All @@ -92,7 +87,7 @@ public Mono<Void> deleteAll(MailboxSession session, MailboxId mailboxId) {
}

@Override
public Mono<Void> update(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> updatedFlagsList) {
public Mono<Void> update(MailboxSession session, MailboxId mailboxId, List<UpdatedFlags> updatedFlagsList) {
throw new NotImplementedException("not implemented");
}

Expand All @@ -103,7 +98,7 @@ public Mono<Flags> retrieveIndexedFlags(Mailbox mailbox, MessageUid uid) {

@Override
public Group getDefaultGroup() {
return GROUP;
throw new NotImplementedException("not implemented");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,7 @@ class AuthenticatedCassandraJamesServerTest {
@Nested
class AuthenticationTest implements JamesServerContract {
@RegisterExtension
JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(cassandraExtension)
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand All @@ -64,12 +59,7 @@ class AuthenticationTest implements JamesServerContract {
@Nested
class SslTest {
@RegisterExtension
JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(cassandraExtension)
.disableAutoStart()
Expand All @@ -94,12 +84,7 @@ void startShouldFailWhenSslUsedAndNotSupportedByServer(GuiceJamesServer jamesSer
@Nested
class AuthenticationFailureTest {
@RegisterExtension
JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(cassandraExtension)
.disableAutoStart()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,7 @@

class CassandraJamesServerTest implements JamesServerContract {
@RegisterExtension
static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,7 @@

class CassandraJmapJamesServerTest implements JmapJamesServerContract {
@RegisterExtension
static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,7 @@ class CassandraMailRepositoryIntegrationTest {
private SMTPMessageSender smtpMessageSender = new SMTPMessageSender("other.com");

@RegisterExtension
static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,7 @@

class CassandraMessageIdManagerInjectionTest {
@RegisterExtension
static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,7 @@ class CassandraNodeConfTest {
private static final int CASSANDRA_PORT = 9042;

private static JamesServerBuilder extensionBuilder() {
return new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
return TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,7 @@

class CassandraWithTikaTest implements JamesServerContract {
@RegisterExtension
static JamesServerExtension testExtension =
new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new CassandraExtension())
.extension(new TikaExtension())
.extension(new DockerElasticSearchExtension())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,7 @@

class DefaultCassandraJamesServerTest {
@RegisterExtension
static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,7 @@ class ESReporterTest {
static final DockerElasticSearchExtension elasticSearchExtension = new DockerElasticSearchExtension();

@RegisterExtension
static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(elasticSearchExtension)
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,7 @@ class JamesCapabilitiesServerTest {
private static final MailboxManager mailboxManager = mock(MailboxManager.class);

@RegisterExtension
static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,7 @@ class JamesServerWithRetryConnectionTest {
private static final CassandraExtension dockerCassandra = new CassandraExtension();

@RegisterExtension
static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(dockerElasticSearch)
.extension(dockerCassandra)
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,7 @@ class JamesWithNonCompatibleElasticSearchServerTest {
static DockerElasticSearch dockerES2 = new DockerElasticSearch.NoAuth(Images.ELASTICSEARCH_2);

@RegisterExtension
static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension(dockerES2))
.extension(new CassandraExtension())
.server(configuration -> CassandraJamesServerMain.createServer(configuration)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,7 @@ class KeyspaceCreationTest {
@Nested
class CreateWhenKeyspaceExists {
@RegisterExtension
JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
Expand All @@ -59,12 +54,7 @@ void startShouldNotThrowWhenKeyspaceExists(GuiceJamesServer jamesServer) {
@Nested
class CreateWhenDoesNotExistAndHasRights {
@RegisterExtension
JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
Expand All @@ -91,12 +81,7 @@ void startShouldNotThrowWhenCreateAKeyspaceWithAuthorizedSession(GuiceJamesServe
@Nested
class CreateWhenDoesNotExistAndDoNotHaveRights {
@RegisterExtension
JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
Expand All @@ -123,12 +108,7 @@ void startShouldThrowWhenAttemptToCreateAKeyspace(GuiceJamesServer jamesServer)
@Nested
class StartWhenKeyspaceDoesNotExist {
@RegisterExtension
JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.server(CassandraJamesServerMain::createServer)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/****************************************************************
* 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;

public class TestingDistributedJamesServerBuilder {
@FunctionalInterface
interface ConfigurationSpecification {
CassandraJamesServerConfiguration.Builder customize(CassandraJamesServerConfiguration.Builder configuration);
}

public static JamesServerBuilder<CassandraJamesServerConfiguration> forConfiguration(ConfigurationSpecification configurationSpecification) {
return new JamesServerBuilder<>(tmpDir ->
configurationSpecification.customize(CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath())
.build());
}

public static JamesServerBuilder<CassandraJamesServerConfiguration> withSearchConfiguration(SearchConfiguration searchConfiguration) {
return forConfiguration(configuration -> configuration.searchConfiguration(searchConfiguration));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,7 @@
class WithCassandraBlobStoreTest implements JmapJamesServerContract, MailsShouldBeWellReceived, JamesServerContract {

@RegisterExtension
static JamesServerExtension jamesServerExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension jamesServerExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.extension(new SpamAssassinModuleExtension())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,7 @@ class CassandraLdapJamesServerTest implements JamesServerContract {
SMTPMessageSender messageSender = new SMTPMessageSender(Domain.LOCALHOST.asString());

@RegisterExtension
static JamesServerExtension testExtension = new JamesServerBuilder<CassandraJamesServerConfiguration>(tmpDir ->
CassandraJamesServerConfiguration.builder()
.workingDirectory(tmpDir)
.configurationFromClasspath()
.searchConfiguration(SearchConfiguration.elasticSearch())
.build())
static JamesServerExtension testExtension = TestingDistributedJamesServerBuilder.withSearchConfiguration(SearchConfiguration.elasticSearch())
.extension(new DockerElasticSearchExtension())
.extension(new CassandraExtension())
.extension(new LdapTestExtension())
Expand Down

0 comments on commit 964dc38

Please sign in to comment.