#!/bin/bash

PROCESSNAME=Alerts
INSTALL_DIR=/usr/local/n2bb/alerts


# used for both getSettings and startup param
if [ -z $2 ]
then
	NAMESERVICE="corbaloc::AlertNameServer:4000/NameService"
else
	NAMESERVICE=$2
fi

# getSettings
export GETSETTING=/usr/local/n2bb/SettingsServer/scripts/getsetting
export GETSETTINGPARAM="-ORBInitRef NameService=$NAMESERVICE"

# monitor
export ALLOG="/opt/tandbergtv/watchpoint/log"
export ALRUN="$INSTALL_DIR/../run"

# settings
UDPMAXBUF=`$GETSETTING alerts/n2bb.bms.udpmaxbuf $GETSETTINGPARAM`
MINHEAP=`$GETSETTING alerts/n2bb.bms.minJVMHeapSize $GETSETTINGPARAM`
MAXHEAP=`$GETSETTING alerts/n2bb.bms.maxJVMHeapSize $GETSETTINGPARAM`
ALERTSHOST=`$GETSETTING alerts/corbaHostName $GETSETTINGPARAM`
ALERTSPORT=`$GETSETTING alerts/corbaListenPort $GETSETTINGPARAM`

JAVA=java
ORB_CLASS=org.jacorb.orb.ORB
ORB_SINGLETON_CLASS=org.jacorb.orb.ORBSingleton

CLASSPATH=$INSTALL_DIR/conf
CLASSPATH=$CLASSPATH:$INSTALL_DIR/lib/ojdbc6.jar
CLASSPATH=$CLASSPATH:$INSTALL_DIR/lib/alerts.jar
CLASSPATH=$CLASSPATH:$INSTALL_DIR/lib/apache-log4j-extras-1.1.jar
CLASSPATH=$CLASSPATH:/usr/local/n2bb/3rdparty/log4j-1.2.8.jar
CLASSPATH=$CLASSPATH:/usr/local/n2bb/3rdparty/commons-collections.jar
CLASSPATH=$CLASSPATH:/usr/local/n2bb/3rdparty/commons-dbcp.jar
CLASSPATH=$CLASSPATH:/usr/local/n2bb/3rdparty/commons-pool.jar
CLASSPATH=$CLASSPATH:/usr/local/n2bb/3rdparty/mail.jar
CLASSPATH=$CLASSPATH:/usr/local/n2bb/3rdparty/activation.jar
CLASSPATH=$CLASSPATH:/usr/local/JacORB/lib/jacorb.jar
CLASSPATH=$CLASSPATH:/usr/local/n2bb/SettingsServer/lib/SSModule.jar
CLASSPATH=$CLASSPATH:/usr/local/n2bb/lib/N2BBLogging.jar
CLASSPATH=$CLASSPATH:/usr/local/n2bb/lib/smp.jar
CLASSPATH=$CLASSPATH:/usr/local/n2bb/lib/n2bbcommon.jar

xbootclasspathp="/usr/local/JacORB/lib/jacorb.jar:/usr/local/JacORB/lib/avalon-framework-4.1.5.jar:/usr/local/JacORB/lib/logkit-1.2.jar"

ORB_ARGS="-Dorg.omg.CORBA.ORBClass=$ORB_CLASS -Dorg.omg.CORBA.ORBSingletonClass=$ORB_SINGLETON_CLASS"
JAVA_ARGS="-server -Xms$MINHEAP -Xmx$MAXHEAP $ORB_ARGS -classpath $CLASSPATH -Xbootclasspath/p:${xbootclasspathp}"

PROCESS_ARGS="$UDPMAXBUF $NAMESERVICE $ALERTSHOST $ALERTSPORT"
CMD_LINE="$JAVA $JAVA_ARGS com.n2bb.AlertsModule.AlertServer $PROCESS_ARGS"

case "$1" in
'start')
    su nobody -c "$CMD_LINE >> $ALLOG/$PROCESSNAME.log 2>&1 &"
    echo "OK"
    ;;
'stop')
    pid=$(ps axww | grep "[c]om.n2bb.AlertsModule.AlertServer" | grep -v grep | sed -e 's/^\s*//' | cut -d' ' -f1)
    # Forcefully kill the process in case if it is still running0o-
    if [ ! -z "${pid}" ] ; then
        kill -9 $pid
    fi
    ;;
'status')
    pid=$(ps axww | grep "[c]om.n2bb.AlertsModule.AlertServer" | grep -v grep | sed -e 's/^\s*//' | cut -d' ' -f1)
     if [ ! -z "${pid}" ] ; then
        echo "Alerts Service (pid "$pid") is running..."
      else
        echo "Alerts Service is stopped"
     fi
     ;;
     
'restart')
    $0 stop
    sleep 2
    $0 start
    ;;
*)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
esac
exit 0

