Skip to content

Commit e77da80

Browse files
committed
CLOUDSTACK-6360: pick setJavaHome from 4.3 and master for 4.4 branch
A JAVA_HOME finder method was implemented by Rajani and got into master and 4.3 but not 4.4: https://reviews.apache.org/r/22721/ Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
1 parent 96d6a2a commit e77da80

1 file changed

Lines changed: 34 additions & 7 deletions

File tree

‎packaging/debian/init/cloud-usage‎

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,42 @@ DAEMON="/usr/bin/jsvc"
4242
unset OPTIONS
4343
[ -r /etc/default/"$SHORTNAME" ] && source /etc/default/"$SHORTNAME"
4444

45-
# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT)
46-
JDK_DIRS="/usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-sun"
47-
48-
for jdir in $JDK_DIRS; do
45+
setJavaHome() {
46+
# use $JAVA_HOME if defined
47+
if [ -n "$JAVA_HOME" ] ; then
48+
return
49+
fi
50+
51+
# try javac first
52+
java=$(which javac 2>/dev/null || :)
53+
54+
# try java if javac is not found
55+
if [ -z "$java" ] ; then
56+
java=$(which java 2>/dev/null || :)
57+
fi
58+
59+
if [ -n "$java" ] ; then
60+
JAVA_HOME=$(dirname $(dirname $(readlink -e $java)))
61+
export JAVA_HOME
62+
return
63+
fi
64+
65+
# If everything has failed, try hardcoded paths
66+
# The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT)
67+
JDK_DIRS="/usr/lib/jvm/java-7-openjdk-amd64 /usr/lib/jvm/java-7-openjdk-i386 /usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-sun"
68+
for jdir in $JDK_DIRS; do
4969
if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then
50-
JAVA_HOME="$jdir"
70+
JAVA_HOME="$jdir"
71+
export JAVA_HOME
72+
return
5173
fi
52-
done
53-
export JAVA_HOME
74+
done
75+
76+
# didnt find java home. exiting with error
77+
exit 1
78+
}
79+
80+
setJavaHome
5481

5582
UCP=`ls /usr/share/cloudstack-usage/lib/*.jar | tr '\n' ':' | sed s'/.$//'`
5683
PCP=`ls /usr/share/cloudstack-usage/plugins/*.jar 2>/dev/null | tr '\n' ':' | sed s'/.$//'`

0 commit comments

Comments
 (0)