Author: jbellis Date: Mon Aug 8 13:09:43 2011 New Revision: 1154950 URL: http://svn.apache.org/viewvc?rev=1154950&view=rev Log: don't hardcode JAVA_HOME in RH init script patch by Paul Cannon; reviewed by Taras Puchko for CASSANDRA-2992
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/redhat/cassandra Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1154950&r1=1154949&r2=1154950&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Mon Aug 8 13:09:43 2011 @@ -1,5 +1,6 @@ 0.8.4 * include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972) + * use JAVA env var in cassandra-env.sh (CASSANDRA-2785, 2992) 0.8.3 Modified: cassandra/branches/cassandra-0.8/redhat/cassandra URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/redhat/cassandra?rev=1154950&r1=1154949&r2=1154950&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8/redhat/cassandra (original) +++ cassandra/branches/cassandra-0.8/redhat/cassandra Mon Aug 8 13:09:43 2011 @@ -9,7 +9,6 @@ . /etc/rc.d/init.d/functions -export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/ export CASSANDRA_HOME=/usr/share/cassandra/ export CASSANDRA_INCLUDE=/usr/share/cassandra/cassandra.in.sh export CASSANDRA_CONF=/etc/cassandra/conf @@ -19,9 +18,36 @@ log_file=/var/log/cassandra/cassandra.lo pid_file=/var/run/cassandra/cassandra.pid CASSANDRA_PROG=/usr/sbin/cassandra +# The first existing directory is used for JAVA_HOME if needed. +JVM_SEARCH_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/jre-1.6.* /usr/lib/jvm/java-1.6.*/jre" + # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME +# If JAVA_HOME has not been set, try to determine it. +if [ -z "$JAVA_HOME" ]; then + # If java is in PATH, use a JAVA_HOME that corresponds to that. This is + # both consistent with how the upstream startup script works, and with + # the use of alternatives to set a system JVM (as is done on Debian and + # Red Hat derivatives). + java="`/usr/bin/which java 2>/dev/null`" + if [ -n "$java" ]; then + java=`readlink --canonicalize "$java"` + JAVA_HOME=`dirname "\`dirname \$java\`"` + else + # No JAVA_HOME set and no java found in PATH; search for a JVM. + for jdir in $JVM_SEARCH_DIRS; do + if [ -x "$jdir/bin/java" ]; then + JAVA_HOME="$jdir" + break + fi + done + # if JAVA_HOME is still empty here, punt. + fi +fi +JAVA="$JAVA_HOME/bin/java" +export JAVA_HOME JAVA + case "$1" in start) # Cassandra startup