You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
4.2 KiB
149 lines
4.2 KiB
@REM sa-itsi-correlation-engine launcher script
|
|
@REM
|
|
@REM Environment:
|
|
@REM JAVA_HOME - location of a JDK home dir (optional if java on path)
|
|
@REM CFG_OPTS - JVM options (optional)
|
|
@REM Configuration:
|
|
@REM SA_ITOA_JAVA_config.txt found in the SA_ITOA_HOME.
|
|
@setlocal enabledelayedexpansion
|
|
|
|
@echo off
|
|
|
|
if "%SA_ITOA_HOME%"=="" set "SA_ITOA_HOME=%~dp0\\.."
|
|
|
|
set "APP_LIB_DIR=%SA_ITOA_HOME%\lib\"
|
|
|
|
rem Detect if we were double clicked, although theoretically A user could
|
|
rem manually run cmd /c
|
|
for %%x in (!cmdcmdline!) do if %%~x==/c set DOUBLECLICKED=1
|
|
|
|
rem FIRST we load the config file of extra options.
|
|
set "CFG_FILE=%SA_ITOA_HOME%\SA_ITOA_JAVA_config.txt"
|
|
set CFG_OPTS=
|
|
if exist %CFG_FILE% (
|
|
FOR /F "tokens=* eol=# usebackq delims=" %%i IN ("%CFG_FILE%") DO (
|
|
set DO_NOT_REUSE_ME=%%i
|
|
rem ZOMG (Part #2) WE use !! here to delay the expansion of
|
|
rem CFG_OPTS, otherwise it remains "" for this loop.
|
|
set CFG_OPTS=!CFG_OPTS! !DO_NOT_REUSE_ME!
|
|
)
|
|
)
|
|
|
|
rem We use the value of the JAVACMD environment variable if defined
|
|
set _JAVACMD=%JAVACMD%
|
|
|
|
if "%_JAVACMD%"=="" (
|
|
if not "%JAVA_HOME%"=="" (
|
|
if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe"
|
|
)
|
|
)
|
|
|
|
if "%_JAVACMD%"=="" set _JAVACMD=java
|
|
|
|
rem Detect if this java is ok to use.
|
|
for /F %%j in ('"%_JAVACMD%" -version 2^>^&1') do (
|
|
if %%~j==java set JAVAINSTALLED=1
|
|
if %%~j==openjdk set JAVAINSTALLED=1
|
|
)
|
|
|
|
rem BAT has no logical or, so we do it OLD SCHOOL! Oppan Redmond Style
|
|
set JAVAOK=true
|
|
if not defined JAVAINSTALLED set JAVAOK=false
|
|
|
|
if "%JAVAOK%"=="false" (
|
|
echo.
|
|
echo A Java JDK is not installed or can't be found.
|
|
if not "%JAVA_HOME%"=="" (
|
|
echo JAVA_HOME = "%JAVA_HOME%"
|
|
)
|
|
echo.
|
|
echo Please go to
|
|
echo http://www.oracle.com/technetwork/java/javase/downloads/index.html
|
|
echo and download a valid Java JDK and install before running sa-itoa rule engine command.
|
|
echo.
|
|
echo If you think this message is in error, please check
|
|
echo your environment variables to see if "java.exe" and "javac.exe" are
|
|
echo available via JAVA_HOME or PATH.
|
|
echo.
|
|
if defined DOUBLECLICKED pause
|
|
exit /B 1
|
|
)
|
|
|
|
|
|
rem We use the value of the JAVA_OPTS environment variable if defined, rather than the config.
|
|
set _JAVA_OPTS=%JAVA_OPTS%
|
|
if "!_JAVA_OPTS!"=="" set _JAVA_OPTS=!CFG_OPTS!
|
|
|
|
rem We keep in _JAVA_PARAMS all -J-prefixed and -D-prefixed arguments
|
|
rem "-J" is stripped, "-D" is left as is, and everything is appended to JAVA_OPTS
|
|
set _JAVA_PARAMS=
|
|
set _APP_ARGS=
|
|
|
|
:param_loop
|
|
call set _PARAM1=%%1
|
|
set "_TEST_PARAM=%~1"
|
|
|
|
if ["!_PARAM1!"]==[""] goto param_afterloop
|
|
|
|
|
|
rem ignore arguments that do not start with '-'
|
|
if "%_TEST_PARAM:~0,1%"=="-" goto param_java_check
|
|
set _APP_ARGS=!_APP_ARGS! !_PARAM1!
|
|
shift
|
|
goto param_loop
|
|
|
|
:param_java_check
|
|
if "!_TEST_PARAM:~0,2!"=="-J" (
|
|
rem strip -J prefix
|
|
set _JAVA_PARAMS=!_JAVA_PARAMS! !_TEST_PARAM:~2!
|
|
shift
|
|
goto param_loop
|
|
)
|
|
|
|
if "!_TEST_PARAM:~0,2!"=="-D" (
|
|
rem test if this was double-quoted property "-Dprop=42"
|
|
for /F "delims== tokens=1,*" %%G in ("!_TEST_PARAM!") DO (
|
|
if not ["%%H"] == [""] (
|
|
set _JAVA_PARAMS=!_JAVA_PARAMS! !_PARAM1!
|
|
) else if [%2] neq [] (
|
|
rem it was a normal property: -Dprop=42 or -Drop="42"
|
|
call set _PARAM1=%%1=%%2
|
|
set _JAVA_PARAMS=!_JAVA_PARAMS! !_PARAM1!
|
|
shift
|
|
)
|
|
)
|
|
) else (
|
|
if "!_TEST_PARAM!"=="-main" (
|
|
call set CUSTOM_MAIN_CLASS=%%2
|
|
shift
|
|
) else (
|
|
set _APP_ARGS=!_APP_ARGS! !_PARAM1!
|
|
)
|
|
)
|
|
shift
|
|
goto param_loop
|
|
:param_afterloop
|
|
|
|
set _JAVA_OPTS=!_JAVA_OPTS! !_JAVA_PARAMS!
|
|
:run
|
|
|
|
:: Add to the classpath the location of user-defined classes and packages the java process depends on
|
|
set "APP_CLASSPATH=%APP_LIB_DIR%\java\event_management\libs\*;%APP_LIB_DIR%\java\event_management\correlation_engine\*"
|
|
|
|
set "APP_MAIN_CLASS=com.splunk.itsi.correlation.engine.core.CorrelationEngineSearch"
|
|
if defined CUSTOM_MAIN_CLASS (
|
|
set MAIN_CLASS=!CUSTOM_MAIN_CLASS!
|
|
) else (
|
|
set MAIN_CLASS=!APP_MAIN_CLASS!
|
|
)
|
|
|
|
rem Call the application and pass all arguments unchanged.
|
|
"%_JAVACMD%" !_JAVA_OPTS! -cp "%APP_CLASSPATH%" %MAIN_CLASS% !_APP_ARGS!
|
|
|
|
@endlocal
|
|
|
|
|
|
:end
|
|
|
|
exit /B %ERRORLEVEL%
|