#!/bin/bash

printusage() {
	echo "Usage: JavaPreprocessor64 simTaskFileName [parallel_dir]"
	exit 1
}
echo "JavaPreprocessor64 $@"

# main code
if [[ $# -eq 0 ]] ; then 
	printusage
	exit 1
fi

#
# make sure no variables are left unset
#
shopt -s -o nounset

preprocessor_mainclass=cbit.vcell.message.server.batch.sim.SolverPreprocessor

jvmprop="-Djava.io.tmpdir=/tmp"
jvmprop="${jvmprop} -Djava.awt.headless=true"
jvmprop="${jvmprop} -Dvcell.installDir=${installdir}"
jvmprop="${jvmprop} -Dvcell.jms.sim.host.internal=${jmshost_sim_internal}"
jvmprop="${jvmprop} -Dvcell.jms.sim.port.internal=${jmsport_sim_internal}"
jvmprop="${jvmprop} -Dvcell.jms.sim.restport.internal=${jmsrestport_sim_internal}"
jvmprop="${jvmprop} -Dvcell.jms.sim.host.external=${jmshost_sim_internal}"
jvmprop="${jvmprop} -Dvcell.jms.sim.port.external=${jmsport_sim_internal}"
jvmprop="${jvmprop} -Dvcell.jms.sim.restport.external=${jmsrestport_sim_internal}"
jvmprop="${jvmprop} -Dvcell.jms.user=${jmsuser}"
jvmprop="${jvmprop} -Dvcell.jms.password=${jmspswd}"
jvmprop="${jvmprop} -Dvcell.jms.blobMessageUseMongo=${blob_message_use_mongo}"
jvmprop="${jvmprop} -Dvcell.primarySimdatadir.internal=${primary_datadir_internal}"
jvmprop="${jvmprop} -Dvcell.secondarySimdatadir.internal=${secondary_datadir_internal}"
jvmprop="${jvmprop} -Dvcell.primarySimdatadir.external=${primary_datadir_external}"
jvmprop="${jvmprop} -Dvcell.secondarySimdatadir.external=${secondary_datadir_external}"
jvmprop="${jvmprop} -Dvcell.server.id=${serverid}"
jvmprop="${jvmprop} -Dvcell.softwareVersion=${softwareVersion}"
jvmprop="${jvmprop} -Dvcell.mongodb.database=${mongodb_database}"
jvmprop="${jvmprop} -Dvcell.mongodb.host.internal=${mongodbhost_internal}"
jvmprop="${jvmprop} -Dvcell.mongodb.port.internal=${mongodbport_internal}"

jvmoptions="-XX:MaxRAMPercentage=80 -Xms64M -Xmx${java_mem_Xmx}  -XX:+PrintFlagsFinal -XshowSettings:vm"

arguments=$*

echo "starting preprocessor"

echo "expecting jre 1.8_144 or later for memory options"
java -version

java ${jvmoptions} ${jvmprop} ${preprocessor_mainclass} ${arguments}
stat=$?

if [[ $stat -ne 0 ]]; then
	echo "preprocessor failed with exit code $stat"
	exit $stat
else
	echo "preprocessor returned"
	exit 0
fi
