#!/bin/sh # $Id: perfexplorer.skel,v 1.47 2010/03/19 20:49:25 scottb Exp $ # $Name: $ TAUROOT=/mnt/netapp/home1/amorris/public_html/regression/testtau/tau2 CONFIG_ARCH=ibm64 SERVER_HOSTNAME= SERVER_OBJECT_PORT= SERVER_RMIREGISTRY_PORT= JAR_HOME=${HOME}/.ParaProf CONFIGFILE_BASE=$JAR_HOME/perfdmf.cfg CONFIGFILE="" SCHEMADIR=${TAUROOT}/etc BINDIR=${TAUROOT}/${CONFIG_ARCH}/bin LIBDIR=${TAUROOT}/${CONFIG_ARCH}/lib JARDIR=${TAUROOT}/${CONFIG_ARCH}/lib # run the user setup script $BINDIR/tau_user_setup.sh # Record all the arguments arguments="" # set some defaults mode=standalone testName="all" redirect="" RMIOptions="" gui="" script="" CLIENT_DYLD_LIBRARY_PATH=$TAUROOT/$CONFIG_ARCH/lib PERFEXPLORER_JAR=$TAUROOT/$CONFIG_ARCH/lib/perfexplorer.jar PERFDMF_JAR=$TAUROOT/$CONFIG_ARCH/lib/perfdmf.jar JARGS_JAR=$TAUROOT/$CONFIG_ARCH/lib/jargs.jar JYTHON_JAR=$TAUROOT/$CONFIG_ARCH/lib/jython.jar WEKA_JAR=$JAR_HOME/weka-3-6-1.jar PERFEXPLORER_JAR=$TAUROOT/$CONFIG_ARCH/lib/perfexplorer.jar JFREECHART_JAR=$TAUROOT/$CONFIG_ARCH/lib/jfreechart-1.0.12.jar JCOMMON_JAR=$TAUROOT/$CONFIG_ARCH/lib/jcommon-1.0.15.jar JOGL_JAR=$TAUROOT/$CONFIG_ARCH/lib/jogl.jar VIS_JAR=$TAUROOT/$CONFIG_ARCH/lib/vis.jar TAUCOMMON_JAR=$TAUROOT/$CONFIG_ARCH/lib/tau-common.jar BATIK_JAR=$TAUROOT/$CONFIG_ARCH/lib/batik-combined.jar XERCES_JAR=$TAUROOT/$CONFIG_ARCH/lib/xerces.jar JUNIT_JAR=$TAUROOT/$CONFIG_ARCH/junit-3.8.1.jar # JBoss Rules jars ANTLR2_JAR=$JAR_HOME/antlr-2.7.6.jar ANTLR3_JAR=$JAR_HOME/antlr-3.0ea8.jar COMMONS_JCI_CORE_JAR=$JAR_HOME/commons-jci-core-1.0-406301.jar COMMONS_JCI_ECLIPSE_JAR=$JAR_HOME/commons-jci-eclipse-3.2.0.666.jar COMMONS_LANG_JAR=$JAR_HOME/commons-lang-2.1.jar COMMONS_LOGGING_JAR=$JAR_HOME/commons-logging-api-1.0.4.jar CORE_JAR=$JAR_HOME/core-3.2.0.666.jar DROOLS_COMIPLER_JAR=$JAR_HOME/drools-compiler-3.0.6.jar DROOLS_CORE_JAR=$JAR_HOME/drools-core-3.0.6.jar DROOLS_DECISIONTABLES_JAR=$JAR_HOME/drools-decisiontables-3.0.6.jar DROOLS_JSR94_JAR=$JAR_HOME/drools-jsr94-3.0.6.jar JSR_JAR=$JAR_HOME/jsr94-1.1.jar JXL_JAR=$JAR_HOME/jxl-2.4.2.jar STRINGTEMPLATE_JAR=$JAR_HOME/stringtemplate-2.3b6.jar JBOSS_RULES_JARS=$ANTLR3_JAR:$ANTLR2_JAR:$COMMONS_JCI_CORE_JAR:$COMMONS_JCI_ECLIPSE_JAR:$COMMONS_LANG_JAR:$COMMONS_LOGGING_JAR:$CORE_JAR:$DROOLS_COMIPLER_JAR:$DROOLS_CORE_JAR:$DROOLS_DECISIONTABLES_JAR:$DROOLS_JSR94_JAR:$JSR_JAR:$JXL_JAR:$STRINGTEMPLATE_JAR # check for the existence of weka if [ ! -f $WEKA_JAR ] ; then echo "You are missing the correct Weka jar file. Please re-run perfexplorer_configure." exit 1 fi # check for the existence of drools if [ ! -f $DROOLS_CORE_JAR ] ; then echo "You are missing the correct JBoss Rules jar files. Please re-run perfexplorer_configure." exit 1 fi # PARSE COMMAND LINE SWITCHES ############################################################### for arg in "$@"; do case $arg in --server) mode=server shift ;; --client) mode=client shift ;; --test=*) mode=test myarg=`echo $arg | sed 's/--test=//'` testName=$myarg shift ;; --verbose) RMIOptions="-Djava.rmi.server.logCalls=true -Dsun.rmi.loader.logLevel=BRIEF -Dsun.rmi.server.logLevel=BRIEF" shift ;; '') #echo "NULL switch!" # Required for HP/Compaq Tru64 machines. ;; # all others are handled in the Java app *) arguments="$arguments $arg" ;; esac done # # get the jdbc jar file from the configuration file if [ "x$CONFIGFILE" != "x" ]; then JDBC_JAR=`grep jdbc_db_jarfile $CONFIGFILE 2>/dev/null | sed s/jdbc_db_jarfile://` if [ "x$JDBC_JAR" != "x" ]; then if [ ! -r $JDBC_JAR ]; then echo "" echo "Warning: JDBC driver '$JDBC_JAR' not found." echo "" fi fi fi if [ "$CONFIG_ARCH" = "apple" ]; then EXTRA_OPTIONS="-Xdock:name=PerfExplorer -Xdock:icon=${TAUROOT}/${CONFIG_ARCH}/lib/tau-medium.png -Dapple.laf.useScreenMenuBar=true -Dcom.apple.mrj.application.growbox.intrudes=true" else EXTRA_OPTIONS="" fi # check for right java version PERFEXPLORER_OPTS="-w" CLASSPATH=$TAUCOMMON_JAR test=`java -cp $CLASSPATH edu.uoregon.tau.common.VersionTester 1.5` if [ $test = "failed" ] ; then echo "" echo "Java 1.5 or newer is required to run PerfExplorer." echo "Please update your Java SDK to a newer version to use PerfExplorer 2.0." echo "You will still be able to use PerfExplorer 1.0, from the TAU v2.17 release." echo "" JBOSS_RULES_JARS= PERFEXPLORER_JAR=$TAUROOT/$CONFIG_ARCH/lib/perfexplorer-1.4.jar PERFEXPLORER_OPTS="" fi # Default to 800m heap space MEMORY=-Xmx800m # Check machine type for a heap space boost machine=`uname -m` platform=`uname -s` if [ "x$machine" = "xx86_64" ] ; then MEMORY=-Xmx2000m fi testmax=`$BINDIR/tau_javamax.sh` if [ "x$testmax" != "xfailed" -a "x$platform" != "xDarwin" ] ; then MEMORY="-Xmx${testmax}m" fi if [ $mode = "standalone" ] ; then CLASSPATH=$PERFEXPLORER_JAR:$PERFDMF_JAR:$JDBC_JAR:$JFREECHART_JAR:$JCOMMON_JAR:$WEKA_JAR:$JOGL_JAR:$VIS_JAR:$JARGS_JAR:$JYTHON_JAR:$TAUCOMMON_JAR:$BATIK_JAR:$XERCES_JAR:$JUNIT_JAR:$JBOSS_RULES_JARS java $MEMORY $EXTRA_OPTIONS \ -classpath $CLASSPATH \ -Dderby.system.home=${JAR_HOME} \ -Djava.library.path=$CLIENT_DYLD_LIBRARY_PATH:$SERVER_DYLD_LIBRARY_PATH \ -Dpython.home=$JAR_HOME/jython \ edu.uoregon.tau.perfexplorer.client.PerfExplorerClient -s $PERFEXPLORER_OPTS -t $JARDIR -a $SCHEMADIR $@ fi if [ $mode = "test" ] ; then CLASSPATH=$PERFEXPLORER_JAR:$PERFDMF_JAR:$JDBC_JAR:$JFREECHART_JAR:$JCOMMON_JAR:$WEKA_JAR:$JOGL_JAR:$VIS_JAR:$JARGS_JAR:$JYTHON_JAR:$TAUCOMMON_JAR:$BATIK_JAR:$XERCES_JAR:$JUNIT_JAR:$JBOSS_RULES_JARS java $MEMORY \ -classpath $CLASSPATH \ -Dderby.system.home=${JAR_HOME} \ -Djava.library.path=$CLIENT_DYLD_LIBRARY_PATH:$SERVER_DYLD_LIBRARY_PATH \ -Dpython.home=$JAR_HOME/jython \ edu.uoregon.tau.perfexplorer.client.TestHarness -s -t $testName $arguments fi if [ $mode = "server" ] ; then CLASSPATH=$PERFEXPLORER_JAR:$PERFDMF_JAR:$JDBC_JAR:$JFREECHART_JAR:$JCOMMON_JAR:$WEKA_JAR:$JYTHON_JAR:$JARGS_JAR:$TAUCOMMON_JAR:$XERCES_JAR:$JUNIT_JAR:$JBOSS_RULES_JARS echo "Starting rmiregistry..." rmiregistry $SERVER_RMIREGISTRY_PORT & echo "Starting server..." java $MEMORY $EXTRA_OPTIONS \ -classpath $CLASSPATH \ -Dderby.system.home=${JAR_HOME} \ -Djava.security.policy=${TAUROOT}/${CONFIG_ARCH}/lib/java.policy \ -Djava.library.path=$SERVER_DYLD_LIBRARY_PATH \ ${RMIOptions} \ -Dsun.rmi.server.exceptionTrace=true \ -Dpython.home=$JAR_HOME/jython \ edu.uoregon.tau.perfexplorer.server.PerfExplorerServer -p $SERVER_OBJECT_PORT -t $JARDIR -a $SCHEMADIR $arguments echo "Killing rmiregistry..." killall rmiregistry fi if [ $mode = "client" ] ; then CLASSPATH=$PERFEXPLORER_JAR:$PERFDMF_JAR:$JFREECHART_JAR:$JCOMMON_JAR:$JOGL_JAR:$VIS_JAR:$JYTHON_JAR:$JARGS_JAR:$TAUCOMMON_JAR:$BATIK_JAR:$XERCES_JAR:$JUNIT_JAR:$JBOSS_RULES_JARS java $MEMORY $EXTRA_OPTIONS \ -classpath $CLASSPATH \ -Djava.security.policy=${TAUROOT}/${CONFIG_ARCH}/lib/java.policy \ -Djava.library.path=${CLIENT_DYLD_LIBRARY_PATH} \ -Djava.rmi.server.hostname=$SERVER_HOSTNAME \ -Dpython.home=$JAR_HOME/jython \ edu.uoregon.tau.perfexplorer.client.PerfExplorerClient -t $JARDIR -a $SCHEMADIR $arguments fi