2N/A@echo off
2N/Asetlocal
2N/A
2N/Arem Only set OPENIDM_HOME if not already set
2N/Aset "CURRENT_DIR=%cd%"
2N/Aif not "%OPENIDM_HOME%" == "" goto gotHome
2N/Aset "OPENIDM_HOME=%CURRENT_DIR%"
2N/Aif exist "%OPENIDM_HOME%\bin\felix.jar" goto okHome
2N/Acd ..
2N/Aset "OPENIDM_HOME=%cd%"
2N/Acd "%CURRENT_DIR%"
2N/A:gotHome
2N/Aif exist "%OPENIDM_HOME%\bin\felix.jar" goto okHome
2N/Aecho The OPENIDM_HOME environment variable is not defined correctly
2N/Aecho This environment variable is needed to run this program
2N/Agoto end
2N/A:okHome
2N/A
2N/Arem Only set OPENIDM_OPTS if not already set
2N/Aif not "%OPENIDM_OPTS%" == "" goto noOpenIDMOpts
2N/Aset OPENIDM_OPTS=${openidm.options} -Dfile.encoding=UTF-8
2N/A:noOpenIDMOpts
2N/A
2N/Aset "JPDA="
2N/A
2N/Arem Check for a project directory, default to OpenIDM home directory
2N/Aset PROJECT_HOME=%OPENIDM_HOME%
2N/Aset CMD_LINE_ARGS=-c bin/launcher.json
2N/A:optLoop
2N/Aif "%1"=="" goto optDone
2N/Arem We do not want jpda in CMD_LINE_ARGS
12N/Aif "%1"=="jpda" goto optJpda
12N/Aset CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
2N/Aif "%1"=="-p" goto optP
2N/Ashift
2N/Agoto optLoop
2N/A:optJpda
26N/Aset "JPDA=JPDA"
26N/Ashift
2N/Agoto optLoop
26N/A:optP
26N/Ashift
26N/Aif "%1"=="" goto optDone
26N/Aset "PROJECT_HOME=%OPENIDM_HOME%\%1"
26N/Agoto optLoop
26N/A:optDone
26N/A
26N/Arem Set JDK Logger config file if it is present and an override has not been issued
26N/Aif not "%LOGGING_CONFIG%" == "" goto noJuliConfig
26N/Aset LOGGING_CONFIG=-Dnop
26N/Aif not exist "%PROJECT_HOME%\conf\logging.properties" goto defaultJuliConfig
26N/Aset LOGGING_CONFIG=-Djava.util.logging.config.file="%PROJECT_HOME%\conf\logging.properties"
26N/Agoto noJuliConfig
26N/A:defaultJuliConfig
26N/Aif not exist "%OPENIDM_HOME%\conf\logging.properties" goto noJuliConfig
26N/Aset LOGGING_CONFIG=-Djava.util.logging.config.file="%OPENIDM_HOME%\conf\logging.properties"
26N/A:noJuliConfig
26N/Aset JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
26N/A
26N/Aif not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
26N/Aset JPDA_TRANSPORT=dt_socket
2N/A:gotJpdaTransport
26N/Aif not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
26N/Aset JPDA_ADDRESS=5005
26N/A:gotJpdaAddress
26N/Aif not "%JPDA_SUSPEND%" == "" goto gotJpdaSuspend
26N/Aset JPDA_SUSPEND=n
26N/A:gotJpdaSuspend
26N/Aif not "%JPDA_OPTS%" == "" goto gotJpdaOpts
26N/Aset JPDA_OPTS=-Djava.compiler=NONE -Xnoagent -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
26N/A:gotJpdaOpts
26N/Ashift
26N/A:noJpda
26N/A
26N/Arem Ensure that any user defined CLASSPATH variables are not used on startup,
2N/Arem but allow them to be specified here, in rare case when it is needed.
26N/Aset CLASSPATH="bin\*;framework\*"
26N/A
27N/Aecho "Using OPENIDM_HOME: %OPENIDM_HOME%"
27N/Aecho "Using OPENIDM_OPTS: %OPENIDM_OPTS%"
27N/Aecho "Using LOGGING_CONFIG: %LOGGING_CONFIG%"
26N/A
26N/Arem Note the quoting as JAVA_HOME may contain spaces.
12N/Aset _RUNJAVA="%JAVA_HOME%\bin\java"
30N/A
26N/Aif not "%OS%" == "Windows_NT" goto noTitle
26N/Aif "%TITLE%" == "" set TITLE=OpenIDM
26N/Aset _EXECJAVA=start "%TITLE%" %_RUNJAVA%
2N/Agoto gotTitle
26N/A:noTitle
30N/Aset _EXECJAVA=start %_RUNJAVA%
26N/A:gotTitle
2N/A
7N/Aset MAINCLASS=org.forgerock.commons.launcher.Main
27N/A
27N/Arem Execute Java with the applicable properties
27N/Apushd %OPENIDM_HOME%
21N/Aif not "%JPDA%" == "" goto doJpda
7N/Acall %_EXECJAVA% %JAVA_OPTS% %OPENIDM_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dopenidm.system.server.root="%OPENIDM_HOME%" %MAINCLASS% %CMD_LINE_ARGS%
26N/Agoto end
26N/A:doJpda
26N/Acall %_EXECJAVA% %JAVA_OPTS% %OPENIDM_OPTS% %JPDA_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dopenidm.system.server.root="%OPENIDM_HOME%" %MAINCLASS% %CMD_LINE_ARGS%
26N/Apopd
26N/A
26N/A:end
30N/A