This is an automated email from the ASF dual-hosted git repository.

sk0x50 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new ae3c4660ab IGNITE-17917 Unified ignite3db start scripts. Fixes #1337
ae3c4660ab is described below

commit ae3c4660ab9ae0be9a4f4bef84b002e9e392c243
Author: Aleksandr Pakhomov <[email protected]>
AuthorDate: Tue Nov 22 18:59:41 2022 +0200

    IGNITE-17917 Unified ignite3db start scripts. Fixes #1337
    
    Signed-off-by: Slava Koptilin <[email protected]>
---
 packaging/build.gradle                             | 24 ++++++-
 packaging/cli/build.gradle                         | 18 ++---
 packaging/cli/start.sh                             | 57 ++--------------
 packaging/common/bootstrap-functions.sh            | 56 +++++++++++++++
 packaging/{cli/start.sh => common/setup-java.sh}   | 52 ++------------
 .../config/ignite.java.util.logging.properties     | 47 -------------
 packaging/db/build.gradle                          | 67 +++++++++++-------
 packaging/db/ignite.java.util.logging.properties   |  2 +-
 packaging/docker/Dockerfile                        |  3 +-
 packaging/docker/docker-entrypoint.sh              | 21 +++---
 packaging/linux/start.sh                           | 26 +------
 .../{docker/docker-entrypoint.sh => zip/ignite3db} | 56 +++++++++++----
 packaging/zip/ignite3db.sh                         | 79 ----------------------
 packaging/zip/{bootstrap-config.env => vars.env}   | 25 +++++--
 14 files changed, 216 insertions(+), 317 deletions(-)

diff --git a/packaging/build.gradle b/packaging/build.gradle
index 51c75d93a8..5c013bcf9b 100644
--- a/packaging/build.gradle
+++ b/packaging/build.gradle
@@ -24,6 +24,7 @@ plugins {
 }
 
 import org.gradle.crypto.checksum.Checksum
+import org.apache.tools.ant.filters.ReplaceTokens
 
 configurations {
     dbArtifacts
@@ -41,6 +42,23 @@ dependencies {
     dbZip(project(path: ':packaging-db', configuration: 'dbZip'))
 }
 
+def tokens = [
+        INSTALL_DIR         : '${IGNITE_HOME}',
+        CONF_DIR            : '${IGNITE_HOME}/etc',
+        LIB_DIR             : '${IGNITE_HOME}/lib',
+        APP_JAR             : 
"${project(':ignite-runner').name}-${project(':ignite-runner').version}.jar".toString(),
+        MAIN_CLASS          : 'org.apache.ignite.app.IgniteRunner',
+        BOOTSTRAP_FILE_NAME : 'bootstrap-functions.sh',
+        SETUP_JAVA_FILE_NAME: 'setup-java.sh'
+]
+
+task replaceVars(type: Copy) {
+    from("$rootDir/packaging/common")
+    from("$rootDir/packaging/docker/docker-entrypoint.sh")
+    filter(ReplaceTokens, tokens: tokens)
+    into("$buildDir/docker")
+}
+
 docker {
     name 'apacheignite/ignite3'
     dockerfile file('docker/Dockerfile')
@@ -63,14 +81,18 @@ docker {
         }
         into('bin') {
             fileMode 0755
-            from('docker/docker-entrypoint.sh')
+            from("$buildDir/docker/docker-entrypoint.sh")
         }
         into('lib') {
             from(configurations.dbArtifacts)
+            from("$buildDir/docker/$tokens.BOOTSTRAP_FILE_NAME")
+            from("$buildDir/docker/$tokens.SETUP_JAVA_FILE_NAME")
         }
     }
 }
 
+dockerPrepare.dependsOn replaceVars
+
 // create an uber zip with all distributions
 task allDistZip(type: Zip) {
     archiveBaseName = "ignite3"
diff --git a/packaging/cli/build.gradle b/packaging/cli/build.gradle
index cf6c7a725c..e1cfc1dd18 100644
--- a/packaging/cli/build.gradle
+++ b/packaging/cli/build.gradle
@@ -45,11 +45,9 @@ def tokens = [
         LIB_DIR             : '/usr/lib/ignite3',
         LOG_DIR             : '${HOME}/.ignite3',
         APP_JAR             : 
"${project(':ignite-cli').name}-${project(':ignite-cli').version}.jar".toString(),
+        SETUP_JAVA_FILE_NAME: 'setup-java.sh',
         MAIN_CLASS          : 'org.apache.ignite.internal.cli.Main',
-        JAVA_OPTS           : '',
-        ADDITIONAL_OPTS     : '',
         ARGS                : '$@'
-
 ]
 
 task replaceScriptVars(type: Copy) {
@@ -100,18 +98,19 @@ distributions {
         distributionBaseName = 'ignite3-cli'
         contents {
             into('') {
-                from("$rootDir/LICENSE")
-                from("$rootDir/NOTICE")
-                from("$rootDir/assembly/README.md")
+                from "$rootDir/LICENSE"
+                from "$rootDir/NOTICE"
+                from "$rootDir/assembly/README.md"
             }
             into('bin') {
                 duplicatesStrategy= DuplicatesStrategy.EXCLUDE
-                from(configurations.cliScripts)
-                from(cliStartScript)
+                from configurations.cliScripts
+                from cliStartScript
                 fileMode = 0755
             }
             into('lib') {
-                from(configurations.cliArtifacts)
+                from configurations.cliArtifacts
+                from "$rootDir/packaging/common/setup-java.sh"
             }
         }
     }
@@ -175,6 +174,7 @@ ospackage {
 
     into(tokens.LIB_DIR) {
         from configurations.cliArtifacts
+        from "$rootDir/packaging/common/setup-java.sh"
     }
 
     postInstall file("${buildDir}/postInstall.sh")
diff --git a/packaging/cli/start.sh b/packaging/cli/start.sh
index 288e0deb9d..6918836f90 100644
--- a/packaging/cli/start.sh
+++ b/packaging/cli/start.sh
@@ -17,68 +17,21 @@
 # limitations under the License.
 #
 
-# LOAD VARIABLES
-if [ -f "@ENV_FILE@" ]; then
-  . "@ENV_FILE@"
-fi
+. @LIB_DIR@/@SETUP_JAVA_FILE_NAME@
 
 LOG_DIR="@LOG_DIR@"
-JAVA_OPTS="@JAVA_OPTS@"
-ADDITIONAL_OPTS="@ADDITIONAL_OPTS@"
 CLASSPATH="@LIB_DIR@/@APP_JAR@:@LIB_DIR@/*"
 MAIN_CLASS="@MAIN_CLASS@"
 ARGS="@ARGS@"
 
-DEFAULT_JVM_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED \
---add-opens java.base/java.lang.invoke=ALL-UNNAMED \
---add-opens java.base/java.lang.reflect=ALL-UNNAMED \
---add-opens java.base/java.io=ALL-UNNAMED \
---add-opens java.base/java.nio=ALL-UNNAMED \
---add-opens java.base/java.math=ALL-UNNAMED \
---add-opens java.base/java.util=ALL-UNNAMED \
---add-opens java.base/jdk.internal.misc=ALL-UNNAMED \
--Dfile.encoding=UTF-8 \
--XX:+HeapDumpOnOutOfMemoryError \
--XX:+ExitOnOutOfMemoryError \
--XX:HeapDumpPath=$LOG_DIR"
-
-
-warn () {
-    echo "$*"
-} >&2
-
-die () {
-    echo
-    echo "$*"
-    echo
-    exit 1
-} >&2
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
-        # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD=$JAVA_HOME/jre/sh/java
-    else
-        JAVACMD=$JAVA_HOME/bin/java
-    fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-        Please set the JAVA_HOME variable in your environment to match the
-        location of your Java installation."
-    fi
-else
-    JAVACMD=java
-    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 
'java' command could be found in your PATH.
-    Please set the JAVA_HOME variable in your environment to match the
-    location of your Java installation."
-fi
+DEFAULT_JVM_OPTS="-Dfile.encoding=UTF-8 \
+    -XX:+HeapDumpOnOutOfMemoryError \
+    -XX:+ExitOnOutOfMemoryError \
+    -XX:HeapDumpPath=${LOG_DIR}"
 
 
 CMD="${JAVACMD} \
 ${DEFAULT_JVM_OPTS} \
-${JAVA_OPTS} \
-${ADDITIONAL_OPTS} \
 -classpath ${CLASSPATH} \
 ${MAIN_CLASS} \
 ${ARGS}"
diff --git a/packaging/common/bootstrap-functions.sh 
b/packaging/common/bootstrap-functions.sh
new file mode 100644
index 0000000000..fa28702046
--- /dev/null
+++ b/packaging/common/bootstrap-functions.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+#
+# 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.
+#
+
+. @LIB_DIR@/@SETUP_JAVA_FILE_NAME@
+
+
+ADD_OPENS_JAVA_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED \
+    --add-opens java.base/java.lang.invoke=ALL-UNNAMED \
+    --add-opens java.base/java.lang.reflect=ALL-UNNAMED \
+    --add-opens java.base/java.io=ALL-UNNAMED \
+    --add-opens java.base/java.nio=ALL-UNNAMED \
+    --add-opens java.base/java.math=ALL-UNNAMED \
+    --add-opens java.base/java.util=ALL-UNNAMED \
+    --add-opens java.base/jdk.internal.misc=ALL-UNNAMED "
+
+# used by rpm, deb, zip and docker distributions
+export COMMON_JAVA_OPTS="
+    ${ADD_OPENS_JAVA_OPTS} \
+    -Dio.netty.tryReflectionSetAccessible=true \
+    -Dfile.encoding=UTF-8 \
+    -XX:+HeapDumpOnOutOfMemoryError \
+    -XX:+ExitOnOutOfMemoryError"
+
+export LOGGING_JAVA_OPTS="
+    
-Djava.util.logging.config.file=@CONF_DIR@/ignite.java.util.logging.properties \
+    -XX:HeapDumpPath=@LOG_DIR@ \
+    
-Xlog:gc=info:file=@LOG_DIR@/${JVM_GC_LOG_NAME}::filecount=${JVM_GC_NUM_LOGS},filesize=${JVM_GC_LOG_SIZE}"
+
+export CLASSPATH="-classpath @INSTALL_DIR@/lib/@APP_JAR@:@INSTALL_DIR@/lib/* 
@MAIN_CLASS@"
+
+export JAVA_CMD_WITH_ARGS="${JAVACMD} \
+  ${COMMON_JAVA_OPTS} \
+  ${LOGGING_JAVA_OPTS} \
+  ${CLASSPATH} \
+  ${IGNITE3_EXTRA_JVM_ARGS}"
+
+export APPLICATION_ARGS="\
+  --config-path ${CONFIG_FILE} \
+  --work-dir ${WORK_DIR} \
+  --node-name ${NODE_NAME}"
diff --git a/packaging/cli/start.sh b/packaging/common/setup-java.sh
similarity index 54%
copy from packaging/cli/start.sh
copy to packaging/common/setup-java.sh
index 288e0deb9d..d4a3bfb32a 100644
--- a/packaging/cli/start.sh
+++ b/packaging/common/setup-java.sh
@@ -17,32 +17,6 @@
 # limitations under the License.
 #
 
-# LOAD VARIABLES
-if [ -f "@ENV_FILE@" ]; then
-  . "@ENV_FILE@"
-fi
-
-LOG_DIR="@LOG_DIR@"
-JAVA_OPTS="@JAVA_OPTS@"
-ADDITIONAL_OPTS="@ADDITIONAL_OPTS@"
-CLASSPATH="@LIB_DIR@/@APP_JAR@:@LIB_DIR@/*"
-MAIN_CLASS="@MAIN_CLASS@"
-ARGS="@ARGS@"
-
-DEFAULT_JVM_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED \
---add-opens java.base/java.lang.invoke=ALL-UNNAMED \
---add-opens java.base/java.lang.reflect=ALL-UNNAMED \
---add-opens java.base/java.io=ALL-UNNAMED \
---add-opens java.base/java.nio=ALL-UNNAMED \
---add-opens java.base/java.math=ALL-UNNAMED \
---add-opens java.base/java.util=ALL-UNNAMED \
---add-opens java.base/jdk.internal.misc=ALL-UNNAMED \
--Dfile.encoding=UTF-8 \
--XX:+HeapDumpOnOutOfMemoryError \
--XX:+ExitOnOutOfMemoryError \
--XX:HeapDumpPath=$LOG_DIR"
-
-
 warn () {
     echo "$*"
 } >&2
@@ -55,33 +29,21 @@ die () {
 } >&2
 
 # Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
-    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+if [ -n "${JAVA_HOME}" ] ; then
+    if [ -x "${JAVA_HOME}/jre/sh/java" ] ; then
         # IBM's JDK on AIX uses strange locations for the executables
-        JAVACMD=$JAVA_HOME/jre/sh/java
+        export JAVACMD=${JAVA_HOME}/jre/sh/java
     else
-        JAVACMD=$JAVA_HOME/bin/java
+        export JAVACMD=${JAVA_HOME}/bin/java
     fi
-    if [ ! -x "$JAVACMD" ] ; then
-        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+    if [ ! -x "${JAVACMD}" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: ${JAVA_HOME}
         Please set the JAVA_HOME variable in your environment to match the
         location of your Java installation."
     fi
 else
-    JAVACMD=java
+    export JAVACMD=java
     which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 
'java' command could be found in your PATH.
     Please set the JAVA_HOME variable in your environment to match the
     location of your Java installation."
 fi
-
-
-CMD="${JAVACMD} \
-${DEFAULT_JVM_OPTS} \
-${JAVA_OPTS} \
-${ADDITIONAL_OPTS} \
--classpath ${CLASSPATH} \
-${MAIN_CLASS} \
-${ARGS}"
-
-${CMD}
-
diff --git a/packaging/config/ignite.java.util.logging.properties 
b/packaging/config/ignite.java.util.logging.properties
deleted file mode 100644
index 5825d44f4d..0000000000
--- a/packaging/config/ignite.java.util.logging.properties
+++ /dev/null
@@ -1,47 +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.
-#
-
-#########################################################################
-#       Default java.util.logging configuration for Ignite instance.
-#
-# To use another config file use `java.util.logging.config.file` system
-# property. For example `java -Djava.util.logging.config.file=myfile`
-#########################################################################
-
-#
-# Comma-separated list of logging "handlers". Note that some of them may be
-# reconfigured (or even removed) at runtime according to system properties.
-handlers=java.util.logging.FileHandler
-
-#
-# Default global logging level.
-# This specifies which kinds of events are logged across all loggers.
-# For any given category this global level can be overridden by a category
-# specific level.
-# Note that handlers also have a separate level setting to limit messages
-# printed through it.
-#
-.level=INFO
-
-# Console handler logs all messages with importance level `SEVERE` and above
-# into standard error stream (`System.err`).
-#
-java.util.logging.FileHandler.formatter = 
org.apache.ignite.lang.JavaLoggerFormatter
-java.util.logging.FileHandler.pattern = ./ignite3db-%g.log
-java.util.logging.FileHandler.level = INFO
-java.util.logging.FileHandler.limit = 10485760
-java.util.logging.FileHandler.count = 10
diff --git a/packaging/db/build.gradle b/packaging/db/build.gradle
index e04c748803..4e17455082 100644
--- a/packaging/db/build.gradle
+++ b/packaging/db/build.gradle
@@ -35,8 +35,37 @@ dependencies {
     dbArtifacts(project(':ignite-runner'))
 }
 
+def tokens = [
+        PRODUCT_NAME        : 'ignite3db',
+        PACKAGE_NAME        : 'ignite3-db',
+        PRODUCT_DISPLAY_NAME: 'Apache Ignite',
+        APP_JAR             : 
"${project(':ignite-runner').name}-${project(':ignite-runner').version}.jar".toString(),
+        MAIN_CLASS          : 'org.apache.ignite.app.IgniteRunner',
+        VARS_FILE_NAME      : 'vars.env',
+        BOOTSTRAP_FILE_NAME : 'bootstrap-functions.sh',
+        SETUP_JAVA_FILE_NAME: 'setup-java.sh'
+]
+
 // ZIP packaging
 
+def zipStartScriptTokens = tokens + [
+        LOG_DIR             : '${IGNITE_HOME}/log',
+        APP_LOG_DIR         : 'log', // java logging does not support env 
variables, using relative path here
+        LIB_DIR             : '${IGNITE_HOME}/lib',
+        CONF_DIR            : '${IGNITE_HOME}/etc',
+        INSTALL_DIR         : '${IGNITE_HOME}'
+]
+
+task replaceZipScriptVars(type: Copy) {
+    from("$rootDir/packaging/common")
+    from("$rootDir/packaging/zip")
+    from("$rootDir/packaging/db/ignite.java.util.logging.properties")
+
+    filter(ReplaceTokens, tokens: zipStartScriptTokens)
+
+    into("$buildDir/zip/")
+}
+
 distributions {
     main {
         distributionBaseName = 'ignite3-db'
@@ -56,24 +85,25 @@ distributions {
                 from("$rootDir/assembly/README.md")
             }
             into('etc') {
-                from("$rootDir/packaging/zip/bootstrap-config.env")
+                from("$buildDir/zip/${zipStartScriptTokens.VARS_FILE_NAME}")
                 from("$rootDir/packaging/config/ignite-config.conf")
-                
from("$rootDir/packaging/config/ignite.java.util.logging.properties")
+                from("$buildDir/zip/ignite.java.util.logging.properties")
             }
             into('bin') {
                 fileMode 0755
-                from("$rootDir/packaging/zip/ignite3db.sh")
-                rename {
-                    "ignite3db"
-                }
+                from("$buildDir/zip/ignite3db")
             }
             into('lib') {
                 from configurations.dbArtifacts
+                
from("$buildDir/zip/${zipStartScriptTokens.BOOTSTRAP_FILE_NAME}")
+                
from("$buildDir/zip/${zipStartScriptTokens.SETUP_JAVA_FILE_NAME}")
             }
         }
     }
 }
 
+distZip.dependsOn replaceZipScriptVars
+
 task createChecksums(type: Checksum) {
     //TODO: remove distribution name hard code IGNITE-18092
     files = 
files(file("${buildDir}/distributions/ignite3-db-${project.version}.zip"))
@@ -84,6 +114,7 @@ task createChecksums(type: Checksum) {
 distTar.finalizedBy(createChecksums)
 distZip.finalizedBy(createChecksums)
 
+
 // Expose zip artifacts to be consumed by others
 configurations {
     dbZip {
@@ -104,40 +135,24 @@ signing {
 
 // RPM/DEB packaging
 
-def javaArgs = '-Dio.netty.tryReflectionSetAccessible=true ' +
-        
'-Djava.util.logging.config.file=$CONFIG_PATH/ignite.java.util.logging.properties'
-
-def args = '--config-path $IGNITE_CONFIG_FILE --work-dir $WORK_PATH $NODE_NAME'
-
-def tokens = [
-        PRODUCT_NAME        : 'ignite3db',
-        PACKAGE_NAME        : 'ignite3-db',
-        PRODUCT_DISPLAY_NAME: 'Apache Ignite',
-        APP_JAR             : 
"${project(':ignite-runner').name}-${project(':ignite-runner').version}.jar".toString(),
-        MAIN_CLASS          : 'org.apache.ignite.app.IgniteCliRunner',
-        ADDITIONAL_OPTS     : '',
-        JAVA_OPTS           : javaArgs,
-        ARGS                : args
-]
-
 def packageTokens = tokens + [
         USERNAME            : 'ignite3',
         GROUPNAME           : 'ignite3',
         INSTALL_DIR         : '/usr/share/ignite3db',
         CONF_DIR            : '/usr/share/ignite3db/etc',
         LOG_DIR             : '/var/log/ignite3db',
+        APP_LOG_DIR         : '/var/log/ignite3db',
         PID_DIR             : '/var/run/ignite3db',
         LIB_DIR             : '/usr/share/ignite3db/lib',
         IGNITE_WORK_DIR     : '/usr/share/ignite3db/work',
-        VARS_FILE_NAME      : 'vars.env',
-        IGNITE_CONF_FILE    : 'ignite-config.conf',
-        ENV_FILE            : '/usr/share/ignite3db/etc/vars.env'
+        IGNITE_CONF_FILE    : 'ignite-config.conf'
 ]
 
 
 task replacePackageScriptVars(type: Copy) {
     from("${rootDir}/packaging/linux")
     from("${rootDir}/packaging/db/ignite.java.util.logging.properties")
+    from("$rootDir/packaging/common")
     filter(ReplaceTokens, tokens: packageTokens)
     into("${buildDir}/linux")
 }
@@ -189,6 +204,8 @@ ospackage {
 
         into("lib") {
             from configurations.dbArtifacts
+            from("$buildDir/linux/${zipStartScriptTokens.BOOTSTRAP_FILE_NAME}")
+            
from("$buildDir/linux/${zipStartScriptTokens.SETUP_JAVA_FILE_NAME}")
         }
 
         into("etc") {
diff --git a/packaging/db/ignite.java.util.logging.properties 
b/packaging/db/ignite.java.util.logging.properties
index c173554dd5..a1ebb74acf 100644
--- a/packaging/db/ignite.java.util.logging.properties
+++ b/packaging/db/ignite.java.util.logging.properties
@@ -41,7 +41,7 @@ handlers=java.util.logging.FileHandler
 # into standard error stream (`System.err`).
 #
 java.util.logging.FileHandler.formatter = 
org.apache.ignite.lang.JavaLoggerFormatter
-java.util.logging.FileHandler.pattern = @LOG_DIR@/ignite3db-%g.log
+java.util.logging.FileHandler.pattern = @APP_LOG_DIR@/ignite3db-%g.log
 java.util.logging.FileHandler.level = INFO
 java.util.logging.FileHandler.limit = 10485760
 java.util.logging.FileHandler.count = 10
diff --git a/packaging/docker/Dockerfile b/packaging/docker/Dockerfile
index 4a01c3e672..560aea914d 100644
--- a/packaging/docker/Dockerfile
+++ b/packaging/docker/Dockerfile
@@ -2,8 +2,7 @@ FROM eclipse-temurin:11-jre
 
 ENV IGNITE_HOME /opt/ignite
 
-ENV LIBS_PATH $IGNITE_HOME/lib
-ENV CONFIG_PATH $IGNITE_HOME/etc
+ENV LIBS_DIR $IGNITE_HOME/lib
 
 ENV IGNITE_NODE_NAME defaultNode
 ENV IGNITE_WORK_DIR $IGNITE_HOME/work
diff --git a/packaging/docker/docker-entrypoint.sh 
b/packaging/docker/docker-entrypoint.sh
index 420a10cd4a..96e71b77b9 100644
--- a/packaging/docker/docker-entrypoint.sh
+++ b/packaging/docker/docker-entrypoint.sh
@@ -17,17 +17,14 @@
 # limitations under the License.
 #
 
-CMD="java \
---add-opens java.base/java.lang=ALL-UNNAMED \
---add-opens java.base/java.lang.invoke=ALL-UNNAMED \
---add-opens java.base/java.lang.reflect=ALL-UNNAMED \
---add-opens java.base/java.io=ALL-UNNAMED \
---add-opens java.base/java.nio=ALL-UNNAMED \
---add-opens java.base/java.math=ALL-UNNAMED \
---add-opens java.base/java.util=ALL-UNNAMED \
---add-opens java.base/jdk.internal.misc=ALL-UNNAMED \
--Dio.netty.tryReflectionSetAccessible=true \
--Djava.util.logging.config.file=$CONFIG_PATH/ignite.java.util.logging.properties
 \
--classpath $LIBS_PATH/ignite-runner.jar:$LIBS_PATH/* 
org.apache.ignite.app.IgniteRunner"
+. @LIB_DIR@/@BOOTSTRAP_FILE_NAME@
+
+LOGGING_JAVA_OPTS="-Djava.util.logging.config.file=@CONF_DIR@/ignite.java.util.logging.properties"
+
+CMD="${JAVACMD} \
+  ${COMMON_JAVA_OPTS} \
+  ${LOGGING_JAVA_OPTS} \
+  ${CLASSPATH} \
+  ${IGNITE3_EXTRA_JVM_ARGS}"
 
 exec $CMD "$@"
diff --git a/packaging/linux/start.sh b/packaging/linux/start.sh
index a4121ae007..bdbc1d5337 100644
--- a/packaging/linux/start.sh
+++ b/packaging/linux/start.sh
@@ -17,27 +17,7 @@
 #
 
 . @CONF_DIR@/@VARS_FILE_NAME@
+. @LIB_DIR@/@BOOTSTRAP_FILE_NAME@
 
-CMD="java \
---add-opens java.base/java.lang=ALL-UNNAMED \
---add-opens java.base/java.lang.invoke=ALL-UNNAMED \
---add-opens java.base/java.lang.reflect=ALL-UNNAMED \
---add-opens java.base/java.io=ALL-UNNAMED \
---add-opens java.base/java.nio=ALL-UNNAMED \
---add-opens java.base/java.math=ALL-UNNAMED \
---add-opens java.base/java.util=ALL-UNNAMED \
---add-opens java.base/jdk.internal.misc=ALL-UNNAMED \
--Dfile.encoding=UTF-8 \
--XX:+HeapDumpOnOutOfMemoryError \
--XX:+ExitOnOutOfMemoryError \
--XX:HeapDumpPath=@LOG_DIR@ \
--Xlog:gc=info:file=@LOG_DIR@/${JVM_GC_LOG_NAME}::filecount=${JVM_GC_NUM_LOGS},filesize=${JVM_GC_LOG_SIZE}
 \
--Dio.netty.tryReflectionSetAccessible=true \
--Djava.util.logging.config.file=@CONF_DIR@/ignite.java.util.logging.properties 
\
-${IGNITE3_EXTRA_JVM_ARGS} \
--classpath @INSTALL_DIR@/lib:@INSTALL_DIR@/lib/* 
org.apache.ignite.app.IgniteRunner \
---config-path ${CONFIG_FILE} \
---work-dir ${WORK_DIR} \
---node-name ${NODE_NAME}"
-
-${CMD}
+CMD="${JAVA_CMD_WITH_ARGS} ${APPLICATION_ARGS}"
+$CMD
diff --git a/packaging/docker/docker-entrypoint.sh b/packaging/zip/ignite3db
old mode 100644
new mode 100755
similarity index 53%
copy from packaging/docker/docker-entrypoint.sh
copy to packaging/zip/ignite3db
index 420a10cd4a..9e90f2fdd2
--- a/packaging/docker/docker-entrypoint.sh
+++ b/packaging/zip/ignite3db
@@ -17,17 +17,45 @@
 # limitations under the License.
 #
 
-CMD="java \
---add-opens java.base/java.lang=ALL-UNNAMED \
---add-opens java.base/java.lang.invoke=ALL-UNNAMED \
---add-opens java.base/java.lang.reflect=ALL-UNNAMED \
---add-opens java.base/java.io=ALL-UNNAMED \
---add-opens java.base/java.nio=ALL-UNNAMED \
---add-opens java.base/java.math=ALL-UNNAMED \
---add-opens java.base/java.util=ALL-UNNAMED \
---add-opens java.base/jdk.internal.misc=ALL-UNNAMED \
--Dio.netty.tryReflectionSetAccessible=true \
--Djava.util.logging.config.file=$CONFIG_PATH/ignite.java.util.logging.properties
 \
--classpath $LIBS_PATH/ignite-runner.jar:$LIBS_PATH/* 
org.apache.ignite.app.IgniteRunner"
-
-exec $CMD "$@"
+SCRIPT=$(readlink -f "$0")
+SCRIPT_DIR=$(dirname "$SCRIPT")
+
+cd ${SCRIPT_DIR} || exit
+cd .. # SCRIPT_DIR points at bin
+
+# if IGNITE_HOME is not set than it will be parent directory for bin
+if [ -z ${IGNITE_HOME+x} ]; then IGNITE_HOME=$(pwd); fi
+
+
+. @CONF_DIR@/@VARS_FILE_NAME@
+. ${IGNITE_HOME}/lib/@BOOTSTRAP_FILE_NAME@
+
+cd ${IGNITE_HOME} || exit
+
+start() {
+  CMD="${JAVA_CMD_WITH_ARGS} ${APPLICATION_ARGS}"
+  $CMD >>/dev/null 2>&1 </dev/null & echo $! >${IGNITE_HOME}/pid
+}
+
+stop() {
+  kill -9 "$(cat ${IGNITE_HOME}/pid)"
+}
+
+case $1 in
+start)
+  start
+  ;;
+stop)
+  stop
+  ;;
+restart)
+  stop
+  start
+  ;;
+*)
+  echo "Unknown command '$1', available commands: start, stop, restart"
+  exit 1
+  ;;
+esac
+
+
diff --git a/packaging/zip/ignite3db.sh b/packaging/zip/ignite3db.sh
deleted file mode 100755
index dff339f131..0000000000
--- a/packaging/zip/ignite3db.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/sh
-
-#
-# 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.
-#
-
-############# STAGE 1: SETUP ENV ###############
-
-  # LOAD VARIABLES
-  if [ -z ${IGNITE_HOME+x} ]; then IGNITE_HOME=$(pwd); fi
-
-  . $IGNITE_HOME/etc/bootstrap-config.env
-
-  # Export these variables so that IgniteRunner can use them as default values
-  export IGNITE_NODE_NAME=$NODE_NAME
-  export IGNITE_WORK_DIR=$WORK_PATH
-  export IGNITE_CONFIG_PATH=$IGNITE_CONFIG_FILE
-
-
-start() {
-
-  ############# STAGE 2: BUILD CMD ###############
-
-  # FORM A START COMMAND
-  CMD="java \
-  --add-opens java.base/java.lang=ALL-UNNAMED \
-  --add-opens java.base/java.lang.invoke=ALL-UNNAMED \
-  --add-opens java.base/java.lang.reflect=ALL-UNNAMED \
-  --add-opens java.base/java.io=ALL-UNNAMED \
-  --add-opens java.base/java.nio=ALL-UNNAMED \
-  --add-opens java.base/java.math=ALL-UNNAMED \
-  --add-opens java.base/java.util=ALL-UNNAMED \
-  --add-opens java.base/jdk.internal.misc=ALL-UNNAMED \
-  -Dio.netty.tryReflectionSetAccessible=true \
-  
-Djava.util.logging.config.file=$CONFIG_PATH/ignite.java.util.logging.properties
 \
-  -classpath $LIBS_PATH/ignite-runner.jar:$LIBS_PATH/* 
org.apache.ignite.app.IgniteRunner"
-
-  ############# STAGE 3: RUN CMD, REPORT ###############
-  exec ${CMD} >>${LOG_OUT_FILE:-/dev/null} 2>&1 < /dev/null & jobs -p > 
${IGNITE_HOME}/pid
-
-  # TODO: SAVE PROCESS PID AND LINK IT WITH THE NODE NAME
-  # TODO: WAIT FOR NODE IS STARTED
-  # TODO: REPORT SUCCESS OR FAILURE
-  # TODO: SHOW HOW TO CONNECT TO THE STARTED NODE
-}
-
-stop() {
-  kill -9 "$(cat ${IGNITE_HOME}/pid)"
-}
-
-case $1 in
-       start)
-    start
-               ;;
-       stop)
-    stop
-               ;;
-       restart)
-               stop
-               start
-               ;;
-       *)
-               echo "Unknown command '$1', available commands: start, stop, 
restart"
-               exit 1
-               ;;
-  esac
diff --git a/packaging/zip/bootstrap-config.env b/packaging/zip/vars.env
similarity index 62%
rename from packaging/zip/bootstrap-config.env
rename to packaging/zip/vars.env
index 2c224ff62e..023fee1d98 100644
--- a/packaging/zip/bootstrap-config.env
+++ b/packaging/zip/vars.env
@@ -17,11 +17,22 @@
 
 NODE_NAME=defaultNode
 
-WORK_PATH=$IGNITE_HOME/work
-LOGS_PATH=$IGNITE_HOME/log
-LIBS_PATH=$IGNITE_HOME/lib
-BIN_PATH=$IGNITE_HOME/bin
-CONFIG_PATH=$IGNITE_HOME/etc
+WORK_DIR=${IGNITE_HOME}/work
+LOG_DIR=${IGNITE_HOME}/log
+LIBS_DIR=${IGNITE_HOME}/lib
+CONF_DIR=${IGNITE_HOME}/etc
+INSTALL_DIR=${IGNITE_HOME}
 
-IGNITE_CONFIG_FILE=$CONFIG_PATH/ignite-config.conf
-LOG_OUT_FILE=$LOGS_PATH/${NODE_NAME}.log
+LOG_FILE_PATTERN=${LOG_DIR}/ignite3db-%g.log
+CONFIG_FILE=${CONF_DIR}/ignite-config.conf
+
+#JVM props
+JVM_MAX_MEM="16384m"
+JVM_MIN_MEM="16384m"
+JVM_GC="G1GC"
+JVM_G1HeapRegionSize="32M"
+JVM_GC_LOG_NAME="gc.log.$(date -u +%Y%m%d_%H%M%S)"
+JVM_GC_LOG_SIZE="104857600"
+JVM_GC_NUM_LOGS="10"
+##For any additional users settings
+IGNITE3_EXTRA_JVM_ARGS=

Reply via email to