#!/bin/sh

export KARAF_STARTDATE=`date +"%Y%m%d%H%M%S"`

if [ "$KARAF_SCRIPT" == "client" ] || [ "$KARAF_SCRIPT" == "status" ] || [ "$KARAF_SCRIPT" == "stop" ] ; then
    export JAVA_MIN_MEM=16M
    export JAVA_MAX_MEM=128M
else
    export JAVA_MIN_MEM=512M
    export JAVA_MAX_MEM=2G
fi

# Begin MD
export JAVA_CMS_GC_OPTS="-XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC"
export JAVA_CMS_GC_ADV_OPTS="-XX:+CMSConcurrentMTEnabled -XX:+CMSClassUnloadingEnabled -XX:+CMSParallelRemarkEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+ScavengeBeforeFullGC -XX:+CMSScavengeBeforeRemark"
export JAVA_G1_GC_OPTS="-XX:+UseG1GC -XX:+UseStringDeduplication -XX:MaxGCPauseMillis=800" 
export JAVA_GC_LOG_OPTS="-verbose:gc -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:data/log/gc-$KARAF_STARTDATE.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=16 -XX:GCLogFileSize=16M" 
export JAVA_HEAPDUMP_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data/log/$KARAF_STARTDATE.hprof"
export JAVA_MISC_OPTS="-server"
export JAVA_NET_OPTS="-Dsun.net.inetaddr.ttl=60 -Dsun.net.client.defaultConnectTimeout=300000 -Dsun.net.client.defaultReadTimeout=600000"
# END MD

# export JAVA_HOME # Location of Java installation
# CMS garbage collection
#export EXTRA_JAVA_OPTS="$JAVA_CMS_GC_OPTS $JAVA_CMS_GC_ADV_OPTS $JAVA_CMS_GC_LOG_OPTS $JAVA_HEAPDUMP_OPTS $JAVA_MISC_OPTS $JAVA_NET_OPTS"
# G1 garbage collection
export EXTRA_JAVA_OPTS="$JAVA_G1_GC_OPTS $JAVA_GC_LOG_OPTS $JAVA_HEAPDUMP_OPTS $JAVA_MISC_OPTS $JAVA_NET_OPTS"
# export KARAF_HOME # Karaf home folder
# export KARAF_DATA # Karaf data folder
# export KARAF_BASE # Karaf base folder
# export KARAF_ETC  # Karaf etc  folder
# export KARAF_OPTS # Additional available Karaf options
# export KARAF_DEBUG # Enable debug mode
# export KARAF_REDIRECT # Enable/set the std/err redirection when using bin/start
export KARAF_NOROOT=true
