#! /bin/bash

#
# Script name: generic_java <Java main program class> arguments
#
# Purpose: For use by CUI in starting various Java actions as external
#    tasks.
#
# Invoking arguments:
#    1 The first command line argument must be the fully qualified
#      class name which must contain a main method.
#    2-n The remaining command line arguments are specific to the
#      task being started.  However common command line arguments
#      include -connection <connection> and -dump_labels <dump_labels>
#
# Notes:
#   If no command line arguments are supplied, a usage and error
#       message are produced.
#   Applications which require a greater list of jar files may want to
#       have their own script files.  This one is intended for general
#       use but not necessarily every use.  For example due to ILog and
#       other licensing issues, stripchart should probably have its own
#       script file.
#
# History:
#   04/16/19 - jas       - CFBUG-2163 - add properties for connecting to 
#                          maximo for msu_edit
#   07/31/15 - Rob Janes - Added jconn2.jar file for MET/CAL database.
#   08/24/11 - Rob Janes - Added JFreeChart jar files.
#   06/04/10 - Rob Janes - Added jar files for TRV use.
#   05/27/10 - Rob Janes - Added CMX ILog license management stuff.
#   05/11/10 - Rob Janes - Address JIRA CTCSUP-385 - invoke Java in a
#              manner to insure that it is NOT running at real-time
#              priority.  Use chrt to invoke Java.
#   05/06/10 - Rob Janes - Added prodexec.jar for cpgdfa_editor use.
#   09/21/09 - Rob Janes - databaseServer for MSU.
#   08/01/08 - Rob Janes - Added JIDE jar files.
#   04/03/08 - Rob Janes - Initial release.
#

if (( $# == 0 )); then
cat <<eod

Usage: generic_java <class name> [command line arguments]
eod
exit 1
fi

. configure_java

# Shell variables must begin with a letter.  So this can not be called
# 3RDPARTY.  D is for Directory.
D3RDPARTY=$D3
SPECFILEGUI=$GUI
LIB=/cyflex/LIB
# PROPERTIES defaults to /cell/cui_properties.txt if it isn't already
# set.
PROPERTIES=${PROPERTIES:--DPropertiesFile=$CELL/cui_properties.txt}
LAF="-Dswing.defaultlaf=com.jgoodies.looks.plastic.Plastic3DLookAndFeel"

. find_database.sh

PROPERTY_FILE=`echo $PROPERTIES | cut -f2 -d= `

# See if any class path has already been set by the invoking script.
if [ "$CLASSPATH" == "" ] ; then
   C=""
else
   C=${CLASSPATH}:
fi
# Jar files are listing in approximate order of their use.
export CLASSPATH=$C\
$SPECFILEGUI/specfilegui.jar\
:$SPECFILEGUI/cui.jar\
:$SPECFILEGUI/msu.jar\
:$SPECFILEGUI/facade.jar\
:$SPECFILEGUI/cvsci.jar\
:$SPECFILEGUI/applications.jar\
:$SPECFILEGUI/stripchart$SITE.jar\
:$SPECFILEGUI/trv.jar\
:$SPECFILEGUI/ExternalDataManager.jar\
:$SPECFILEGUI/gp_test.jar\
:$D3RDPARTY/jide-common.jar\
:$D3RDPARTY/jide-grids.jar\
:$D3RDPARTY/jakarta.xml.bind-api.jar\
:$D3RDPARTY/jakarta.activation.jar\
:$D3RDPARTY/forms.jar\
:$D3RDPARTY/ojdbc.jar\
:$D3RDPARTY/JGo.jar\
:$D3RDPARTY/InstrumentDemo.jar\
:$D3RDPARTY/JGoInstruments.jar\
:$D3RDPARTY/i18nlog.jar\
:$D3RDPARTY/jviews-chart-all.jar\
:$D3RDPARTY/jviews-framework-all.jar\
:$D3RDPARTY/jgrapht.jar\
:$D3RDPARTY/jcmdline.jar\
:$D3RDPARTY/reuser11.jar\
:$D3RDPARTY/jconn2.jar\
:$D3RDPARTY/mail.jar\
:$D3RDPARTY/activation.jar\
:$D3RDPARTY/jlfgr-1_0.jar\
:$D3RDPARTY/looks-2.1.4.jar\
:$D3RDPARTY/BrowserLauncher2.jar\
:$D3RDPARTY/velocity-1.6.1-dep.jar\
:$D3RDPARTY/jsch.jar\
:$D3RDPARTY/jfreechart.jar\
:$D3RDPARTY/jfreecommon.jar\
:$D3RDPARTY/protobuf.jar\
:$D3RDPARTY/jakarta.ws.rs-api-3.1.0.jar\
:$D3RDPARTY/jersey-client-3.1.2.jar\
:$D3RDPARTY/jersey-common-3.1.2.jar\
:$D3RDPARTY/jersey-hk2-3.0.12.jar\
:$D3RDPARTY/jakarta.annotation-api-2.1.1.jar\
:$D3RDPARTY/jakarta.inject-api-2.0.1.jar\
:$D3RDPARTY/jackson-annotations-2.19.0.jar\
:$D3RDPARTY/jackson-core-2.19.0.jar\
:$D3RDPARTY/jackson-databind-2.19.0.jar\
:$D3RDPARTY/jackson-module-jakarta-xmlbind-annotations-2.13.3.jar\
:$D3RDPARTY/jersey-media-json-jackson-3.1.0-M7.jar\
:$D3RDPARTY/jersey-entity-filtering-3.1.0-M7.jar\
:$D3RDPARTY/hk2-api-3.0.3.jar\
:$D3RDPARTY/hk2-utils-3.0.3.jar\
:$D3RDPARTY/hk2-locator-3.0.3.jar

export CLASSPATH
chrt -o 0 java -client -Xms128m -Xmx512m $DB $PROPERTIES $LAF $* &
