#!/bin/sh
# ---------------------------------------------------------------------------
# JOnAS: Java(TM) Open Application Server
# Copyright (C) 1999-2008 Bull S.A.S.
# Contact: jonas-team@ow2.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 12709 2008-01-28 08:19:40Z fornacif $
# ---------------------------------------------------------------------------


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

# Set CLASSPATH and JONAS_BASE
. $JONAS_ROOT/bin/setenv


# ---------------------------------------------
# Get args
# ---------------------------------------------
ARGS=
while [ "$#" -gt 0 ]
do      case "$1" in
        -cp)
                shift
                JONAS_CLASSPATH=$JONAS_CLASSPATH$SPS$1
                ;;
        -D*)
                JAVA_OPTS="$JAVA_OPTS $1"
                ;;
        -security)
                # Use security manager for jclient
                JAVA_OPTS="$JAVA_OPTS -Djava.security.manager -Djava.security.policy=$JONAS_BASE/conf/java.policy"
                ;;
        -debug)
                shift
                # $1=-p
                if [ "$1" != "-p" ]; then
                  echo "-debug mode need a following \"-p <debug-port>\""
                  exit 1
                fi
                shift
                JONAS_DEBUG_PORT=$1
                JONAS_DEBUG_SUSPEND=n
                if [ "$2" = "-s" ]; then
                  shift
                  shift
                  JONAS_DEBUG_SUSPEND=$1
                fi
                echo "JOnAS Debug Info :"
                echo " listening on port : $JONAS_DEBUG_PORT"
                echo " suspend mode : $JONAS_DEBUG_SUSPEND"
                JONAS_DEBUG_OPTS=" -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=$JONAS_DEBUG_PORT,suspend=$JONAS_DEBUG_SUSPEND"
                ;;
        *)
                # all other args are passed "as is" to the java program
                ARGS="$ARGS $1"
                ;;
        esac
        shift
done

JAVA_OPTS="-Djava.security.auth.login.config=$JONAS_BASE/conf/jaas.config \
-Djava.endorsed.dirs=$JONAS_ROOT/lib/endorsed \
-Dregistry=$REGISTRY \
-Djonas.root=$JONAS_ROOT \
$JAVA_OPTS"


# Add client.jar
# CLASSPATH could be upgraded here
JONAS_CLASSPATH=$JONAS_CLASSPATH$SPS$JONAS_ROOT/lib/bootstrap/client-bootstrap.jar$SPS$JONAS_ROOT/lib/jonas-client.jar$SPS$JONAS_ROOT/lib/client.jar


$JAVA -cp $JONAS_CLASSPATH $JAVA_OPTS $JONAS_DEBUG_OPTS org.ow2.jonas.client.boot.Bootstrap org.ow2.jonas.client.ClientContainer $ARGS

