Skip to content

Commit

Permalink
add updated unixBinTemplate per #2282 - allows spaces in JVM_OPTS
Browse files Browse the repository at this point in the history
  • Loading branch information
jeremylong committed Nov 2, 2019
1 parent 6ce2946 commit ecd74f4
Show file tree
Hide file tree
Showing 2 changed files with 125 additions and 0 deletions.
1 change: 1 addition & 0 deletions cli/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ Copyright (c) 2012 - Jeremy Long. All Rights Reserved.
<useWildcardClassPath>true</useWildcardClassPath>
<configurationDirectory>plugins/*</configurationDirectory>
<includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
<unixScriptTemplate>${project.basedir}/src/main/conf/unixBinTemplate</unixScriptTemplate>
</configuration>
<executions>
<execution>
Expand Down
124 changes: 124 additions & 0 deletions cli/src/main/conf/unixBinTemplate
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
#!/usr/bin/env sh
@LICENSE_HEADER@

# resolve links - $0 may be a softlink
PRG="$0"

while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done

PRGDIR=`dirname "$PRG"`
BASEDIR=`cd "$PRGDIR/.." >/dev/null; pwd`

# Reset the REPO variable. If you need to influence this use the environment setup file.
REPO=
@ENV_SETUP@

# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
case "`uname`" in
CYGWIN*) cygwin=true ;;
Darwin*) darwin=true
if [ -z "$JAVA_VERSION" ] ; then
JAVA_VERSION="CurrentJDK"
else
echo "Using Java version: $JAVA_VERSION"
fi
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
JAVA_HOME=`/usr/libexec/java_home`
else
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/${JAVA_VERSION}/Home
fi
fi
;;
esac

if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi

# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi

# If a specific java binary isn't specified search for the standard 'java' binary
if [ -z "$JAVACMD" ] ; 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"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD=`which java`
fi
fi

if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." 1>&2
echo " We cannot execute $JAVACMD" 1>&2
exit 1
fi

if [ -z "$REPO" ]
then
REPO="$BASEDIR"/@REPO@
fi

CLASSPATH=@CLASSPATH@

ENDORSED_DIR=@ENDORSED_DIR@
if [ -n "$ENDORSED_DIR" ] ; then
CLASSPATH=$BASEDIR/$ENDORSED_DIR/*:$CLASSPATH
fi

if [ -n "$CLASSPATH_PREFIX" ] ; then
CLASSPATH=$CLASSPATH_PREFIX:$CLASSPATH
fi

# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$HOME" ] && HOME=`cygpath --path --windows "$HOME"`
[ -n "$BASEDIR" ] && BASEDIR=`cygpath --path --windows "$BASEDIR"`
[ -n "$REPO" ] && REPO=`cygpath --path --windows "$REPO"`
fi

#exec "$JAVACMD" $JAVA_OPTS @EXTRA_JVM_ARGUMENTS@ \
# -classpath "$CLASSPATH" \
# -Dapp.name="@APP_NAME@" \
# -Dapp.pid="$$" \
# -Dapp.repo="$REPO" \
# -Dapp.home="$BASEDIR" \
# -Dbasedir="$BASEDIR" \
# @MAINCLASS@ \
# @APP_ARGUMENTS@"$@"@UNIX_BACKGROUND@

CMDS=("$JAVACMD" \
-classpath "$CLASSPATH" \
-Dapp.name="@APP_NAME@" \
-Dapp.pid="$$" \
-Dapp.repo="$REPO" \
-Dapp.home="$BASEDIR" \
-Dbasedir="$BASEDIR" \
@MAINCLASS@)

for arg; do
CMDS+=("$arg")
done
exec "${CMDS[@]@UNIX_BACKGROUND@}"

0 comments on commit ecd74f4

Please sign in to comment.