#!/bin/sh
# jboss          fully-featured Open source Java application server
#
# chkconfig:     345 80 20
# description:   Java application server
#

# Source function library.
. /etc/init.d/functions

LOCKFILE=/var/lock/subsys/jboss
RETVAL=0

# Defaults
SourceIfNotEmpty /etc/sysconfig/jboss
SourceIfExists /usr/lib/java-common/java-functions
FindJVM

JBOSS_USER=jboss
JBOSS_CONF=${JBOSS_CONF:-default}
JBOSS_HOME=${JBOSS_HOME:-/usr/share/jboss}
JBOSS_OPTS="$JBOSS_OPTS -c $JBOSS_CONF"
JBOSS_OUT=${JBOSS_OUT:-/var/log/jboss/$JBOSS_CONF/stdout.log}
JBOSS_ERR=${JBOSS_ERR:-/var/log/jboss/$JBOSS_CONF/stderr.log}

JAVA_HOME=${JAVA_HOME:-/usr/lib/j2se}
JAVA_LIBS=${JAVA_LIBS:-/usr/share/java}
JAVA="$JAVA_HOME/bin/java"

STARTUP_OPTS="$STARTUP_OPTS -Djava.endorsed.dirs=$JBOSS_HOME/lib/endorsed"
#STARTUP_OPTS="$STARTUP_OPTS -Dprogram.name=JBoss"

JBoss_start()
{
	AddToClasspath "$JBOSS_HOME/bin/run.jar"
	AddToClasspath "$JAVA_HOME/lib/tools.jar"
	AddToClasspath $EXT_LIB

	msg_starting "JBoss ($JBOSS_CONF)"

	start_daemon \
		--lockfile "$LOCKFILE" \
		--user "$JBOSS_USER" \
		--no-announce \
		-- "$JAVA" "$JAVA_OPTS" \
			-cp "$CLASSPATH" \
			"$STARTUP_OPTS" \
			org.jboss.Main \
			-c "$JBOSS_CONF" \>"$JBOSS_OUT" \2\>"$JBOSS_ERR" \&
	RETVAL=$?
	return $RETVAL
}

JBoss_stop()
{
	msg_stopping "JBoss ($JBOSS_CONF)"

	stop_daemon \
		--lockfile "$LOCKFILE" \
		--expect-user "$JBOSS_USER" \
		--no-announce \
		"$JAVA"
	RETVAL=$?
	rm -f $LOCKFILE
	return $RETVAL
}

JBoss_status()
{
	status \
		--lockfile "$LOCKFILE" \
		--expect-user "$JBOSS_USER" \
		"$JAVA"
	RETVAL=$?
	return $RETVAL
}

case "$1" in
	start)
		JBoss_start
		;;
	stop)
		JBoss_stop
		;;
	status)
		JBoss_status
		;;
	restart)
		JBoss_stop
		JBoss_start
		;;
	condstop)
		[ -e $LOCKFILE ] && JBoss_stop
		;;
	condrestart)
		[ -e $LOCKFILE ] && JBoss_stop && JBoss_start
		;;
	*)
		msg_usage "${0##*/} {start|stop|status|condstop|condrestart}"
		RETVAL=1
esac

exit $RETVAL

