@Echo Off
Rem ---------------------------------------------------------------------------
Rem JOnAS: Java(TM) Open Application Server
Rem Copyright (C) 1999-2009 Bull S.A.S.
Rem Contact: jonas-team@objectweb.org
Rem
Rem This library is free software; you can redistribute it and/or
Rem modify it under the terms of the GNU Lesser General Public
Rem License as published by the Free Software Foundation; either
Rem version 2.1 of the License, or any later version.
Rem
Rem This library is distributed in the hope that it will be useful,
Rem but WITHOUT ANY WARRANTY; without even the implied warranty of
Rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Rem Lesser General Public License for more details.
Rem
Rem You should have received a copy of the GNU Lesser General Public
Rem License along with this library; if not, write to the Free Software
Rem Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
Rem USA
Rem
Rem Contributor(s): S. Ali Tokmen:
Rem          - Automatic setting of JONAS_ROOT
Rem          - Fixed issues when using this batch in a folder contaning spaces
Rem ---------------------------------------------------------------------------
Rem $Id$
Rem ---------------------------------------------------------------------------

Rem Keep variables local to this script
setlocal
set ARGS=

Rem  Check for JONAS_ROOT, if not set set it to the default
if "%JONAS_ROOT%"=="" Goto SetJONAS_ROOT
echo JONAS_ROOT is set to %JONAS_ROOT%
Goto ExecuteBatch

Rem %~dp0 is the directory in which this batch file is,
Rem therefore JONAS_ROOT\bin\nt in our case.
:SetJONAS_ROOT
pushd "%~dp0"
cd ..
cd ..
@set JONAS_ROOT=%CD%
@echo Setting JONAS_ROOT to %JONAS_ROOT%
popd

:ExecuteBatch
Rem Required for carol.properties file (add JONAS_BASE\conf to classpath)
call "%JONAS_ROOT%\bin\nt\setenv.bat"
set JONAS_LIB=%JONAS_ROOT%\lib

Rem check client.jar
if not exist "%JONAS_LIB%\client.jar" goto noclt

Rem ---------------------------------------------
Rem Get args
Rem ---------------------------------------------
:loop_on_args
Set VALUE=%~1
if [%1]==[]             goto no_arg
if [%1]==[-cp]          goto cp_arg
if [%1]==[-security]    goto security
if [%1]==[-argclient]    goto loop_on_clientargs
if [%1]==[-debug]    goto debug_arg
if [%VALUE:~0,2%]==[-D] goto java_opts
set ARGS=%ARGS% %1
goto next_arg

Rem Use security manager for jclient ?
:security
Set JAVA_OPTS=%JAVA_OPTS% -Djava.security.manager -Djava.security.policy="%JONAS_BASE%\conf\java.policy"
goto next_arg

Rem Add -D System Properties
:java_opts
Set PROP=%~1
shift
Set PROP=%PROP%=%1
Set JAVA_OPTS=%JAVA_OPTS% %PROP%
goto next_arg

:cp_arg
shift
Set CLASSPATH=%CLASSPATH%;%~1
goto next_arg

:next_arg
shift
if not [%1]==[] goto loop_on_args

:loop_on_clientargs
Set VALUE=%~1
if [%1]==[]  goto execute
set ARGS=%ARGS% %1
goto next_clientarg

:next_clientarg
shift
if not [%1]==[] goto loop_on_clientargs
goto opt_orb

:opt_orb
Rem ---------------------------------------------
Rem Set options for ORB
Rem ---------------------------------------------
set JAVA_OPTS=%JAVA_OPTS% -Djava.security.auth.login.config="%JONAS_BASE%\conf\jaas.config"
set JAVA_OPTS=%JAVA_OPTS% -Djava.endorsed.dirs="%JONAS_ROOT%\lib\endorsed"
goto execute

:execute
Set CLASSPATH=%CLASSPATH%;%JONAS_LIB%\client.jar
%JAVA% -classpath "%CLASSPATH%" %JAVA_OPTS% %JCLIENT_DEBUG_OPTS% org.objectweb.jonas.client.ClientContainer %ARGS%
goto :EOF

:noclt
echo client.jar file must be present in JONAS_ROOT\lib directory
goto :EOF

:no_arg
echo No argument specified!
goto :EOF

:debug_arg
shift
if not [%1]==[-p] goto debug_usage
shift
set JCLIENT_DEBUG_PORT=%1
set JCLIENT_DEBUG_SUSPEND=n
if not [%2]==[-s] goto set_debug_opts
shift
shift
set JCLIENT_DEBUG_SUSPEND=%1

:set_debug_opts
echo Jclient Debug Info :
echo  listening on port : %JCLIENT_DEBUG_PORT%
echo  suspend mode : %JCLIENT_DEBUG_SUSPEND%
set JCLIENT_DEBUG_OPTS=-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=%JCLIENT_DEBUG_PORT%,suspend=%JCLIENT_DEBUG_SUSPEND%
goto next_arg


:debug_usage
echo -debug option parameters are : "-debug -p <debug-port> [-s <suspend:y/n>]"
goto :EOF
