From 5799c9a22304a7b86755acb644feb13afdc07a4c Mon Sep 17 00:00:00 2001 From: blavenie <benoit.lavenier@e-is.pro> Date: Thu, 24 Mar 2016 09:12:22 +0100 Subject: [PATCH] ES: enable log into file. Add option for node network host ES: fix --daemon to NOT stop until kill sig --- ucoinj-elasticsearch-plugin/pom.xml | 3 ++- .../assembly/min/ucoinj-elasticsearch.bat | 2 +- .../main/assembly/min/ucoinj-elasticsearch.sh | 2 +- .../src/main/assembly/min/ucoinj.config | 15 ++++++++++--- .../main/filtered-resources/log4j.properties | 4 ++-- .../io/ucoin/ucoinj/elasticsearch/Main.java | 21 +++++++++++++------ .../elasticsearch/config/Configuration.java | 4 ++++ .../config/ConfigurationOption.java | 7 +++++++ .../service/ElasticSearchService.java | 15 ++++++------- 9 files changed, 52 insertions(+), 21 deletions(-) diff --git a/ucoinj-elasticsearch-plugin/pom.xml b/ucoinj-elasticsearch-plugin/pom.xml index 06d4bcb0..f4106a64 100644 --- a/ucoinj-elasticsearch-plugin/pom.xml +++ b/ucoinj-elasticsearch-plugin/pom.xml @@ -115,8 +115,9 @@ <ucoinj.plugins.directory>${basedir}}/src/test/es-home/plugins</ucoinj.plugins.directory> <es.http.cors.allow-origin>*</es.http.cors.allow-origin> <exec.args> - start reset-market reset-registry index --host metab.ucoin.fr --port 9201 + start index --host metab.ucoin.fr --port 9201 </exec.args> + <ucoinj.log.file>${project.build.directory}/exec.log</ucoinj.log.file> </properties> </profile> diff --git a/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj-elasticsearch.bat b/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj-elasticsearch.bat index 4327e736..289b26db 100644 --- a/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj-elasticsearch.bat +++ b/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj-elasticsearch.bat @@ -32,7 +32,7 @@ echo . set OLDDIR=%CD% cd /d %~dp0% -call "%JAVA_COMMAND%" %JAVA_OPTS% "-Ducoinj.log.file=%APP_LOG_FILE%" "-Ducoinj-elasticsearch.config=%APP_CONF_FILE%" "-Ducoinj.plugins.directory=%APP_BASEDIR%\plugins" -Djna.nosys=true -jar ucoinj-elasticsearch-plugin-${project.version}.jar %1 %2 %3 %4 %5 %6 %7 %8 %9 +call "%JAVA_COMMAND%" %JAVA_OPTS% "-Ducoinj.basedir=%APP_BASEDIR%" "-Ducoinj.plugins.directory=%APP_BASEDIR%\plugins" "-Ducoinj.log.file=%APP_LOG_FILE%" "-Ducoinj-elasticsearch.config=%APP_CONF_FILE%" -Ducoinj.launch.mode=full -Djna.nosys=true -Des.http.cors.allow-origin=* -jar ucoinj-elasticsearch-plugin-${project.version}.jar %1 %2 %3 %4 %5 %6 %7 %8 %9 set exitcode=%ERRORLEVEL% echo Stop with exitcode: %exitcode% cd %OLDDIR% diff --git a/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj-elasticsearch.sh b/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj-elasticsearch.sh index 064c62c4..d0fd97f8 100644 --- a/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj-elasticsearch.sh +++ b/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj-elasticsearch.sh @@ -25,7 +25,7 @@ if [ -d $JAVA_HOME ]; then echo "launch java" echo "java command: $JAVA_COMMAND" - $JAVA_COMMAND $MEMORY $APP_JVM_OPTS -Ducoinj.log.file=$APP_LOG_FILE -Ducoinj-elasticsearch.config=$APP_CONF_FILE -Djna.nosys=true -Ducoinj.basedir=$APP_BASEDIR -Ducoinj.plugins.directory=$APP_BASEDIR/plugins -Des.http.cors.allow-origin=* -jar ucoinj-elasticsearch-plugin-${project.version}.jar $* + $JAVA_COMMAND $MEMORY $APP_JVM_OPTS -Ducoinj.basedir=$APP_BASEDIR -Ducoinj.plugins.directory=$APP_BASEDIR/plugins -Ducoinj.log.file=$APP_LOG_FILE -Ducoinj-elasticsearch.config=$APP_CONF_FILE -Ducoinj.launch.mode=full -Djna.nosys=true -Des.http.cors.allow-origin=* -jar ucoinj-elasticsearch-plugin-${project.version}.jar $* exitcode=$? echo "Stop ${project.name} with exitcode: $exitcode" diff --git a/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj.config b/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj.config index 0dd9a0b5..923c0857 100644 --- a/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj.config +++ b/ucoinj-elasticsearch-plugin/src/main/assembly/min/ucoinj.config @@ -25,9 +25,10 @@ # By default: false #ucoinj.elasticsearch.embedded.enable=true -# If not embedded: ES Node Host -# Could be override using option : '-esh <host>' -#ucoinj.elasticsearch.host=192.168.0.5 +# ES Node Host +# THe node to connect (if NOT embedded node) +# By default: 'localhost' +#ucoinj.elasticsearch.host=<ES_Node_IP> # If not embedded: ES Node Port # Could be override using option : '-esp <port>' @@ -43,3 +44,11 @@ # See ES config 'http.enable' #ucoinj.elasticsearch.http.enable=false +# ES Node Network Host (if http enable) +# Allow values : (see https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html) +# any IP address, or 'localhost' +# _[networkInterface]_ for addresses of a network interface, for example _eth0_ or _en0_. +# _local_ for any loopback addresses on the system +# +# By default: '_local_' +#ucoinj.elasticsearch.network.host=_eth0_ diff --git a/ucoinj-elasticsearch/src/main/filtered-resources/log4j.properties b/ucoinj-elasticsearch/src/main/filtered-resources/log4j.properties index 6cf6649f..4fe203ed 100644 --- a/ucoinj-elasticsearch/src/main/filtered-resources/log4j.properties +++ b/ucoinj-elasticsearch/src/main/filtered-resources/log4j.properties @@ -1,7 +1,7 @@ # Global logging configuration -#log4j.rootLogger=ERROR, stdout, file -log4j.rootLogger=ERROR, stdout +log4j.rootLogger=ERROR, stdout, file +#log4j.rootLogger=ERROR, stdout # Console output log4j.appender.stdout=org.apache.log4j.ConsoleAppender diff --git a/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/Main.java b/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/Main.java index 3a06d3c9..f4b187ed 100644 --- a/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/Main.java +++ b/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/Main.java @@ -110,7 +110,16 @@ public class Main { log.error(e.getMessage(), e); } - if (!config.isDaemon()) { + if (config.isDaemon()) { + while (true) { + try { + Thread.sleep(5000); + } catch(InterruptedException e) { + // Nothing + } + } + } + else { if (arguments.size() > 0) { // Check if auto-quit if need @@ -135,12 +144,10 @@ public class Main { } } } - - // shutdown - shutdown(); - - log.info("uCoinj :: ElasticSearch Indexer successfully stopped"); } + + // shutdown + shutdown(); } /* -- protected methods -- */ @@ -157,6 +164,8 @@ public class Main { // Silent is gold } } + + log.info("uCoinj :: ElasticSearch Indexer successfully stopped"); } protected void initI18n(Configuration config) throws IOException { diff --git a/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/config/Configuration.java b/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/config/Configuration.java index 3d8fd6a6..6dc7de12 100644 --- a/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/config/Configuration.java +++ b/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/config/Configuration.java @@ -257,6 +257,10 @@ public class Configuration { return applicationConfig.getOption(ConfigurationOption.HOST.getKey()); } + public String getNetworkHost() { + return applicationConfig.getOption(ConfigurationOption.NETWORK_HOST.getKey()); + } + public int getPort() { return applicationConfig.getOptionAsInt(ConfigurationOption.PORT.getKey()); } diff --git a/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/config/ConfigurationOption.java b/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/config/ConfigurationOption.java index c7be13cd..957492de 100644 --- a/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/config/ConfigurationOption.java +++ b/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/config/ConfigurationOption.java @@ -129,6 +129,13 @@ public enum ConfigurationOption implements ConfigOptionDef { Integer.class, false), + NETWORK_HOST( + "ucoinj.elasticsearch.network.host", + n("ucoinj.config.option.elasticsearch.network.host.description"), + "_local_", + String.class, + false), + DAEMON( "ucoinj.elasticsearch.daemon", n("ucoinj.config.option.node.elasticsearch.daemon.description"), diff --git a/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/service/ElasticSearchService.java b/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/service/ElasticSearchService.java index 52da3a9a..93194e3d 100644 --- a/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/service/ElasticSearchService.java +++ b/ucoinj-elasticsearch/src/main/java/io/ucoin/ucoinj/elasticsearch/service/ElasticSearchService.java @@ -187,20 +187,21 @@ public class ElasticSearchService implements Bean,InitializingBean, Closeable { .put("path.home", config.getBasedir()) .put("path.data", config.getDataDirectory()) .put("path.plugins", config.getPluginsDirectory()) - // TODO + .put("http.host", config.getHost()) .put("http.cors.enabled", Boolean.TRUE.toString()); - if (!local && enableHttp && StringUtils.isNotBlank(config.getHost())) { - builder.put("http.host", config.getHost()); - if (!"localhost".equalsIgnoreCase(config.getHost())) { - builder.put("network.host", config.getHost()); + + // Set network host + if (!local && enableHttp + && StringUtils.isNotBlank(config.getNetworkHost())) { + if (!"localhost".equalsIgnoreCase(config.getNetworkHost())) { + builder.put("network.host", config.getNetworkHost()); } } - Settings settings = builder.build(); // Create a node builder NodeBuilder nodeBuilder = NodeBuilder.nodeBuilder() .clusterName(clusterName) - .settings(settings) + .settings(builder.build()) .local(local); if (StringUtils.isNotBlank(clusterName)) { -- GitLab