#!/bin/bash

if [ -z "${JAVA}" ] ; then
JAVA=java 
fi
PRG=$0
saveddir=`pwd`

# need this for relative symlinks
PRGDIR=`dirname "$PRG"`

SOD_HOME="$PRGDIR/.."

# make it fully qualified
SOD_HOME=`cd "${SOD_HOME}" && pwd`

cd "$saveddir"

#Jacorb-2.3.0 does bad things with a popular default LANG value, en_US.UTF-8
unset LANG


LIB=${SOD_HOME}/lib

SOD=$LIB/sod-3.2.11-SNAPSHOT.jar
BAG=$LIB/bag-0.4.1.jar
JLINE=$LIB/jline-0.9.94.jar
JING=$LIB/jing-20091111.jar
RNGCONV=$LIB/rngconv-20030225.jar
VECTORGRAPHICS2D=$LIB/VectorGraphics2D-0.9.jar
GRALCORE=$LIB/gral-core-0.9.jar
VELOCITYTOOLS=$LIB/velocity-tools-2.0.jar
DCWPO_BROWSE=$LIB/dcwpo_browse-1.0.jar
JAVACSV=$LIB/javacsv-2.0.jar
GROOVYALL=$LIB/groovy-all-2.2.2.jar
FISSURESUTIL=$LIB/fissuresUtil-1.1.14.jar
TAUP=$LIB/TauP-2.4.5.jar
SEISFILE=$LIB/seisFile-1.8.4.jar
JSAP=$LIB/jsap-2.1.jar
JYTHONSTANDALONE=$LIB/jython-standalone-2.7.0.jar
JUNIT=$LIB/junit-3.8.1.jar
COMMONSCHAIN=$LIB/commons-chain-1.1.jar
COMMONSVALIDATOR=$LIB/commons-validator-1.3.1.jar
COMMONSDIGESTER=$LIB/commons-digester-1.8.jar
COMMONSBEANUTILS=$LIB/commons-beanutils-1.7.0.jar
VELOCITY=$LIB/velocity-1.7.jar
HIBERNATEEHCACHE=$LIB/hibernate-ehcache-3.6.9.Final.jar
HIBERNATEC3P0=$LIB/hibernate-c3p0-3.6.9.Final.jar
HIBERNATECORE=$LIB/hibernate-core-3.6.9.Final.jar
COMMONSCOLLECTIONS=$LIB/commons-collections-3.2.1.jar
HTTPCLIENT=$LIB/httpclient-4.5.12.jar
COMMONSLOGGING=$LIB/commons-logging-1.2.jar
DOM4J=$LIB/dom4j-1.6.1.jar
ORO=$LIB/oro-2.0.8.jar
SSLEXT=$LIB/sslext-1.2-0.jar
FISSURESIMPL=$LIB/fissuresImpl-1.1.22.jar
OREGONDSP=$LIB/oregondsp-2011.jar
JAVASSIST=$LIB/javassist-3.12.1.GA.jar
ISTIUTIL=$LIB/isti.util-20120201.jar
HSQLDB=$LIB/hsqldb-1.8.0.10.jar
POSTGRESQL=$LIB/postgresql-9.4-1201-jdbc41.jar
MYSQLCONNECTORJAVA=$LIB/mysql-connector-java-5.1.47.jar
XERCESIMPL=$LIB/xercesImpl-2.10.0.jar
XALAN=$LIB/xalan-2.7.1.jar
OPENMAP=$LIB/openmap-4.6.2.jar
OPENPDF=$LIB/openpdf-1.0.1.jar
JCOMMON=$LIB/jcommon-1.0.0.jar
JFREECHART=$LIB/jfreechart-1.0.1.jar
JAVAMAIL=$LIB/javamail-1.3.2.jar
ACTIVATION=$LIB/activation-1.0.2.jar
FISSURESIDL=$LIB/fissuresIDL-1.0_getset_p2.jar
SLF4JLOG4J12=$LIB/slf4j-log4j12-1.7.30.jar
LOG4J=$LIB/log4j-1.2.17.jar
COMMONSLANG=$LIB/commons-lang-2.4.jar
SEEDCODEC=$LIB/seedCodec-1.0.11.jar
EHCACHECORE=$LIB/ehcache-core-2.4.3.jar
HIBERNATECOMMONSANNOTATIONS=$LIB/hibernate-commons-annotations-3.2.0.Final.jar
SLF4JAPI=$LIB/slf4j-api-1.7.30.jar
RXTX=$LIB/rxtx-2.1.7.jar
WOODSTOXCORE=$LIB/woodstox-core-5.2.1.jar
MSVCORE=$LIB/msv-core-2013.6.1.jar
ANTLR=$LIB/antlr-2.7.6.jar
HIBERNATEJPA20API=$LIB/hibernate-jpa-2.0-api-1.0.1.Final.jar
JTA=$LIB/jta-1.1.jar
ISTIUTILTOPLEVEL=$LIB/isti.util.toplevel-1.0USC.jar
JDOM=$LIB/jdom-b9.jar
XMLAPIS=$LIB/xml-apis-2.10.0.jar
XMLRESOLVER=$LIB/xml-resolver-1.2.jar
SERIALIZER=$LIB/serializer-2.10.0.jar
SERIALIZER=$LIB/serializer-2.7.1.jar
BCPKIXJDK15ON=$LIB/bcpkix-jdk15on-1.56.jar
BCPROVJDK15ON=$LIB/bcprov-jdk15on-1.56.jar
ASSERTJCORE=$LIB/assertj-core-3.6.1.jar
C3P0=$LIB/c3p0-0.9.1.jar
JACORB=$LIB/jacorb-2.3.1_USC2.jar
BACKPORTUTILCONCURRENT=$LIB/backport-util-concurrent-2.3.1.jar
STAX2API=$LIB/stax2-api-4.2.jar
XSDLIB=$LIB/xsdlib-2013.6.1.jar
ISORELAX=$LIB/isorelax-20090621.jar
HTTPCORE=$LIB/httpcore-4.4.13.jar
COMMONSCODEC=$LIB/commons-codec-1.11.jar
RELAXNGDATATYPE=$LIB/relaxngDatatype-20020414.jar


# Set AGENTPATH to system-dependent path to the profiler agent library
if [ "`uname -a | grep Linux`" ] ; then
  if [ "`uname -a | grep x86_64`" ] ; then
    # We assume that 64-bit Java is used on Linux AMD 64; otherwise change "64" with "32" in the path.
    AGENTPATH="$LIB/yourkit/linux-x86-64/libyjpagent.so"
  else
    # 32-bit Java
    AGENTPATH="$LIB/yourkit/linux-x86-32/libyjpagent.so"
  fi
elif [ `uname` = 'Darwin' ] ; then
  # Mac OS X
  AGENTPATH="$LIB/yourkit/mac/libyjpagent.jnilib"
elif [ `uname` = 'SunOS' ] ; then
  # Solaris:
  # We suppose that JVM is 32-bit by default.
  # Change "32" with "64" in the path to use with 64-bit Java.
  if [ "`uname -a | grep sparc`" ] ; then
    AGENTPATH="$LIB/yourkit/solaris-sparc-32/libyjpagent.so"
  elif [ "`uname -a | grep i386`" ] ; then
    AGENTPATH="$LIB/yourkit/solaris-x86-32/libyjpagent.so"
  else
    echo "Unsupported YourKit processor architecture"
    exit
  fi
elif [ `uname` = 'FreeBSD' ] ; then
  if [ "`uname -a | grep amd64`" ] ; then
    AGENTPATH="$LIB/yourkit/freebsd-x86-64/libyjpagent.so"
  elif [ "`uname -a | grep i386`" ] ; then
    AGENTPATH="$LIB/yourkit/freebsd-x86-32/libyjpagent.so"
  else
    echo "Unsupported processor architecture"
    exit
  fi
elif [ `uname` = 'HP-UX' ] ; then
  # On HP-UX, JVM is 32-bit by default.
  # Change "32" with "64" in the path to use with 64-bit Java.
  AGENTPATH="$LIB/yourkit/hpux-ia64-32/libyjpagent.so"
else
  echo "Unsupported platform: `uname`"
  exit
fi


CLASSPATH=${SOD}:${BAG}:${JLINE}:${JING}:${RNGCONV}:${VECTORGRAPHICS2D}:${GRALCORE}:${VELOCITYTOOLS}:${DCWPO_BROWSE}:${JAVACSV}:${GROOVYALL}:${FISSURESUTIL}:${TAUP}:${SEISFILE}:${JSAP}:${JYTHONSTANDALONE}:${JUNIT}:${COMMONSCHAIN}:${COMMONSVALIDATOR}:${COMMONSDIGESTER}:${COMMONSBEANUTILS}:${VELOCITY}:${HIBERNATEEHCACHE}:${HIBERNATEC3P0}:${HIBERNATECORE}:${COMMONSCOLLECTIONS}:${HTTPCLIENT}:${COMMONSLOGGING}:${DOM4J}:${ORO}:${SSLEXT}:${FISSURESIMPL}:${OREGONDSP}:${JAVASSIST}:${ISTIUTIL}:${HSQLDB}:${POSTGRESQL}:${MYSQLCONNECTORJAVA}:${XERCESIMPL}:${XALAN}:${OPENMAP}:${OPENPDF}:${JCOMMON}:${JFREECHART}:${JAVAMAIL}:${ACTIVATION}:${FISSURESIDL}:${SLF4JLOG4J12}:${LOG4J}:${COMMONSLANG}:${SEEDCODEC}:${EHCACHECORE}:${HIBERNATECOMMONSANNOTATIONS}:${SLF4JAPI}:${RXTX}:${WOODSTOXCORE}:${MSVCORE}:${ANTLR}:${HIBERNATEJPA20API}:${JTA}:${ISTIUTILTOPLEVEL}:${JDOM}:${XMLAPIS}:${XMLRESOLVER}:${SERIALIZER}:${SERIALIZER}:${BCPKIXJDK15ON}:${BCPROVJDK15ON}:${ASSERTJCORE}:${C3P0}:${JACORB}:${BACKPORTUTILCONCURRENT}:${STAX2API}:${XSDLIB}:${ISORELAX}:${HTTPCORE}:${COMMONSCODEC}:${RELAXNGDATATYPE}

$JAVA -classpath $CLASSPATH \
     -Xmx512m -agentpath:$AGENTPATH  -XX:+HeapDumpOnOutOfMemoryError  -Dseis.name=sod3.2.11-SNAPSHOT -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton -Dpython.path=${LIB} -Djava.awt.headless=true -Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB -Dswing.volatileImageBufferEnabled=false -Djacorb.connection.client.pending_reply_timeout=20000 -Djacorb.connection.client.idle_timeout=90000 -Djacorb.home=${SOD_HOME} -Djacorb.log.default.verbosity=2 \
    edu.sc.seis.sod.Start   "$@" 
