Return-Path: Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: (qmail 65788 invoked from network); 18 Aug 2010 21:11:13 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 18 Aug 2010 21:11:13 -0000 Received: (qmail 14693 invoked by uid 500); 18 Aug 2010 21:11:13 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 14677 invoked by uid 500); 18 Aug 2010 21:11:13 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 14669 invoked by uid 99); 18 Aug 2010 21:11:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Aug 2010 21:11:12 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Aug 2010 21:11:12 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 6B3D123889DA; Wed, 18 Aug 2010 21:09:55 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r986939 - /cassandra/trunk/debian/init Date: Wed, 18 Aug 2010 21:09:55 -0000 To: commits@cassandra.apache.org From: eevans@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100818210955.6B3D123889DA@eris.apache.org> Author: eevans Date: Wed Aug 18 21:09:55 2010 New Revision: 986939 URL: http://svn.apache.org/viewvc?rev=986939&view=rev Log: refactor assigment of JAVA_HOME in init script Path by eevans; review by Brandon Williams for CASSANDRA-1407 Modified: cassandra/trunk/debian/init Modified: cassandra/trunk/debian/init URL: http://svn.apache.org/viewvc/cassandra/trunk/debian/init?rev=986939&r1=986938&r2=986939&view=diff ============================================================================== --- cassandra/trunk/debian/init (original) +++ cassandra/trunk/debian/init Wed Aug 18 21:09:55 2010 @@ -22,16 +22,8 @@ JVM_MAX_MEM="1G" JVM_START_MEM="128M" JMX_PORT="8080" -# The first existing directory is used for JAVA_HOME -JDK_DIRS="/usr/lib/jvm/java-6-sun /usr/lib/jvm/java-6-openjdk" - -# Look for the right JVM to use -for jdir in $JDK_DIRS; do - if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then - JAVA_HOME="$jdir" - fi -done - +# The first existing directory is used for JAVA_HOME if needed. +JVM_SEARCH_DIRS="/usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun" [ -e /usr/share/cassandra/apache-cassandra.jar ] || exit 0 [ -e /etc/cassandra/cassandra.yaml ] || exit 0 @@ -39,6 +31,33 @@ done # 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 how + # Debian works (read: the use of alternatives to set a system JVM). + if [ -n `which java` ]; then + java=`which java` + # Dereference symlink(s) + while true; do + if [ -h "$java" ]; then + java=`readlink "$java"` + continue + fi + break + done + JAVA_HOME="`dirname $java`/../" + # No JAVA_HOME set and no java found in PATH, search for a JVM. + else + for jdir in $JVM_SEARCH_DIRS; do + if [ -x "$jdir/bin/java" ]; then + JAVA_HOME="$jdir" + break + fi + done + fi +fi + # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh