You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by kr...@apache.org on 2019/08/22 12:29:14 UTC
[knox] branch master updated: KNOX-1957 - Optional APP_JAVA_OPTS
are handled properly (#131)
This is an automated email from the ASF dual-hosted git repository.
krisden pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git
The following commit(s) were added to refs/heads/master by this push:
new cc27ffe KNOX-1957 - Optional APP_JAVA_OPTS are handled properly (#131)
cc27ffe is described below
commit cc27ffebf8b41895612526246f7c3189bcdf9e1f
Author: Sandor Molnar <sm...@apache.org>
AuthorDate: Thu Aug 22 14:29:10 2019 +0200
KNOX-1957 - Optional APP_JAVA_OPTS are handled properly (#131)
---
gateway-release-common/home/bin/knox-functions.sh | 37 +++++++++++++++++++++--
gateway-release/home/bin/gateway.sh | 8 ++---
gateway-release/home/bin/knoxcli.sh | 37 +++++++++++++++++++----
gateway-release/home/bin/ldap.sh | 9 ++----
gateway-shell-release/home/bin/knoxshell.sh | 33 ++++++++++++++++++--
5 files changed, 103 insertions(+), 21 deletions(-)
diff --git a/gateway-release-common/home/bin/knox-functions.sh b/gateway-release-common/home/bin/knox-functions.sh
index c528ca6..b48e967 100644
--- a/gateway-release-common/home/bin/knox-functions.sh
+++ b/gateway-release-common/home/bin/knox-functions.sh
@@ -38,6 +38,9 @@ APP_KILL_WAIT_TIME=10
DEFAULT_JAVA_LIB_PATH="-Djava.library.path=$APP_HOME_DIR/ext/native"
APP_JAVA_LIB_PATH=${KNOX_GATEWAY_JAVA_LIB_PATH:-$DEFAULT_JAVA_LIB_PATH}
+# JAVA options used by the JVM
+declare -a APP_JAVA_OPTS
+
############################
##### common functions #####
@@ -132,6 +135,34 @@ function printEnv() {
fi
}
+function addAppJavaOpts {
+ options_array=$(echo "${1}" | tr " " "\n")
+ for option in ${options_array}
+ do
+ APP_JAVA_OPTS+=("$option")
+ done
+}
+
+function buildAppJavaOpts {
+ if [ -n "$APP_MEM_OPTS" ]; then
+ addAppJavaOpts "${APP_MEM_OPTS}"
+ fi
+
+ if [ -n "$APP_LOG_OPTS" ]; then
+ addAppJavaOpts "${APP_LOG_OPTS}"
+ fi
+
+ if [ -n "$APP_DBG_OPTS" ]; then
+ addAppJavaOpts "${APP_DBG_OPTS}"
+ fi
+
+ if [ -n "$APP_JAVA_LIB_PATH" ]; then
+ addAppJavaOpts "${APP_JAVA_LIB_PATH}"
+ fi
+
+ # echo "APP_JAVA_OPTS =" "${APP_JAVA_OPTS[@]}"
+}
+
function appIsRunning {
if [ "$1" -eq 0 ]; then return 0; fi
@@ -169,8 +200,10 @@ function getPID {
}
function appStart {
+ buildAppJavaOpts
+
if [ "$APP_RUNNING_IN_FOREGROUND" == true ]; then
- exec "$JAVA" "$APP_JAVA_OPTS" -jar "$APP_JAR" "$@"
+ exec "$JAVA" "${APP_JAVA_OPTS[@]}" -jar "$APP_JAR" "$@"
else
if getPID; then
printf "%s is already running with PID %d.\n" "$APP_LABEL" "$APP_PID"
@@ -181,7 +214,7 @@ function appStart {
rm -f "$APP_PID_FILE"
- nohup "$JAVA" "$APP_JAVA_OPTS" -jar "$APP_JAR" "$@" >>"$APP_OUT_FILE" 2>>"$APP_ERR_FILE" & printf %s $!>"$APP_PID_FILE" || exit 1
+ nohup "$JAVA" "${APP_JAVA_OPTS[@]}" -jar "$APP_JAR" "$@" >>"$APP_OUT_FILE" 2>>"$APP_ERR_FILE" & printf %s $!>"$APP_PID_FILE" || exit 1
##give a second to the JVM to start and run validation
sleep 1
diff --git a/gateway-release/home/bin/gateway.sh b/gateway-release/home/bin/gateway.sh
index a751705..9065cd9 100755
--- a/gateway-release/home/bin/gateway.sh
+++ b/gateway-release/home/bin/gateway.sh
@@ -48,13 +48,13 @@ DEFAULT_APP_LOG_DIR="$APP_HOME_DIR/logs"
APP_LOG_DIR=${KNOX_GATEWAY_LOG_DIR:-$DEFAULT_APP_LOG_DIR}
# The app's logging options
-APP_LOG_OPTS="$KNOX_GATEWAY_LOG_OPTS"
+export APP_LOG_OPTS="$KNOX_GATEWAY_LOG_OPTS"
# The app's memory options
-APP_MEM_OPTS="$KNOX_GATEWAY_MEM_OPTS"
+export APP_MEM_OPTS="$KNOX_GATEWAY_MEM_OPTS"
# The app's debugging options
-APP_DBG_OPTS="$KNOX_GATEWAY_DBG_OPTS"
+export APP_DBG_OPTS="$KNOX_GATEWAY_DBG_OPTS"
# Name of PID file
DEFAULT_APP_PID_DIR="$APP_HOME_DIR/pids"
@@ -68,8 +68,6 @@ export APP_ERR_FILE="$APP_LOG_DIR/$APP_NAME.err"
DEFAULT_APP_RUNNING_IN_FOREGROUND="$GATEWAY_SERVER_RUN_IN_FOREGROUND"
export APP_RUNNING_IN_FOREGROUND=${KNOX_GATEWAY_RUNNING_IN_FOREGROUND:-$DEFAULT_APP_RUNNING_IN_FOREGROUND}
-export APP_JAVA_OPTS="$APP_JAVA_LIB_PATH $APP_MEM_OPTS $APP_DBG_OPTS $APP_LOG_OPTS"
-
function main {
checkJava
diff --git a/gateway-release/home/bin/knoxcli.sh b/gateway-release/home/bin/knoxcli.sh
index 7d6e70d..2bb3208 100755
--- a/gateway-release/home/bin/knoxcli.sh
+++ b/gateway-release/home/bin/knoxcli.sh
@@ -32,16 +32,41 @@ APP_JAR="$APP_BIN_DIR/knoxcli.jar"
# Source common functions
. "$APP_BIN_DIR"/knox-functions.sh
-APP_JAVA_OPTS="$APP_JAVA_LIB_PATH $KNOX_CLI_MEM_OPTS $KNOX_CLI_DBG_OPTS $KNOX_CLI_LOG_OPTS"
+# JAVA options used by the JVM
+declare -a APP_JAVA_OPTS
-function main {
- checkJava
+function addAppJavaOpts {
+ options_array=$(echo "${1}" | tr " " "\n")
+ for option in ${options_array}
+ do
+ APP_JAVA_OPTS+=("$option")
+ done
+}
+
+function buildAppJavaOpts {
+ if [ -n "$KNOX_CLI_MEM_OPTS" ]; then
+ addAppJavaOpts "${KNOX_CLI_MEM_OPTS}"
+ fi
+
+ if [ -n "$KNOX_CLI_LOG_OPTS" ]; then
+ addAppJavaOpts "${KNOX_CLI_LOG_OPTS}"
+ fi
- #printf "Starting $APP_LABEL \n"
- #printf "$@"
+ if [ -n "$KNOX_CLI_DBG_OPTS" ]; then
+ addAppJavaOpts "${KNOX_CLI_DBG_OPTS}"
+ fi
- $JAVA "$APP_JAVA_OPTS" -jar "$APP_JAR" "$@" || exit 1
+ if [ -n "$APP_JAVA_LIB_PATH" ]; then
+ addAppJavaOpts "${APP_JAVA_LIB_PATH}"
+ fi
+ # echo "APP_JAVA_OPTS =" "${APP_JAVA_OPTS[@]}"
+}
+
+function main {
+ checkJava
+ buildAppJavaOpts
+ $JAVA "${APP_JAVA_OPTS[@]}" -jar "$APP_JAR" "$@" || exit 1
return 0
}
diff --git a/gateway-release/home/bin/ldap.sh b/gateway-release/home/bin/ldap.sh
index 76db19c..763af6f 100755
--- a/gateway-release/home/bin/ldap.sh
+++ b/gateway-release/home/bin/ldap.sh
@@ -44,13 +44,13 @@ DEFAULT_APP_LOG_DIR="$APP_HOME_DIR/logs"
APP_LOG_DIR=${KNOX_LDAP_LOG_DIR:-$DEFAULT_APP_LOG_DIR}
# The app's logging options
-APP_LOG_OPTS="$KNOX_LDAP_LOG_OPTS"
+export APP_LOG_OPTS="$KNOX_LDAP_LOG_OPTS"
# The app's memory options
-APP_MEM_OPTS="$KNOX_LDAP_MEM_OPTS"
+export APP_MEM_OPTS="$KNOX_LDAP_MEM_OPTS"
# The app's debugging options
-APP_DBG_OPTS="$KNOX_LDAP_DBG_OPTS"
+export APP_DBG_OPTS="$KNOX_LDAP_DBG_OPTS"
# The name of the PID file
DEFAULT_APP_PID_DIR="$APP_HOME_DIR/pids"
@@ -64,9 +64,6 @@ APP_ERR_FILE="$APP_LOG_DIR/$APP_NAME.err"
DEFAULT_APP_RUNNING_IN_FOREGROUND="$LDAP_SERVER_RUN_IN_FOREGROUND"
export APP_RUNNING_IN_FOREGROUND=${KNOX_LDAP_RUNNING_IN_FOREGROUND:-$DEFAULT_APP_RUNNING_IN_FOREGROUND}
-# JAVA options used by the JVM
-export APP_JAVA_OPTS="$APP_JAVA_LIB_PATH $APP_MEM_OPTS $APP_DBG_OPTS $APP_LOG_OPTS"
-
function main {
checkJava
diff --git a/gateway-shell-release/home/bin/knoxshell.sh b/gateway-shell-release/home/bin/knoxshell.sh
index ca6dc11..ad205b5 100755
--- a/gateway-shell-release/home/bin/knoxshell.sh
+++ b/gateway-shell-release/home/bin/knoxshell.sh
@@ -42,7 +42,35 @@ APP_MEM_OPTS="$KNOX_SHELL_MEM_OPTS"
APP_DBG_OPTS="$KNOX_SHELL_DBG_OPTS"
# JAVA options used by the JVM
-export APP_JAVA_OPTS="$APP_JAVA_LIB_PATH $APP_MEM_OPTS $APP_DBG_OPTS $APP_LOG_OPTS"
+declare -a APP_JAVA_OPTS
+
+function addAppJavaOpts {
+ options_array=$(echo "${1}" | tr " " "\n")
+ for option in ${options_array}
+ do
+ APP_JAVA_OPTS+=("$option")
+ done
+}
+
+function buildAppJavaOpts {
+ if [ -n "$APP_MEM_OPTS" ]; then
+ addAppJavaOpts "${APP_MEM_OPTS}"
+ fi
+
+ if [ -n "$APP_LOG_OPTS" ]; then
+ addAppJavaOpts "${APP_LOG_OPTS}"
+ fi
+
+ if [ -n "$APP_DBG_OPTS" ]; then
+ addAppJavaOpts "${APP_DBG_OPTS}"
+ fi
+
+ if [ -n "$APP_JAVA_LIB_PATH" ]; then
+ addAppJavaOpts "${APP_JAVA_LIB_PATH}"
+ fi
+
+ # echo "APP_JAVA_OPTS =" "${APP_JAVA_OPTS[@]}"
+}
function main {
checkJava
@@ -65,7 +93,8 @@ function main {
printHelp
;;
*)
- $JAVA "$APP_JAVA_OPTS" -jar "$APP_JAR" "$@" || exit 1
+ buildAppJavaOpts
+ $JAVA "${APP_JAVA_OPTS[@]}" -jar "$APP_JAR" "$@" || exit 1
;;
esac