JAMES-2004 Adding default options for ElasticSearch shards and replica
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e0f2a4c5 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e0f2a4c5 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e0f2a4c5 Branch: refs/heads/master Commit: e0f2a4c53ef779bfdeab044d08f64361fac77c9a Parents: b2a1425 Author: benwa <btell...@linagora.com> Authored: Tue Apr 18 13:46:21 2017 +0700 Committer: benwa <btell...@linagora.com> Committed: Fri Apr 21 08:27:41 2017 +0700 ---------------------------------------------------------------------- .../mailbox/ElasticSearchMailboxModule.java | 17 ++++++++++------- .../modules/server/ESMetricReporterModule.java | 13 ++++--------- 2 files changed, 14 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/e0f2a4c5/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 43ba8ff..d1b124b 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 @@ -57,13 +57,16 @@ import com.nurkiewicz.asyncretry.AsyncRetryExecutor; public class ElasticSearchMailboxModule extends AbstractModule { private static final Logger LOGGER = LoggerFactory.getLogger(ElasticSearchMailboxModule.class); - public static final String ES_CONFIG_FILE = FileSystem.FILE_PROTOCOL_AND_CONF + "elasticsearch.properties"; + public static final String ELASTICSEARCH_CONFIGURATION_NAME = "elasticsearch"; 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"; private static final int DEFAULT_CONNECTION_MAX_RETRIES = 7; private static final int DEFAULT_CONNECTION_MIN_DELAY = 3000; private static final boolean DEFAULT_INDEX_ATTACHMENTS = true; + private static final int DEFAULT_NB_SHARDS = 1; + private static final int DEFAULT_NB_REPLICA = 0; + private static final String LOCALHOST = "127.0.0.1"; @Override protected void configure() { @@ -92,8 +95,8 @@ public class ElasticSearchMailboxModule extends AbstractModule { private Client createIndexAndMapping(Client client, PropertiesConfiguration propertiesReader) { IndexCreationFactory.createIndex(client, MailboxElasticsearchConstants.MAILBOX_INDEX, - propertiesReader.getInt("elasticsearch.nb.shards"), - propertiesReader.getInt("elasticsearch.nb.replica")); + propertiesReader.getInt(ELASTICSEARCH_CONFIGURATION_NAME + ".nb.shards", DEFAULT_NB_SHARDS), + propertiesReader.getInt(ELASTICSEARCH_CONFIGURATION_NAME + ".nb.replica", DEFAULT_NB_REPLICA)); NodeMappingFactory.applyMapping(client, MailboxElasticsearchConstants.MAILBOX_INDEX, MailboxElasticsearchConstants.MESSAGE_TYPE, @@ -111,12 +114,12 @@ public class ElasticSearchMailboxModule extends AbstractModule { @Singleton private ElasticSearchConfiguration getElasticSearchConfiguration(PropertiesProvider propertiesProvider) throws ConfigurationException { try { - PropertiesConfiguration configuration = propertiesProvider.getConfiguration("elasticsearch"); + PropertiesConfiguration configuration = propertiesProvider.getConfiguration(ELASTICSEARCH_CONFIGURATION_NAME); return () -> configuration; } catch (FileNotFoundException e) { - LOGGER.warn("Could not find elasticsearch configuration file. Using 127.0.0.1:9300 as contact point"); + LOGGER.warn("Could not find " + ELASTICSEARCH_CONFIGURATION_NAME + " configuration file. Using 127.0.0.1:9300 as contact point"); PropertiesConfiguration propertiesConfiguration = new PropertiesConfiguration(); - propertiesConfiguration.addProperty(ELASTICSEARCH_HOSTS, "127.0.0.1"); + propertiesConfiguration.addProperty(ELASTICSEARCH_HOSTS, LOCALHOST); return () -> propertiesConfiguration; } } @@ -153,7 +156,7 @@ public class ElasticSearchMailboxModule extends AbstractModule { @Provides @Singleton public IndexAttachments provideIndexAttachments(PropertiesConfiguration configuration) { - if (configuration.getBoolean("elasticsearch.indexAttachments", DEFAULT_INDEX_ATTACHMENTS)) { + if (configuration.getBoolean(ELASTICSEARCH_CONFIGURATION_NAME + ".indexAttachments", DEFAULT_INDEX_ATTACHMENTS)) { return IndexAttachments.YES; } return IndexAttachments.NO; http://git-wip-us.apache.org/repos/asf/james-project/blob/e0f2a4c5/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java index d0229dd..b6906bc 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/server/ESMetricReporterModule.java @@ -26,12 +26,12 @@ import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.HierarchicalConfiguration; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.lang.NotImplementedException; -import org.apache.james.filesystem.api.FileSystem; import org.apache.james.lifecycle.api.Configurable; import org.apache.james.metrics.es.ESMetricReporter; import org.apache.james.metrics.es.ESReporterConfiguration; import org.apache.james.modules.mailbox.ElasticSearchMailboxModule; import org.apache.james.utils.ConfigurationPerformer; +import org.apache.james.utils.PropertiesProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -54,9 +54,9 @@ public class ESMetricReporterModule extends AbstractModule { } @Provides - public ESReporterConfiguration provideConfiguration(FileSystem fileSystem) throws ConfigurationException { + public ESReporterConfiguration provideConfiguration(PropertiesProvider propertiesProvider) throws ConfigurationException { try { - PropertiesConfiguration propertiesReader = getPropertiesConfiguration(fileSystem); + PropertiesConfiguration propertiesReader = propertiesProvider.getConfiguration(ElasticSearchMailboxModule.ELASTICSEARCH_CONFIGURATION_NAME); if (isMetricEnable(propertiesReader)) { return ESReporterConfiguration.builder() @@ -68,7 +68,7 @@ public class ESMetricReporterModule extends AbstractModule { .build(); } } catch (FileNotFoundException e) { - LOGGER.info("Can not locate " + ElasticSearchMailboxModule.ES_CONFIG_FILE); + LOGGER.info("Can not locate " + ElasticSearchMailboxModule.ELASTICSEARCH_CONFIGURATION_NAME + " configuration"); } return ESReporterConfiguration.builder() .disabled() @@ -84,11 +84,6 @@ public class ESMetricReporterModule extends AbstractModule { return propertiesReader.getBoolean("elasticsearch.metrics.reports.enabled", DEFAULT_DISABLE); } - private PropertiesConfiguration getPropertiesConfiguration(FileSystem fileSystem) throws ConfigurationException, FileNotFoundException { - return new PropertiesConfiguration( - fileSystem.getFile(ElasticSearchMailboxModule.ES_CONFIG_FILE)); - } - @Singleton public static class ESMetricReporterStarter implements ConfigurationPerformer, Configurable { --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org