#!/bin/sh
# ---------------------------------------------------------------------------
# JOnAS: Java(TM) Open Application Server
# Copyright (C) 1999 Bull S.A.
# Contact: jonas-team@objectweb.org
# 
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or any later version.
# 
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
# 
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
# USA
#
# Initial developer(s): Philippe Durieux
# Contributor(s): ______________________________________.
#
# ---------------------------------------------------------------------------
# $Id: jclient.sh,v 1.20.2.2 2004/03/03 13:45:26 benoitf Exp $
# ---------------------------------------------------------------------------

# -----------------------------------------------------------------------
# Check JONAS_ROOT is set.
# -----------------------------------------------------------------------
if [ ! -d $JONAS_ROOT/lib ]
then
    echo "JONAS_ROOT must be set"
    exit 1
fi

#Required for carol.properties file (add JONAS_BASE/conf to classpath)
. $JONAS_ROOT/bin/unix/setenv

# ---------------------------------------------
# Get args
# ---------------------------------------------
ARGS=
COSNAMING_PORT=14727
COSNAMING_HOST=localhost
while [ "$#" -gt 0 ]
do	case "$1" in
	-cp)
		shift
		CLASSPATH=$CLASSPATH$SPS$1
		;;
	-D*)
		JAVA_OPTS="$JAVA_OPTS $1"
		;;
	*)
		# all other args are passed "as is" to the java program
		ARGS="$ARGS $1"
		;;
	esac
	shift
done

if [ -f $JONAS_LIB/client.jar ]
then
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/client.jar
else
    # Clients may use all these
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ow_jonas_bootstrap.jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/j2ee/ejb/\[ejb\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/j2ee/jaas/\[jaas\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/j2ee/jndi/\[jndi\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/j2ee/jta/\[jta\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/j2ee/jts/jts-spec1_0.jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/j2ee/providerutil/providerutil.jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/j2ee/jms/\[jms\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/jmx/jmx/\[jmxri-1.2\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/joram/mom/mom.jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/joram/joram/joram.jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/joram/JCup/\[java_cup\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/log/ow_monolog.jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/log/log4j/\[log4j\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/connector/ow_tx_api.jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/carol/carol.jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/jonathan/\[jonathan\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/jonathan/\[oldkilim\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/jonathan/\[nanoxml-lite\].jar

    # should only put here a minimum client jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ow_jonas.jar
fi

#WebServices
if [ -f $JONAS_LIB/webservices_axis.jar ]
then
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/webservices_axis.jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ws/wsdl4j/\[wsdl4j\].jar
else
    # Clients may use all these
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ow_jonas_axis.jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ws/axis/\[axis\]\[axis-ant\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ws/axis/\[axis\]\[axis\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ws/axis/\[commons-discovery\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ws/axis/\[commons-logging\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ws/axis/\[axis\]\[jaxrpc\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ws/axis/\[axis\]\[saaj\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/ws/wsdl4j/\[wsdl4j\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/xml/xerces/\[xerces-j2\].jar
    CLASSPATH=$CLASSPATH$SPS$JONAS_LIB/common/xml/xmlParser/\[xml-commons-apis\].jar
fi


# ---------------------------------------------
# CLASSPATH can be upgraded here : 
# i.e. to run JOnAS examples
# ---------------------------------------------
CLASSPATH=$CLASSPATH$SPS$JONAS_ROOT/examples/classes

# ---------------------------------------------
# Set options for CAROL
# ---------------------------------------------
JAVA_OPTS="$JAVA_OPTS \
    -Djavax.rmi.CORBA.PortableRemoteObjectClass=org.objectweb.carol.rmi.multi.MultiPRODelegate \
    -Djava.naming.factory.initial=org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory \
    -Djava.security.policy=$JONAS_BASE/conf/java.policy \
    -Djava.security.auth.login.config=$JONAS_ROOT/conf/jaas.config \
    -Dorg.omg.PortableInterceptor.ORBInitializerClass.org.objectweb.jonas_tm.ots.OTSORBInitializer \
    -Dorg.omg.PortableInterceptor.ORBInitializerClass.org.objectweb.jonas.security.interceptors.iiop.SecurityInitializer "

$JAVA $JAVA_OPTS $ARGS
