#!/bin/sh
SKIP_BOOTINI="true"
PROCESSOR=Hager-ARMv7
export SKIP_BOOTINI PROCESSOR 

# *** Global configuration - EDIT THE VALUES BELOW IF YOU WANT TO ENABLE SOME FEATURE WITHOUT PASSING PARAMETERS
# * can be either "12", "13", "15", "16" or "17"
if [ -z "$VM_VERSION" ]; then VM_VERSION="16"; fi

# * vm specific code - save to change though not recommended
VM_ARGS_v12="-Dmbs.storage.zip.jdk13=false"
VM_ARGS_v13=
# This is set in order to be able to write file with unicode characters.
VM_ARGS_v15="-Dfile.encoding=UTF-8"
#FIX FOR JVM PERFORMANCES ISSUES (if uncomment JVM always runs in intrepreted mode)
#JIT="-Djava.compiler="

ENABLE_JCONSOLE="false"
JCONSOLE_ARGS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

# *** DO NOT EDIT BELOW!!!!!

# a call-back function
Execute () {
	export LD_LIBRARY_PATH
	# * setup extra bootclasspath if not framework loader is set
	if [ -z "$FWLOADER" ]; then if [ -n "$MBS_SERVER_JAR" ]; then mCP="$MBS_SERVER_JAR"; fi; fi
	# * set classpath
	if [ -n "$FWAPPCP" ]; then
		CP="-cp $_SERVER:$mCP:../../../lib/framework/fwtime.jar:$EXTRA_CP";
	else
		CP="-Xbootclasspath/a:$_SERVER:$mCP -cp ../../../lib/framework/fwtime.jar:$EXTRA_CP";
	fi
	# * set boot class path
	if [ -n "$BOOTCP" ]; then BOOTCP="-Xbootclasspath/p:$BOOTCP"; fi
	# * remote debugging
	XDBG=
	if [ -n "$VM_DEBUG" ]; then
		if [ -n "$VM_DEBUG_SUSPEND" ]; then XDBG="y"; else XDBG="n"; fi
		if [ "$VM_VERSION" -ge "15" ]; then
			XDBG="-agentlib:jdwp=transport=dt_socket,server=y,address=0.0.0.0:$VM_DEBUG_PORT,suspend=$XDBG";
		else
			XDBG="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=$VM_DEBUG_PORT,suspend=$XDBG";
		fi
	fi
	# * execute
	echo $JAVA $VM_ARGS $XDBG $BOOTCP $CP $FEATURES $MAIN_CLASS
	if [ -z "$FWDUMPCMD" ]; then
		$JAVA $VM_ARGS $XDBG $BOOTCP $CP $FEATURES $MAIN_CLASS
	fi
}

# *** VM setup
SetupVM () {
	# Setup the java virtual machine
	FindVM "java" "$JAVA_HOME"
}


# needed by server_common.sh

# *** parse
while [ -n "$1" ]; do
	case $1 in
# * version
		-jdk1.2|jdk1.2)
			VM_VERSION="12" ;;
		-jdk1.3|jdk1.3)
			VM_VERSION="13" ;;
		-jdk1.5|jdk1.5)
			VM_VERSION="15" ;;
		-jdk1.6|jdk1.6)
			VM_VERSION="16" ;;
		-jdk1.7|jdk1.7)
			VM_VERSION="17" ;;
# * jconsole
		-jconsole|jconsole)
			ENABLE_JCONSOLE="true";;
# * delegate to common
		*)
			_ARGS="$_ARGS $1" ;;
	esac
	shift # * shift to next argument
done

# *** setup
# * version specific parameters, disable JIT & enables some optimizations
case $VM_VERSION in
		12) 
		VM_ARGS="$VM_ARGS $VM_ARGS_v12"
		VM_VERSION_SYM=12
		;;
		13)
		VM_ARGS="$VM_ARGS $VM_ARGS_v13"
		VM_VERSION_SYM=13
		;;
		15)
		VM_ARGS="$VM_ARGS $VM_ARGS_v15"
		VM_VERSION_SYM=15
		;;
		16|17)
		VM_ARGS="$VM_ARGS -Dsun.lang.ClassLoader.allowArraySyntax=true $VM_ARGS_v15"
		if [ "$ENABLE_JCONSOLE" == "true" ]; then VM_ARGS="$VM_ARGS $JCONSOLE_ARGS"; fi
		VM_VERSION_SYM=15
		;;
esac
# * server setup
_SERVER="../../../lib/framework/serverjvm$VM_VERSION_SYM$_SERVER_SUFFIX.jar"

# run main
. ../server_common.sh
