#!/bin/sh
#WBEMSolutions SDK
#start_server script
#(c) Copyright 2003 WBEM Solutions, Inc.  All Rights Reserved.
#

# Modified by Sun Microsystems
# 22-Mar-04 JAG Modified JVM defines to set heap parms, 
#               and garbage collection algorithm.  Also
#               put d/t stamp in startup msg

#
# This Bourne shell script is used to start the CIM Server.
#

PATH=/bin:/usr/bin:/usr/sbin:$PATH
RM="rm -f"
PWD="pwd"
ECHO="echo"
ID="id"
GREP="grep"
PS="ps -eaf"
WPS="ps -ef -o args"
TAIL="tail"
# Command to set an environment variable
EXPORT="export"

# See if JAVA_HOME is defined
if [ -z "$JAVA_HOME" ]
then
    echo "JAVA_HOME not set defaulting to '/usr/java'"
    JAVA_HOME="/usr/java"
fi

# Command to invoke java
JAVA="$JAVA_HOME/bin/java -server -classpath"

# Define locations for WBEM jar files
# make sure current dir is correct in case
# script is called from another location
START=`dirname $0`
WBSERHOME=`cd $START/../..;pwd`
CIMOMDIR=$WBSERHOME/jws
CIMOMBIN=$CIMOMDIR/bin
WBSERLIB=$WBSERHOME/lib
CIMOMLIB=$CIMOMDIR/lib
WBLOGDIR=$CIMOMDIR/logr
WSILIB=$WBSERHOME/../lib

STARTUP=$CIMOMLIB/wbemstartup.jar

CLASSPATH=$STARTUP

JVM_DEFINES="\
	-Xms128m \
	-Xmx512m \
	-XX:+DisableExplicitGC \
	-XX:MaxNewSize=64m \
	-XX:NewSize=64m \
	-XX:SurvivorRatio=128 \
	-XX:+UseParNewGC \
	-Djava.security.manager \
	-Djava.security.policy=$CIMOMBIN/cimom.policy" 

# Define location of WBEMServices.properties
WBSERFILE=$CIMOMBIN/WBEMServices_Unix.properties

DEBUG="\
	-DDebugLevel=3 \
	-DDebugDevice=stdout"

CIMOM_DEFINES="\
	-DBaseDir=$WBSERHOME \
	-Dpropdir=$CIMOMBIN \
	-Dlogdir=$WBLOGDIR"

CIMOMSERVER=org.wbemservices.wbem.bootstrap.StartWBEMServices
CIMOMPID=$WBLOGDIR/cimomserver.pid

# Must be root 
$ID | $GREP uid=0\( 1>/dev/null 2>&1
if [ $? -ne 0 ]; then
        $ECHO "You must be root to run this command"
        exit 1
fi

# If J WBEM Server is already running, do not start another
$WPS | $GREP wsi/server/jws/lib/wbemstartup.jar | $GREP -v grep 1>/dev/null 2>&1
if [ $? -eq 0 ]; then
        $ECHO "Another J WBEM Server is already running"
        exit 1
fi

$ECHO "*********************************************************"
$ECHO "Starting up the CIMOM"
$ECHO `date`
$ECHO "*********************************************************"

# Get the current platform
platform=`uname -p`

LIBDIR=.

##
# Set lib dir depending on
# the target arch/os
##
case ${platform} in

	"i386") JNILIBDIR=${WSILIB}/solaris/x86;LIBDIR=/usr/local/lib;;
		
	"sparc") JNILIBDIR=${WSILIB}/solaris/sparc;LIBDIR=/usr/local/lib;; 

	"i686")  JNILIBDIR=${WSILIB}/linux;; 
		 
        *) # Could be some flavor of Linux
	   # We don't support any other
	   # platform at the momment
	   # So default to Linux
	   JNILIBDIR=${WSILIB}/linux;; 
	   
esac
#set LD_LIBRARY_PATH so it can load JNI libraries
LD_LIBRARY_PATH=${JNILIBDIR}:${LD_LIBRARY_PATH}:${LIBDIR}:${CIMOMLIB};export LD_LIBRARY_PATH


# Start the CIMOM in full debug mode
#$ECHO $JAVA $CLASSPATH $JVM_DEFINES $CIMOM_DEFINES $DEBUG $CIMOMSERVER $WBSERFILE &
#$JAVA $CLASSPATH $JVM_DEFINES $CIMOM_DEFINES $DEBUG $CIMOMSERVER $WBSERFILE &

# Start the CIMOM in non debug mode
$ECHO $JAVA $CLASSPATH $JVM_DEFINES $CIMOM_DEFINES $CIMOMSERVER $WBSERFILE &
$JAVA $CLASSPATH $JVM_DEFINES $CIMOM_DEFINES $CIMOMSERVER $WBSERFILE &

pid=$!

# Save its pid and ps output in file cimomserver.pid 
# for stop_cimom.sh
$RM $CIMOMPID
$ECHO $pid > $CIMOMPID
$PS | $GREP $pid | $GREP java >> $CIMOMPID

$ECHO "*********************************************************"
$ECHO "CIMOM has started up as PID $pid "
$TAIL -1 $CIMOMPID
$ECHO "*********************************************************"


