You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2018/12/07 16:13:12 UTC

[04/11] james-project git commit: JAMES-2590 Move ElasticSearch configuration classes to ES-backend

http://git-wip-us.apache.org/repos/asf/james-project/blob/a3f6c0b9/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchConfiguration.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchConfiguration.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchConfiguration.java
deleted file mode 100644
index f63960e..0000000
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchConfiguration.java
+++ /dev/null
@@ -1,423 +0,0 @@
-/****************************************************************
- * 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.modules.mailbox;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-
-import org.apache.commons.configuration.AbstractConfiguration;
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.james.backends.es.IndexName;
-import org.apache.james.backends.es.ReadAliasName;
-import org.apache.james.backends.es.WriteAliasName;
-import org.apache.james.mailbox.elasticsearch.IndexAttachments;
-import org.apache.james.mailbox.elasticsearch.MailboxElasticSearchConstants;
-import org.apache.james.quota.search.elasticsearch.QuotaRatioElasticSearchConstants;
-import org.apache.james.util.Host;
-import org.apache.james.util.OptionalUtils;
-
-import com.github.steveash.guavate.Guavate;
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-
-public class ElasticSearchConfiguration {
-
-    public static class Builder {
-
-        private final ImmutableList.Builder<Host> hosts;
-        private Optional<IndexName> indexMailboxName;
-        private Optional<ReadAliasName> readAliasMailboxName;
-        private Optional<WriteAliasName> writeAliasMailboxName;
-        private Optional<IndexName> indexQuotaRatioName;
-        private Optional<ReadAliasName> readAliasQuotaRatioName;
-        private Optional<WriteAliasName> writeAliasQuotaRatioName;
-        private Optional<Integer> nbShards;
-        private Optional<Integer> nbReplica;
-        private Optional<Integer> minDelay;
-        private Optional<Integer> maxRetries;
-        private Optional<IndexAttachments> indexAttachment;
-
-        public Builder() {
-            hosts = ImmutableList.builder();
-            indexMailboxName = Optional.empty();
-            readAliasMailboxName = Optional.empty();
-            writeAliasMailboxName = Optional.empty();
-            indexQuotaRatioName = Optional.empty();
-            readAliasQuotaRatioName = Optional.empty();
-            writeAliasQuotaRatioName = Optional.empty();
-            nbShards = Optional.empty();
-            nbReplica = Optional.empty();
-            minDelay = Optional.empty();
-            maxRetries = Optional.empty();
-            indexAttachment = Optional.empty();
-        }
-
-        public Builder addHost(Host host) {
-            this.hosts.add(host);
-            return this;
-        }
-
-        public Builder addHosts(Collection<Host> hosts) {
-            this.hosts.addAll(hosts);
-            return this;
-        }
-
-        public Builder indexMailboxName(IndexName indexMailboxName) {
-            return indexMailboxName(Optional.of(indexMailboxName));
-        }
-
-        public Builder indexMailboxName(Optional<IndexName> indexMailboxName) {
-            this.indexMailboxName = indexMailboxName;
-            return this;
-        }
-
-        public Builder readAliasMailboxName(ReadAliasName readAliasMailboxName) {
-            return readAliasMailboxName(Optional.of(readAliasMailboxName));
-        }
-
-        public Builder readAliasMailboxName(Optional<ReadAliasName> readAliasMailboxName) {
-            this.readAliasMailboxName = readAliasMailboxName;
-            return this;
-        }
-
-        public Builder writeAliasMailboxName(WriteAliasName writeAliasMailboxName) {
-            return writeAliasMailboxName(Optional.of(writeAliasMailboxName));
-        }
-
-        public Builder writeAliasMailboxName(Optional<WriteAliasName> writeAliasMailboxName) {
-            this.writeAliasMailboxName = writeAliasMailboxName;
-            return this;
-        }
-
-        public Builder indexQuotaRatioName(IndexName indexQuotaRatioName) {
-            return indexQuotaRatioName(Optional.of(indexQuotaRatioName));
-        }
-
-        public Builder indexQuotaRatioName(Optional<IndexName> indexQuotaRatioName) {
-            this.indexQuotaRatioName = indexQuotaRatioName;
-            return this;
-        }
-
-        public Builder readAliasQuotaRatioName(ReadAliasName readAliasQuotaRatioName) {
-            return readAliasQuotaRatioName(Optional.of(readAliasQuotaRatioName));
-        }
-
-        public Builder readAliasQuotaRatioName(Optional<ReadAliasName> readAliasQuotaRatioName) {
-            this.readAliasQuotaRatioName = readAliasQuotaRatioName;
-            return this;
-        }
-
-        public Builder writeAliasQuotaRatioName(WriteAliasName writeAliasQuotaRatioName) {
-            return writeAliasQuotaRatioName(Optional.of(writeAliasQuotaRatioName));
-        }
-
-        public Builder writeAliasQuotaRatioName(Optional<WriteAliasName> writeAliasQuotaRatioName) {
-            this.writeAliasQuotaRatioName = writeAliasQuotaRatioName;
-            return this;
-        }
-
-        public Builder indexAttachment(IndexAttachments indexAttachment) {
-            this.indexAttachment = Optional.of(indexAttachment);
-            return this;
-        }
-
-        public Builder nbShards(Optional<Integer> nbShards) {
-            this.nbShards = nbShards;
-            return this;
-        }
-
-        public Builder nbReplica(Optional<Integer> nbReplica) {
-            this.nbReplica = nbReplica;
-            return this;
-        }
-
-        public Builder minDelay(Optional<Integer> minDelay) {
-            this.minDelay = minDelay;
-            return this;
-        }
-
-        public Builder maxRetries(Optional<Integer> maxRetries) {
-            this.maxRetries = maxRetries;
-            return this;
-        }
-
-        public ElasticSearchConfiguration build() {
-            ImmutableList<Host> hosts = this.hosts.build();
-            Preconditions.checkState(!hosts.isEmpty(), "You need to specify ElasticSearch host");
-            return new ElasticSearchConfiguration(
-                hosts,
-                indexMailboxName.orElse(MailboxElasticSearchConstants.DEFAULT_MAILBOX_INDEX),
-                readAliasMailboxName.orElse(MailboxElasticSearchConstants.DEFAULT_MAILBOX_READ_ALIAS),
-                writeAliasMailboxName.orElse(MailboxElasticSearchConstants.DEFAULT_MAILBOX_WRITE_ALIAS),
-                indexQuotaRatioName.orElse(QuotaRatioElasticSearchConstants.DEFAULT_QUOTA_RATIO_INDEX),
-                readAliasQuotaRatioName.orElse(QuotaRatioElasticSearchConstants.DEFAULT_QUOTA_RATIO_READ_ALIAS),
-                writeAliasQuotaRatioName.orElse(QuotaRatioElasticSearchConstants.DEFAULT_QUOTA_RATIO_WRITE_ALIAS),
-                nbShards.orElse(DEFAULT_NB_SHARDS),
-                nbReplica.orElse(DEFAULT_NB_REPLICA),
-                minDelay.orElse(DEFAULT_CONNECTION_MIN_DELAY),
-                maxRetries.orElse(DEFAULT_CONNECTION_MAX_RETRIES),
-                indexAttachment.orElse(IndexAttachments.YES));
-        }
-    }
-
-    public static Builder builder() {
-        return new Builder();
-    }
-
-    public static final String ELASTICSEARCH_HOSTS = "elasticsearch.hosts";
-    public static final String ELASTICSEARCH_MASTER_HOST = "elasticsearch.masterHost";
-    public static final String ELASTICSEARCH_PORT = "elasticsearch.port";
-    public static final String ELASTICSEARCH_INDEX_NAME = "elasticsearch.index.name";
-    public static final String ELASTICSEARCH_INDEX_MAILBOX_NAME = "elasticsearch.index.mailbox.name";
-    public static final String ELASTICSEARCH_NB_REPLICA = "elasticsearch.nb.replica";
-    public static final String ELASTICSEARCH_NB_SHARDS = "elasticsearch.nb.shards";
-    public static final String ELASTICSEARCH_ALIAS_READ_NAME = "elasticsearch.alias.read.name";
-    public static final String ELASTICSEARCH_ALIAS_WRITE_NAME = "elasticsearch.alias.write.name";
-    public static final String ELASTICSEARCH_ALIAS_READ_MAILBOX_NAME = "elasticsearch.alias.read.mailbox.name";
-    public static final String ELASTICSEARCH_ALIAS_WRITE_MAILBOX_NAME = "elasticsearch.alias.write.mailbox.name";
-    public static final String ELASTICSEARCH_INDEX_QUOTA_RATIO_NAME = "elasticsearch.index.quota.ratio.name";
-    public static final String ELASTICSEARCH_ALIAS_READ_QUOTA_RATIO_NAME = "elasticsearch.alias.read.quota.ratio.name";
-    public static final String ELASTICSEARCH_ALIAS_WRITE_QUOTA_RATIO_NAME = "elasticsearch.alias.write.quota.ratio.name";
-    public static final String ELASTICSEARCH_RETRY_CONNECTION_MIN_DELAY = "elasticsearch.retryConnection.minDelay";
-    public static final String ELASTICSEARCH_RETRY_CONNECTION_MAX_RETRIES = "elasticsearch.retryConnection.maxRetries";
-    public static final String ELASTICSEARCH_INDEX_ATTACHMENTS = "elasticsearch.indexAttachments";
-
-    public static final int DEFAULT_CONNECTION_MAX_RETRIES = 7;
-    public static final int DEFAULT_CONNECTION_MIN_DELAY = 3000;
-    public static final boolean DEFAULT_INDEX_ATTACHMENTS = true;
-    public static final int DEFAULT_NB_SHARDS = 1;
-    public static final int DEFAULT_NB_REPLICA = 0;
-    public static final int DEFAULT_PORT = 9300;
-    private static final String LOCALHOST = "127.0.0.1";
-    public static final Optional<Integer> DEFAULT_PORT_AS_OPTIONAL = Optional.of(DEFAULT_PORT);
-
-    public static final ElasticSearchConfiguration DEFAULT_CONFIGURATION = builder()
-        .addHost(Host.from(LOCALHOST, DEFAULT_PORT))
-        .build();
-
-    public static ElasticSearchConfiguration fromProperties(Configuration configuration) throws ConfigurationException {
-        return builder()
-            .addHosts(getHosts(configuration))
-            .indexMailboxName(computeMailboxIndexName(configuration))
-            .readAliasMailboxName(computeMailboxReadAlias(configuration))
-            .writeAliasMailboxName(computeMailboxWriteAlias(configuration))
-            .indexQuotaRatioName(computeQuotaSearchIndexName(configuration))
-            .readAliasQuotaRatioName(computeQuotaSearchReadAlias(configuration))
-            .writeAliasQuotaRatioName(computeQuotaSearchWriteAlias(configuration))
-            .nbShards(Optional.ofNullable(configuration.getInteger(ELASTICSEARCH_NB_SHARDS, null)))
-            .nbReplica(Optional.ofNullable(configuration.getInteger(ELASTICSEARCH_NB_REPLICA, null)))
-            .minDelay(Optional.ofNullable(configuration.getInteger(ELASTICSEARCH_RETRY_CONNECTION_MIN_DELAY, null)))
-            .maxRetries(Optional.ofNullable(configuration.getInteger(ELASTICSEARCH_RETRY_CONNECTION_MAX_RETRIES, null)))
-            .indexAttachment(provideIndexAttachments(configuration))
-            .build();
-    }
-
-    public static Optional<IndexName> computeMailboxIndexName(Configuration configuration) {
-        return OptionalUtils.or(
-            Optional.ofNullable(configuration.getString(ELASTICSEARCH_INDEX_MAILBOX_NAME))
-                .map(IndexName::new),
-            Optional.ofNullable(configuration.getString(ELASTICSEARCH_INDEX_NAME))
-                .map(IndexName::new));
-    }
-
-    public static Optional<WriteAliasName> computeMailboxWriteAlias(Configuration configuration) {
-        return OptionalUtils.or(
-            Optional.ofNullable(configuration.getString(ELASTICSEARCH_ALIAS_WRITE_MAILBOX_NAME))
-                .map(WriteAliasName::new),
-            Optional.ofNullable(configuration.getString(ELASTICSEARCH_ALIAS_WRITE_NAME))
-                .map(WriteAliasName::new));
-    }
-
-    public static Optional<ReadAliasName> computeMailboxReadAlias(Configuration configuration) {
-        return OptionalUtils.or(
-            Optional.ofNullable(configuration.getString(ELASTICSEARCH_ALIAS_READ_MAILBOX_NAME))
-                .map(ReadAliasName::new),
-            Optional.ofNullable(configuration.getString(ELASTICSEARCH_ALIAS_READ_NAME))
-                .map(ReadAliasName::new));
-    }
-
-    public static Optional<IndexName> computeQuotaSearchIndexName(Configuration configuration) {
-        return Optional.ofNullable(configuration.getString(ELASTICSEARCH_INDEX_QUOTA_RATIO_NAME))
-            .map(IndexName::new);
-    }
-
-    public static Optional<WriteAliasName> computeQuotaSearchWriteAlias(Configuration configuration) {
-        return Optional.ofNullable(configuration.getString(ELASTICSEARCH_ALIAS_WRITE_QUOTA_RATIO_NAME))
-            .map(WriteAliasName::new);
-    }
-
-    public static Optional<ReadAliasName> computeQuotaSearchReadAlias(Configuration configuration) {
-        return Optional.ofNullable(configuration.getString(ELASTICSEARCH_ALIAS_READ_QUOTA_RATIO_NAME))
-                .map(ReadAliasName::new);
-    }
-
-    private static IndexAttachments provideIndexAttachments(Configuration configuration) {
-        if (configuration.getBoolean(ELASTICSEARCH_INDEX_ATTACHMENTS, DEFAULT_INDEX_ATTACHMENTS)) {
-            return IndexAttachments.YES;
-        }
-        return IndexAttachments.NO;
-    }
-
-    private static ImmutableList<Host> getHosts(Configuration propertiesReader) throws ConfigurationException {
-        AbstractConfiguration.setDefaultListDelimiter(',');
-        Optional<String> masterHost = Optional.ofNullable(
-            propertiesReader.getString(ELASTICSEARCH_MASTER_HOST, null));
-        Optional<Integer> masterPort = Optional.ofNullable(
-            propertiesReader.getInteger(ELASTICSEARCH_PORT, null));
-        List<String> multiHosts = Arrays.asList(propertiesReader.getStringArray(ELASTICSEARCH_HOSTS));
-
-        validateHostsConfigurationOptions(masterHost, masterPort, multiHosts);
-
-        if (masterHost.isPresent()) {
-            return ImmutableList.of(
-                Host.from(masterHost.get(),
-                masterPort.get()));
-        } else {
-            return multiHosts.stream()
-                .map(ipAndPort -> Host.parse(ipAndPort, DEFAULT_PORT_AS_OPTIONAL))
-                .collect(Guavate.toImmutableList());
-        }
-    }
-
-    @VisibleForTesting
-    static void validateHostsConfigurationOptions(Optional<String> masterHost,
-                                                  Optional<Integer> masterPort,
-                                                  List<String> multiHosts) throws ConfigurationException {
-        if (masterHost.isPresent() != masterPort.isPresent()) {
-            throw new ConfigurationException(ELASTICSEARCH_MASTER_HOST + " and " + ELASTICSEARCH_PORT + " should be specified together");
-        }
-        if (!multiHosts.isEmpty() && masterHost.isPresent()) {
-            throw new ConfigurationException("You should choose between mono host set up and " + ELASTICSEARCH_HOSTS);
-        }
-        if (multiHosts.isEmpty() && !masterHost.isPresent()) {
-            throw new ConfigurationException("You should specify either (" + ELASTICSEARCH_MASTER_HOST + " and " + ELASTICSEARCH_PORT + ") or " + ELASTICSEARCH_HOSTS);
-        }
-    }
-
-    private final ImmutableList<Host> hosts;
-    private final IndexName indexMailboxName;
-    private final ReadAliasName readAliasMailboxName;
-    private final WriteAliasName writeAliasMailboxName;
-    private final IndexName indexQuotaRatioName;
-    private final ReadAliasName readAliasQuotaRatioName;
-    private final WriteAliasName writeAliasQuotaRatioName;
-    private final int nbShards;
-    private final int nbReplica;
-    private final int minDelay;
-    private final int maxRetries;
-    private final IndexAttachments indexAttachment;
-
-    private ElasticSearchConfiguration(ImmutableList<Host> hosts, IndexName indexMailboxName, ReadAliasName readAliasMailboxName,
-                                      WriteAliasName writeAliasMailboxName, IndexName indexQuotaRatioName, ReadAliasName readAliasQuotaRatioName, WriteAliasName writeAliasQuotaRatioName, int nbShards, int nbReplica, int minDelay,
-                                      int maxRetries, IndexAttachments indexAttachment) {
-        this.hosts = hosts;
-        this.indexMailboxName = indexMailboxName;
-        this.readAliasMailboxName = readAliasMailboxName;
-        this.writeAliasMailboxName = writeAliasMailboxName;
-        this.indexQuotaRatioName = indexQuotaRatioName;
-        this.readAliasQuotaRatioName = readAliasQuotaRatioName;
-        this.writeAliasQuotaRatioName = writeAliasQuotaRatioName;
-        this.nbShards = nbShards;
-        this.nbReplica = nbReplica;
-        this.minDelay = minDelay;
-        this.maxRetries = maxRetries;
-        this.indexAttachment = indexAttachment;
-    }
-
-    public ImmutableList<Host> getHosts() {
-        return hosts;
-    }
-
-    public IndexName getIndexMailboxName() {
-        return indexMailboxName;
-    }
-
-    public ReadAliasName getReadAliasMailboxName() {
-        return readAliasMailboxName;
-    }
-
-    public WriteAliasName getWriteAliasMailboxName() {
-        return writeAliasMailboxName;
-    }
-
-    public int getNbShards() {
-        return nbShards;
-    }
-
-    public int getNbReplica() {
-        return nbReplica;
-    }
-
-    public int getMinDelay() {
-        return minDelay;
-    }
-
-    public int getMaxRetries() {
-        return maxRetries;
-    }
-
-    public IndexAttachments getIndexAttachment() {
-        return indexAttachment;
-    }
-
-    public IndexName getIndexQuotaRatioName() {
-        return indexQuotaRatioName;
-    }
-
-    public ReadAliasName getReadAliasQuotaRatioName() {
-        return readAliasQuotaRatioName;
-    }
-
-    public WriteAliasName getWriteAliasQuotaRatioName() {
-        return writeAliasQuotaRatioName;
-    }
-
-    @Override
-    public final boolean equals(Object o) {
-        if (o instanceof ElasticSearchConfiguration) {
-            ElasticSearchConfiguration that = (ElasticSearchConfiguration) o;
-
-            return Objects.equals(this.nbShards, that.nbShards)
-                && Objects.equals(this.nbReplica, that.nbReplica)
-                && Objects.equals(this.minDelay, that.minDelay)
-                && Objects.equals(this.maxRetries, that.maxRetries)
-                && Objects.equals(this.indexAttachment, that.indexAttachment)
-                && Objects.equals(this.hosts, that.hosts)
-                && Objects.equals(this.indexMailboxName, that.indexMailboxName)
-                && Objects.equals(this.readAliasMailboxName, that.readAliasMailboxName)
-                && Objects.equals(this.writeAliasMailboxName, that.writeAliasMailboxName)
-                && Objects.equals(this.indexQuotaRatioName, that.indexQuotaRatioName)
-                && Objects.equals(this.readAliasQuotaRatioName, that.readAliasQuotaRatioName)
-                && Objects.equals(this.writeAliasQuotaRatioName, that.writeAliasQuotaRatioName);
-        }
-        return false;
-    }
-
-    @Override
-    public final int hashCode() {
-        return Objects.hash(hosts, indexMailboxName, readAliasMailboxName, writeAliasMailboxName, nbShards,
-            nbReplica, minDelay, maxRetries, indexAttachment, indexQuotaRatioName, readAliasQuotaRatioName, writeAliasMailboxName);
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/a3f6c0b9/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
index 9af4daa..3d89665 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchMailboxModule.java
@@ -32,9 +32,10 @@ import javax.inject.Singleton;
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.james.backends.es.ClientProviderImpl;
+import org.apache.james.backends.es.ElasticSearchConfiguration;
 import org.apache.james.backends.es.ElasticSearchIndexer;
-import org.apache.james.mailbox.elasticsearch.IndexAttachments;
-import org.apache.james.mailbox.elasticsearch.MailboxElasticSearchConstants;
+import org.apache.james.backends.es.IndexAttachments;
+import org.apache.james.backends.es.MailboxElasticSearchConstants;
 import org.apache.james.mailbox.elasticsearch.MailboxIndexCreationUtil;
 import org.apache.james.mailbox.elasticsearch.events.ElasticSearchListeningMessageSearchIndex;
 import org.apache.james.mailbox.elasticsearch.query.QueryConverter;

http://git-wip-us.apache.org/repos/asf/james-project/blob/a3f6c0b9/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchQuotaSearcherModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchQuotaSearcherModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchQuotaSearcherModule.java
index ad9dd6f..e7e6e0b 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchQuotaSearcherModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/ElasticSearchQuotaSearcherModule.java
@@ -23,11 +23,12 @@ import java.util.concurrent.ExecutorService;
 
 import javax.inject.Named;
 
+import org.apache.james.backends.es.ElasticSearchConfiguration;
 import org.apache.james.backends.es.ElasticSearchIndexer;
+import org.apache.james.backends.es.QuotaRatioElasticSearchConstants;
 import org.apache.james.mailbox.MailboxListener;
 import org.apache.james.quota.search.QuotaSearcher;
 import org.apache.james.quota.search.elasticsearch.ElasticSearchQuotaSearcher;
-import org.apache.james.quota.search.elasticsearch.QuotaRatioElasticSearchConstants;
 import org.apache.james.quota.search.elasticsearch.events.ElasticSearchQuotaMailboxListener;
 import org.apache.james.quota.search.elasticsearch.json.QuotaRatioToElasticSearchJson;
 import org.elasticsearch.client.Client;

http://git-wip-us.apache.org/repos/asf/james-project/blob/a3f6c0b9/server/container/guice/cassandra-guice/src/test/java/org/apache/james/JamesServerWithRetryConnectionTest.java
----------------------------------------------------------------------
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 a9e3c52..54074c0 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
@@ -31,11 +31,11 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.james.mailbox.elasticsearch.IndexAttachments;
+import org.apache.james.backends.es.IndexAttachments;
 import org.apache.james.mailbox.extractor.TextExtractor;
 import org.apache.james.mailbox.store.search.PDFTextExtractor;
 import org.apache.james.modules.TestJMAPServerModule;
-import org.apache.james.modules.mailbox.ElasticSearchConfiguration;
+import org.apache.james.backends.es.ElasticSearchConfiguration;
 import org.apache.james.modules.protocols.ImapGuiceProbe;
 import org.apache.james.util.Host;
 import org.apache.james.util.docker.Images;

http://git-wip-us.apache.org/repos/asf/james-project/blob/a3f6c0b9/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/ElasticSearchConfigurationTest.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/ElasticSearchConfigurationTest.java b/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/ElasticSearchConfigurationTest.java
deleted file mode 100644
index dd03104..0000000
--- a/server/container/guice/cassandra-guice/src/test/java/org/apache/james/modules/mailbox/ElasticSearchConfigurationTest.java
+++ /dev/null
@@ -1,518 +0,0 @@
-/****************************************************************
- * 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.modules.mailbox;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-
-import java.util.Optional;
-
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.james.backends.es.IndexName;
-import org.apache.james.backends.es.ReadAliasName;
-import org.apache.james.backends.es.WriteAliasName;
-import org.apache.james.mailbox.elasticsearch.IndexAttachments;
-import org.apache.james.mailbox.elasticsearch.MailboxElasticSearchConstants;
-import org.apache.james.quota.search.elasticsearch.QuotaRatioElasticSearchConstants;
-import org.apache.james.util.Host;
-import org.junit.Test;
-
-import com.google.common.collect.ImmutableList;
-
-public class ElasticSearchConfigurationTest {
-
-    @Test
-    public void getNbReplicaShouldReturnConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        int value = 36;
-        configuration.addProperty("elasticsearch.nb.replica", value);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getNbReplica())
-            .isEqualTo(value);
-    }
-
-    @Test
-    public void getNbReplicaShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getNbReplica())
-            .isEqualTo(ElasticSearchConfiguration.DEFAULT_NB_REPLICA);
-    }
-
-    @Test
-    public void getNbShardsShouldReturnConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        int value = 36;
-        configuration.addProperty("elasticsearch.nb.shards", value);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getNbShards())
-            .isEqualTo(value);
-    }
-
-    @Test
-    public void getNbShardsShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getNbShards())
-            .isEqualTo(ElasticSearchConfiguration.DEFAULT_NB_SHARDS);
-    }
-
-    @Test
-    public void getMaxRetriesShouldReturnConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        int value = 36;
-        configuration.addProperty("elasticsearch.retryConnection.maxRetries", value);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getMaxRetries())
-            .isEqualTo(value);
-    }
-
-    @Test
-    public void getMaxRetriesShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getMaxRetries())
-            .isEqualTo(ElasticSearchConfiguration.DEFAULT_CONNECTION_MAX_RETRIES);
-    }
-
-    @Test
-    public void getMinDelayShouldReturnConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        int value = 36;
-        configuration.addProperty("elasticsearch.retryConnection.minDelay", value);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getMinDelay())
-            .isEqualTo(value);
-    }
-
-    @Test
-    public void getMinDelayShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getMinDelay())
-            .isEqualTo(ElasticSearchConfiguration.DEFAULT_CONNECTION_MIN_DELAY);
-    }
-
-    @Test
-    public void getIndexMailboxNameShouldReturnOldConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.index.name", name);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getIndexMailboxName())
-            .isEqualTo(new IndexName(name));
-    }
-
-    @Test
-    public void getIndexMailboxNameShouldReturnNewConfiguredValueWhenBoth() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.index.name", "other");
-        configuration.addProperty("elasticsearch.index.mailbox.name", name);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getIndexMailboxName())
-            .isEqualTo(new IndexName(name));
-    }
-
-    @Test
-    public void getIndexMailboxNameShouldReturnConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.index.mailbox.name", name);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getIndexMailboxName())
-            .isEqualTo(new IndexName(name));
-    }
-
-    @Test
-    public void getIndexMailboxNameShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getIndexMailboxName())
-            .isEqualTo(MailboxElasticSearchConstants.DEFAULT_MAILBOX_INDEX);
-    }
-
-    @Test
-    public void getReadAliasMailboxNameShouldReturnOldConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.alias.read.name", name);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getReadAliasMailboxName())
-            .isEqualTo(new ReadAliasName(name));
-    }
-
-    @Test
-    public void getReadAliasMailboxNameShouldReturnConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.alias.read.mailbox.name", name);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getReadAliasMailboxName())
-            .isEqualTo(new ReadAliasName(name));
-    }
-
-    @Test
-    public void getReadAliasMailboxNameShouldReturnNewConfiguredValueWhenBoth() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.alias.read.mailbox.name", name);
-        configuration.addProperty("elasticsearch.alias.read.name", "other");
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getReadAliasMailboxName())
-            .isEqualTo(new ReadAliasName(name));
-    }
-
-    @Test
-    public void getReadAliasMailboxNameShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getReadAliasMailboxName())
-            .isEqualTo(MailboxElasticSearchConstants.DEFAULT_MAILBOX_READ_ALIAS);
-    }
-
-    @Test
-    public void getWriteAliasMailboxNameShouldReturnOldConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.alias.write.name", name);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getWriteAliasMailboxName())
-            .isEqualTo(new WriteAliasName(name));
-    }
-
-    @Test
-    public void getWriteAliasMailboxNameShouldReturnConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.alias.write.mailbox.name", name);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getWriteAliasMailboxName())
-            .isEqualTo(new WriteAliasName(name));
-    }
-
-    @Test
-    public void getWriteAliasMailboxNameShouldReturnNewConfiguredValueWhenBoth() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.alias.write.mailbox.name", name);
-        configuration.addProperty("elasticsearch.alias.write.name", "other");
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getWriteAliasMailboxName())
-            .isEqualTo(new WriteAliasName(name));
-    }
-
-    @Test
-    public void getWriteAliasMailboxNameShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getWriteAliasMailboxName())
-            .isEqualTo(MailboxElasticSearchConstants.DEFAULT_MAILBOX_WRITE_ALIAS);
-    }
-
-    @Test
-    public void getReadAliasQuotaRatioNameShouldReturnConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.alias.read.quota.ratio.name", name);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getReadAliasQuotaRatioName())
-            .isEqualTo(new ReadAliasName(name));
-    }
-
-    @Test
-    public void getReadAliasQuotaRatioNameShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getReadAliasQuotaRatioName())
-            .isEqualTo(QuotaRatioElasticSearchConstants.DEFAULT_QUOTA_RATIO_READ_ALIAS);
-    }
-
-    @Test
-    public void getWriteAliasQuotaRatioNameShouldReturnConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.alias.write.quota.ratio.name", name);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getWriteAliasQuotaRatioName())
-            .isEqualTo(new WriteAliasName(name));
-    }
-
-    @Test
-    public void getWriteAliasQuotaRatioNameShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getWriteAliasQuotaRatioName())
-            .isEqualTo(QuotaRatioElasticSearchConstants.DEFAULT_QUOTA_RATIO_WRITE_ALIAS);
-    }
-
-    @Test
-    public void getIndexQuotaRatioNameShouldReturnConfiguredValue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String name = "name";
-        configuration.addProperty("elasticsearch.index.quota.ratio.name", name);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getIndexQuotaRatioName())
-            .isEqualTo(new IndexName(name));
-    }
-
-    @Test
-    public void getIndexQuotaRatioNameShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getIndexQuotaRatioName())
-            .isEqualTo(QuotaRatioElasticSearchConstants.DEFAULT_QUOTA_RATIO_INDEX);
-    }
-
-    @Test
-    public void getIndexAttachmentShouldReturnConfiguredValueWhenTrue() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.indexAttachments", true);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getIndexAttachment())
-            .isEqualTo(IndexAttachments.YES);
-    }
-
-    @Test
-    public void getIndexAttachmentShouldReturnConfiguredValueWhenFalse() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.indexAttachments", false);
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getIndexAttachment())
-            .isEqualTo(IndexAttachments.NO);
-    }
-
-    @Test
-    public void getIndexAttachmentShouldReturnDefaultValueWhenMissing() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", "127.0.0.1");
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getIndexAttachment())
-            .isEqualTo(IndexAttachments.YES);
-    }
-
-
-    @Test
-    public void getHostsShouldReturnConfiguredHostsWhenNoPort() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String hostname = "myHost";
-        configuration.addProperty("elasticsearch.hosts", hostname);
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getHosts())
-            .containsOnly(Host.from(hostname, ElasticSearchConfiguration.DEFAULT_PORT));
-    }
-
-    @Test
-    public void getHostsShouldReturnConfiguredHostsWhenListIsUsed() throws ConfigurationException {
-        String hostname = "myHost";
-        String hostname2 = "myOtherHost";
-        int port = 2154;
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        configuration.addProperty("elasticsearch.hosts", hostname + "," + hostname2 + ":" + port);
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getHosts())
-            .containsOnly(Host.from(hostname, ElasticSearchConfiguration.DEFAULT_PORT),
-                Host.from(hostname2, port));
-    }
-
-    @Test
-    public void getHostsShouldReturnConfiguredHosts() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String hostname = "myHost";
-        int port = 2154;
-        configuration.addProperty("elasticsearch.hosts", hostname + ":" + port);
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getHosts())
-            .containsOnly(Host.from(hostname, port));
-    }
-
-    @Test
-    public void getHostsShouldReturnConfiguredMasterHost() throws ConfigurationException {
-        PropertiesConfiguration configuration = new PropertiesConfiguration();
-        String hostname = "myHost";
-        configuration.addProperty("elasticsearch.masterHost", hostname);
-        int port = 9300;
-        configuration.addProperty("elasticsearch.port", port);
-
-        ElasticSearchConfiguration elasticSearchConfiguration = ElasticSearchConfiguration.fromProperties(configuration);
-
-        assertThat(elasticSearchConfiguration.getHosts())
-            .containsOnly(Host.from(hostname, port));
-    }
-
-    @Test
-    public void validateHostsConfigurationOptionsShouldThrowWhenNoHostSpecify() {
-        assertThatThrownBy(() ->
-            ElasticSearchConfiguration.validateHostsConfigurationOptions(
-                Optional.empty(),
-                Optional.empty(),
-                ImmutableList.of()))
-            .isInstanceOf(ConfigurationException.class)
-            .hasMessage("You should specify either (" + ElasticSearchConfiguration.ELASTICSEARCH_MASTER_HOST +
-                " and " + ElasticSearchConfiguration.ELASTICSEARCH_PORT +
-                ") or " + ElasticSearchConfiguration.ELASTICSEARCH_HOSTS);
-    }
-
-    @Test
-    public void validateHostsConfigurationOptionsShouldThrowWhenMonoAndMultiHostSpecified() {
-        assertThatThrownBy(() ->
-            ElasticSearchConfiguration.validateHostsConfigurationOptions(
-                Optional.of("localhost"),
-                Optional.of(9200),
-                ImmutableList.of("localhost:9200")))
-            .isInstanceOf(ConfigurationException.class)
-            .hasMessage("You should choose between mono host set up and " + ElasticSearchConfiguration.ELASTICSEARCH_HOSTS);
-    }
-
-    @Test
-    public void validateHostsConfigurationOptionsShouldThrowWhenMonoHostWithoutPort() {
-        assertThatThrownBy(() ->
-            ElasticSearchConfiguration.validateHostsConfigurationOptions(
-                Optional.of("localhost"),
-                Optional.empty(),
-                ImmutableList.of()))
-            .isInstanceOf(ConfigurationException.class)
-            .hasMessage(ElasticSearchConfiguration.ELASTICSEARCH_MASTER_HOST +
-                " and " + ElasticSearchConfiguration.ELASTICSEARCH_PORT + " should be specified together");
-    }
-
-    @Test
-    public void validateHostsConfigurationOptionsShouldThrowWhenMonoHostWithoutAddress() {
-        assertThatThrownBy(() ->
-        ElasticSearchConfiguration.validateHostsConfigurationOptions(
-            Optional.empty(),
-            Optional.of(9200),
-            ImmutableList.of()))
-        .isInstanceOf(ConfigurationException.class)
-        .hasMessage(ElasticSearchConfiguration.ELASTICSEARCH_MASTER_HOST + " and " +
-            ElasticSearchConfiguration.ELASTICSEARCH_PORT + " should be specified together");
-    }
-
-    @Test
-    public void validateHostsConfigurationOptionsShouldAcceptMonoHostConfiguration() throws Exception {
-        ElasticSearchConfiguration.validateHostsConfigurationOptions(
-            Optional.of("localhost"),
-            Optional.of(9200),
-            ImmutableList.of());
-    }
-
-    @Test
-    public void validateHostsConfigurationOptionsShouldAcceptMultiHostConfiguration() throws Exception {
-        ElasticSearchConfiguration.validateHostsConfigurationOptions(
-            Optional.empty(),
-            Optional.empty(),
-            ImmutableList.of("localhost:9200"));
-    }
-
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/a3f6c0b9/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
index 48f25f0..cf42497 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/ElasticSearchQuotaSearchExtension.java
@@ -33,7 +33,7 @@ import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
 import org.apache.james.mailbox.mock.MockMailboxSession;
 import org.apache.james.quota.search.QuotaSearchTestSystem;
 import org.apache.james.quota.search.elasticsearch.ElasticSearchQuotaSearcher;
-import org.apache.james.quota.search.elasticsearch.QuotaRatioElasticSearchConstants;
+import org.apache.james.backends.es.QuotaRatioElasticSearchConstants;
 import org.apache.james.quota.search.elasticsearch.QuotaSearchIndexCreationUtil;
 import org.apache.james.quota.search.elasticsearch.events.ElasticSearchQuotaMailboxListener;
 import org.apache.james.quota.search.elasticsearch.json.QuotaRatioToElasticSearchJson;


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org