This is an automated email from the ASF dual-hosted git repository. ilyak pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push: new 7ce718f IGNITE-13453 Docker: Change run.sh to call java directly 7ce718f is described below commit 7ce718f6e01893afc59957b1014c472a5b15f5ce Author: imurchenko <imurche...@gridgain.com> AuthorDate: Fri Sep 18 12:44:22 2020 +0300 IGNITE-13453 Docker: Change run.sh to call java directly Fixes #8251. Signed-off-by: Ilya Kasnacheev <ilya.kasnach...@gmail.com> --- docker/apache-ignite/run.sh | 102 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 87 insertions(+), 15 deletions(-) diff --git a/docker/apache-ignite/run.sh b/docker/apache-ignite/run.sh index dcb2f4a..7e88a36 100755 --- a/docker/apache-ignite/run.sh +++ b/docker/apache-ignite/run.sh @@ -15,32 +15,104 @@ # See the License for the specific language governing permissions and # limitations under the License. # +source "${IGNITE_HOME}"/bin/include/functions.sh -if [ ! -z "$OPTION_LIBS" ]; then - IFS=, LIBS_LIST=("$OPTION_LIBS") +# +# Discover path to Java executable and check it's version. +# +checkJava +# +# Set IGNITE_LIBS. +# +source "${IGNITE_HOME}"/bin/include/setenv.sh +CP="${IGNITE_LIBS}" +DEFAULT_CONFIG=config/default-config.xml + +# +# Add optional libs to classpath +# +if [ -n "${OPTION_LIBS}" ]; then + IFS=, LIBS_LIST=("$(tr -d '[:space:]' <<< ${OPTION_LIBS})") for lib in ${LIBS_LIST[@]}; do - cp -r $IGNITE_HOME/libs/optional/"$lib" \ - $IGNITE_HOME/libs/ + LIBS=$(JARS=("${IGNITE_HOME}/libs/optional/${lib}"/*); IFS=:; echo "${JARS[*]}") + if [ -z "${USER_LIBS}" ]; then + export USER_LIBS="${LIBS}" + else + export USER_LIBS="${USER_LIBS}:${LIBS}" + fi done fi -if [ ! -z "$EXTERNAL_LIBS" ]; then - IFS=, LIBS_LIST=("$EXTERNAL_LIBS") - - for lib in ${LIBS_LIST[@]}; do - wget $lib -P $IGNITE_HOME/libs +# +# Add external libs to classpath +# +if [ -n "${EXTERNAL_LIBS}" ]; then + IFS=, LIBS_LIST=("${EXTERNAL_LIBS}") + for lib in "${LIBS_LIST[@]}"; do + echo "${lib}" >> "${IGNITE_HOME}"/work/external_libs done + wget --content-disposition -i "${IGNITE_HOME}"/work/external_libs -P "${IGNITE_HOME}"/libs/external + rm "${IGNITE_HOME}"/work/external_libs fi -QUIET="" +# +# Define classpath +# +if [ "${USER_LIBS:-}" != "" ]; then + IGNITE_LIBS=${USER_LIBS:-}:${IGNITE_LIBS} +fi +CP="${IGNITE_LIBS}" +unset IFS + +# +# Define default Java options +# +if [ -z "${JVM_OPTS}" ] ; then + JVM_OPTS="-Xms1g -Xmx1g -server -XX:MaxMetaspaceSize=256m" +fi + +# +# Add Java extra option +# +if [ "${version}" -eq 8 ] ; then + JVM_OPTS="\ + -XX:+AggressiveOpts \ + ${JVM_OPTS}" +elif [ "${version}" -gt 8 ] && [ "${version}" -lt 11 ]; then + JVM_OPTS="\ + -XX:+AggressiveOpts \ + --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \ + --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \ + --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \ + --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \ + --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \ + --illegal-access=permit \ + --add-modules=java.xml.bind \ + ${JVM_OPTS}" +elif [ "${version}" -ge 11 ] ; then + JVM_OPTS="\ + --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED \ + --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \ + --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED \ + --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED \ + --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED \ + --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED \ + --illegal-access=permit \ + ${JVM_OPTS}" +fi -if [ "$IGNITE_QUIET" = "false" ]; then - QUIET="-v" +DIGNITE_QUIET=$(printenv JVM_OPTS | grep -o 'IGNITE_QUIET=[^ ,]\+' | cut -d "=" -f 2) + +if [ "${IGNITE_QUIET}" == "false" -o "${DIGNITE_QUIET}" == "false" ]; then + JVM_OPTS="${JVM_OPTS} -DIGNITE_QUIET=false" fi -if [ -z $CONFIG_URI ]; then - $IGNITE_HOME/bin/ignite.sh $QUIET ${IGNITE_OPTIONS:-} +# +# Start Ignite node +# +if [ -z "${CONFIG_URI}" ]; then + exec "${JAVA}" ${JVM_OPTS} -DIGNITE_HOME="${IGNITE_HOME}" -cp "${CP}" org.apache.ignite.startup.cmdline.CommandLineStartup "${DEFAULT_CONFIG}" else - $IGNITE_HOME/bin/ignite.sh $QUIET ${IGNITE_OPTIONS:-} $CONFIG_URI + exec "${JAVA}" ${JVM_OPTS} -DIGNITE_HOME="${IGNITE_HOME}" -cp "${CP}" org.apache.ignite.startup.cmdline.CommandLineStartup "${CONFIG_URI}" fi