485 lines
17 KiB
Batchfile
485 lines
17 KiB
Batchfile
@echo off
|
|
rem
|
|
rem
|
|
rem Licensed to the Apache Software Foundation (ASF) under one or more
|
|
rem contributor license agreements. See the NOTICE file distributed with
|
|
rem this work for additional information regarding copyright ownership.
|
|
rem The ASF licenses this file to You under the Apache License, Version 2.0
|
|
rem (the "License"); you may not use this file except in compliance with
|
|
rem the License. You may obtain a copy of the License at
|
|
rem
|
|
rem http://www.apache.org/licenses/LICENSE-2.0
|
|
rem
|
|
rem Unless required by applicable law or agreed to in writing, software
|
|
rem distributed under the License is distributed on an "AS IS" BASIS,
|
|
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
rem See the License for the specific language governing permissions and
|
|
rem limitations under the License.
|
|
rem
|
|
|
|
if not "%ECHO%" == "" echo %ECHO%
|
|
|
|
setlocal
|
|
set DIRNAME=%~dp0%
|
|
set PROGNAME=%~nx0%
|
|
set ARGS=%*
|
|
|
|
rem Sourcing environment settings for karaf similar to tomcats setenv
|
|
SET KARAF_SCRIPT="karaf.bat"
|
|
if exist "%DIRNAME%setenv.bat" (
|
|
call "%DIRNAME%setenv.bat"
|
|
)
|
|
|
|
rem Check console window title. Set to Karaf by default
|
|
if not "%KARAF_TITLE%" == "" (
|
|
title %KARAF_TITLE%
|
|
) else (
|
|
title Karaf
|
|
)
|
|
|
|
rem Check/Set up some easily accessible MIN/MAX params for JVM mem usage
|
|
if "%JAVA_MIN_MEM%" == "" (
|
|
set JAVA_MIN_MEM=128M
|
|
)
|
|
if "%JAVA_MAX_MEM%" == "" (
|
|
set JAVA_MAX_MEM=512M
|
|
)
|
|
|
|
goto BEGIN
|
|
|
|
:warn
|
|
echo %PROGNAME%: %*
|
|
goto :EOF
|
|
|
|
:BEGIN
|
|
|
|
rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
|
|
if not "%KARAF_HOME%" == "" (
|
|
call :warn Ignoring predefined value for KARAF_HOME
|
|
)
|
|
set KARAF_HOME=%DIRNAME%..
|
|
if not exist "%KARAF_HOME%" (
|
|
call :warn KARAF_HOME is not valid: "%KARAF_HOME%"
|
|
goto END
|
|
)
|
|
|
|
if not "%KARAF_BASE%" == "" (
|
|
if not exist "%KARAF_BASE%" (
|
|
call :warn KARAF_BASE is not valid: "%KARAF_BASE%"
|
|
goto END
|
|
)
|
|
)
|
|
if "%KARAF_BASE%" == "" (
|
|
set "KARAF_BASE=%KARAF_HOME%"
|
|
)
|
|
|
|
if not "%KARAF_DATA%" == "" (
|
|
if not exist "%KARAF_DATA%" (
|
|
call :warn KARAF_DATA is not valid: "%KARAF_DATA%"
|
|
call :warn Creating "%KARAF_DATA%"
|
|
mkdir "%KARAF_DATA%"
|
|
)
|
|
)
|
|
if "%KARAF_DATA%" == "" (
|
|
set "KARAF_DATA=%KARAF_BASE%\data"
|
|
)
|
|
|
|
if not "%KARAF_ETC%" == "" (
|
|
if not exist "%KARAF_ETC%" (
|
|
call :warn KARAF_ETC is not valid: "%KARAF_ETC%"
|
|
goto END
|
|
)
|
|
)
|
|
if "%KARAF_ETC%" == "" (
|
|
set "KARAF_ETC=%KARAF_BASE%\etc"
|
|
)
|
|
|
|
set LOCAL_CLASSPATH=%CLASSPATH%
|
|
set JAVA_MODE=-server
|
|
|
|
set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
|
|
set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
|
|
set DEFAULT_JAVA_DEBUGS_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
|
|
|
|
if "%LOCAL_CLASSPATH%" == "" goto :KARAF_CLASSPATH_EMPTY
|
|
set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
|
|
goto :KARAF_CLASSPATH_END
|
|
:KARAF_CLASSPATH_EMPTY
|
|
set CLASSPATH=%KARAF_BASE%\conf
|
|
:KARAF_CLASSPATH_END
|
|
|
|
set CLASSPATH_INITIAL=%CLASSPATH%
|
|
|
|
rem Setup Karaf Home
|
|
if exist "%KARAF_HOME%\conf\karaf-rc.cmd" call %KARAF_HOME%\conf\karaf-rc.cmd
|
|
if exist "%HOME%\karaf-rc.cmd" call %HOME%\karaf-rc.cmd
|
|
|
|
rem Support for loading native libraries
|
|
set PATH=%PATH%;%KARAF_BASE%\lib;%KARAF_HOME%\lib
|
|
|
|
rem Setup the Java Virtual Machine
|
|
if not "%JAVA%" == "" goto :Check_JAVA_END
|
|
if not "%JAVA_HOME%" == "" goto :TryJDKEnd
|
|
call :warn JAVA_HOME not set; results may vary
|
|
:TryJRE
|
|
start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment"
|
|
if not exist __reg1.txt goto :TryJDK
|
|
type __reg1.txt | find "CurrentVersion" > __reg2.txt
|
|
if errorlevel 1 goto :TryJDK
|
|
for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x
|
|
if errorlevel 1 goto :TryJDK
|
|
set JavaTemp=%JavaTemp%##
|
|
set JavaTemp=%JavaTemp: ##=##%
|
|
set JavaTemp=%JavaTemp: ##=##%
|
|
set JavaTemp=%JavaTemp: ##=##%
|
|
set JavaTemp=%JavaTemp: ##=##%
|
|
set JavaTemp=%JavaTemp: ##=##%
|
|
set JavaTemp=%JavaTemp:##=%
|
|
del __reg1.txt
|
|
del __reg2.txt
|
|
start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\%JavaTemp%"
|
|
if not exist __reg1.txt goto :TryJDK
|
|
type __reg1.txt | find "JavaHome" > __reg2.txt
|
|
if errorlevel 1 goto :TryJDK
|
|
for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x
|
|
if errorlevel 1 goto :TryJDK
|
|
del __reg1.txt
|
|
del __reg2.txt
|
|
goto TryJDKEnd
|
|
:TryJDK
|
|
start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit"
|
|
if not exist __reg1.txt (
|
|
goto TryRegJRE
|
|
)
|
|
type __reg1.txt | find "CurrentVersion" > __reg2.txt
|
|
if errorlevel 1 (
|
|
goto TryRegJRE
|
|
)
|
|
for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x
|
|
if errorlevel 1 (
|
|
goto TryRegJRE
|
|
)
|
|
set JavaTemp=%JavaTemp%##
|
|
set JavaTemp=%JavaTemp: ##=##%
|
|
set JavaTemp=%JavaTemp: ##=##%
|
|
set JavaTemp=%JavaTemp: ##=##%
|
|
set JavaTemp=%JavaTemp: ##=##%
|
|
set JavaTemp=%JavaTemp: ##=##%
|
|
set JavaTemp=%JavaTemp:##=%
|
|
del __reg1.txt
|
|
del __reg2.txt
|
|
start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\%JavaTemp%"
|
|
if not exist __reg1.txt (
|
|
goto TryRegJRE
|
|
)
|
|
type __reg1.txt | find "JavaHome" > __reg2.txt
|
|
if errorlevel 1 (
|
|
goto TryRegJRE
|
|
)
|
|
for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x
|
|
if errorlevel 1 (
|
|
goto TryRegJRE
|
|
)
|
|
del __reg1.txt
|
|
del __reg2.txt
|
|
:TryRegJRE
|
|
rem try getting the JAVA_HOME from registry
|
|
FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion`) DO (
|
|
set JAVA_VERSION=%%A
|
|
)
|
|
FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%JAVA_VERSION%" /v JavaHome`) DO (
|
|
set JAVA_HOME=%%A %%B
|
|
)
|
|
if not exist "%JAVA_HOME%" (
|
|
goto TryRegJDK
|
|
)
|
|
goto TryJDKEnd
|
|
:TryRegJDK
|
|
rem try getting the JAVA_HOME from registry
|
|
FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit" /v CurrentVersion`) DO (
|
|
set JAVA_VERSION=%%A
|
|
)
|
|
FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit\%JAVA_VERSION%" /v JavaHome`) DO (
|
|
set JAVA_HOME=%%A %%B
|
|
)
|
|
if not exist "%JAVA_HOME%" (
|
|
call :warn Unable to retrieve JAVA_HOME from Registry
|
|
)
|
|
goto TryJDKEnd
|
|
:TryJDKEnd
|
|
if not exist "%JAVA_HOME%" (
|
|
call :warn JAVA_HOME is not valid: "%JAVA_HOME%"
|
|
goto END
|
|
)
|
|
set JAVA=%JAVA_HOME%\bin\java
|
|
:Check_JAVA_END
|
|
|
|
rem Retrieve java version
|
|
for /f tokens^=2-5^ delims^=.-_+^" %%j in ('"%JAVA%" -fullversion 2^>^&1') do (
|
|
if %%j==1 (set JAVA_VERSION=%%k) else (set JAVA_VERSION=%%j)
|
|
)
|
|
|
|
:CheckRootInstance
|
|
set ROOT_INSTANCE_RUNNING=false
|
|
if exist "%OPENHAB_USERDATA%\tmp\instances\instance.properties" (
|
|
for /f "delims=" %%x in ( 'findstr "item.0.pid" "%OPENHAB_USERDATA%\tmp\instances\instance.properties" ' ) do @set pid=%%x
|
|
for /f "delims=" %%i in ( 'findstr "item.0.name" "%OPENHAB_USERDATA%\tmp\instances\instance.properties" ' ) do @set name=%%i
|
|
)
|
|
set ROOT_INSTANCE_PID=%pid:~13%
|
|
|
|
set ROOT_INSTANCE_NAME=%name:~14%
|
|
SET CHECK_RUNNING_CONDITION=true
|
|
if "%ROOT_INSTANCE_PID%" == "~13" SET CHECK_RUNNING_CONDITION=false
|
|
if "%ROOT_INSTANCE_PID%" == "0" SET CHECK_RUNNING_CONDITION=false
|
|
if "%CHECK_RUNNING_CONDITION%" == "true" (
|
|
tasklist /FI "PID eq %ROOT_INSTANCE_PID%" 2>NUL | find /I /N "java.exe" > NUL
|
|
if not errorlevel 1 set ROOT_INSTANCE_RUNNING=true
|
|
)
|
|
|
|
|
|
if not exist "%JAVA_HOME%\bin\server\jvm.dll" (
|
|
if not exist "%JAVA_HOME%\jre\bin\server\jvm.dll" (
|
|
echo WARNING: Running Karaf on a Java HotSpot Client VM because server-mode is not available.
|
|
echo Install Java Developer Kit to fix this.
|
|
echo For more details see http://java.sun.com/products/hotspot/whitepaper.html#client
|
|
set JAVA_MODE=-client
|
|
)
|
|
)
|
|
set DEFAULT_JAVA_OPTS=%JAVA_MODE% -Xms%JAVA_MIN_MEM% -Xmx%JAVA_MAX_MEM% -Dcom.sun.management.jmxremote -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass
|
|
|
|
rem Check some easily accessible MIN/MAX params for JVM mem usage
|
|
if not "%JAVA_PERM_MEM%" == "" (
|
|
set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=%JAVA_PERM_MEM%
|
|
)
|
|
if not "%JAVA_MAX_PERM_MEM%" == "" (
|
|
set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM%
|
|
)
|
|
|
|
if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%
|
|
|
|
if "%EXTRA_JAVA_OPTS%" == "" goto :KARAF_EXTRA_JAVA_OPTS_END
|
|
set JAVA_OPTS=%JAVA_OPTS% %EXTRA_JAVA_OPTS%
|
|
:KARAF_EXTRA_JAVA_OPTS_END
|
|
|
|
if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END
|
|
if "%1" == "stop" goto :KARAF_DEBUG_END
|
|
if "%1" == "client" goto :KARAF_DEBUG_END
|
|
if "%1" == "status" goto :KARAF_DEBUG_END
|
|
rem Use the defaults if JAVA_DEBUG_OPTS was not set
|
|
if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
|
|
|
|
set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
|
|
call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%
|
|
:KARAF_DEBUG_END
|
|
|
|
if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END
|
|
set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd
|
|
|
|
if exist "%KARAF_PROFILER_SCRIPT%" goto :KARAF_PROFILER_END
|
|
call :warn Missing configuration for profiler '%KARAF_PROFILER%': %KARAF_PROFILER_SCRIPT%
|
|
goto END
|
|
:KARAF_PROFILER_END
|
|
|
|
rem Setup the classpath
|
|
pushd "%KARAF_HOME%\lib\boot"
|
|
for %%G in (*.jar) do call:APPEND_TO_CLASSPATH %%G
|
|
popd
|
|
goto CLASSPATH_END
|
|
|
|
: APPEND_TO_CLASSPATH
|
|
set filename=%~1
|
|
set suffix=%filename:~-4%
|
|
if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\boot\%filename%
|
|
goto :EOF
|
|
|
|
:CLASSPATH_END
|
|
|
|
if "%CHECK_ROOT_INSTANCE_RUNNING%" == "" (
|
|
SET CHECK_ROOT_INSTANCE_RUNNING=true
|
|
)
|
|
|
|
rem Execute the JVM or the load the profiler
|
|
if "%KARAF_PROFILER%" == "" goto :RUN
|
|
rem Execute the profiler if it has been configured
|
|
call :warn Loading profiler script: %KARAF_PROFILER_SCRIPT%
|
|
call %KARAF_PROFILER_SCRIPT%
|
|
|
|
:RUN
|
|
SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true
|
|
SET MAIN=org.apache.karaf.main.Main
|
|
SET SHIFT=false
|
|
|
|
:RUN_LOOP
|
|
if "%1" == "stop" goto :EXECUTE_STOP
|
|
if "%1" == "status" goto :EXECUTE_STATUS
|
|
if "%1" == "console" goto :EXECUTE_CONSOLE
|
|
if "%1" == "server" goto :EXECUTE_SERVER
|
|
if "%1" == "run" goto :EXECUTE_RUN
|
|
if "%1" == "daemon" goto :EXECUTE_DAEMON
|
|
if "%1" == "client" goto :EXECUTE_CLIENT
|
|
if "%1" == "clean" goto :EXECUTE_CLEAN
|
|
if "%1" == "debug" goto :EXECUTE_DEBUG
|
|
if "%1" == "debugs" goto :EXECUTE_DEBUGS
|
|
goto :EXECUTE
|
|
|
|
:EXECUTE_STOP
|
|
SET MAIN=org.apache.karaf.main.Stop
|
|
SET CHECK_ROOT_INSTANCE_RUNNING=false
|
|
shift
|
|
goto :RUN_LOOP
|
|
|
|
:EXECUTE_STATUS
|
|
SET MAIN=org.apache.karaf.main.Status
|
|
SET CHECK_ROOT_INSTANCE_RUNNING=false
|
|
shift
|
|
goto :RUN_LOOP
|
|
|
|
:EXECUTE_CONSOLE
|
|
SET CHECK_ROOT_INSTANCE_RUNNING=false
|
|
shift
|
|
goto :RUN_LOOP
|
|
|
|
:EXECUTE_SERVER
|
|
SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
|
|
shift
|
|
goto :RUN_LOOP
|
|
|
|
:EXECUTE_RUN
|
|
SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Dkaraf.log.console=ALL
|
|
shift
|
|
goto :RUN_LOOP
|
|
|
|
:EXECUTE_DAEMON
|
|
SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
|
|
SET KARAF_DAEMON=true
|
|
shift
|
|
goto :RUN_LOOP
|
|
|
|
:EXECUTE_CLIENT
|
|
SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false
|
|
SET CHECK_ROOT_INSTANCE_RUNNING=false
|
|
shift
|
|
goto :RUN_LOOP
|
|
|
|
:EXECUTE_CLEAN
|
|
pushd "%KARAF_DATA%" && (rmdir /S /Q "%KARAF_DATA%" 2>nul & popd)
|
|
shift
|
|
goto :RUN_LOOP
|
|
|
|
:EXECUTE_DEBUG
|
|
if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
|
|
set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
|
|
shift
|
|
goto :RUN_LOOP
|
|
|
|
:EXECUTE_DEBUGS
|
|
if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUGS_OPTS%
|
|
set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
|
|
shift
|
|
goto :RUN_LOOP
|
|
|
|
:EXECUTE
|
|
SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8
|
|
rem Execute the Java Virtual Machine
|
|
cd "%KARAF_BASE%"
|
|
|
|
rem When users want to update the lib version of, they just need to create
|
|
rem a lib.next directory and on the new restart, it will replace the current lib directory.
|
|
if exist "%KARAF_HOME%\lib.next" (
|
|
echo Updating libs...
|
|
RD /S /Q "%KARAF_HOME%\lib"
|
|
MOVE /Y "%KARAF_HOME%\lib.next" "%KARAF_HOME%\lib"
|
|
|
|
echo "Updating classpath..."
|
|
set CLASSPATH=%CLASSPATH_INITIAL%
|
|
pushd "%KARAF_HOME%\lib\boot"
|
|
for %%G in (*.jar) do call:APPEND_TO_CLASSPATH %%G
|
|
popd
|
|
)
|
|
|
|
SET IS_RUNNABLE=false
|
|
if "%ROOT_INSTANCE_RUNNING%" == "false" SET IS_RUNNABLE=true
|
|
if "%CHECK_ROOT_INSTANCE_RUNNING%" == "false" SET IS_RUNNABLE=true
|
|
if "%IS_RUNNABLE%" == "true" (
|
|
rem If major version is greater than 1 (meaning Java 9 or 10), we don't use endorsed lib but module
|
|
rem If major version is 1 (meaning Java 1.6, 1.7, 1.8), we use endorsed lib
|
|
if %JAVA_VERSION% GTR 8 (
|
|
"%JAVA%" %JAVA_OPTS% %OPTS% ^
|
|
--add-reads=java.xml=java.logging ^
|
|
--patch-module java.base=lib/endorsed/org.apache.karaf.specs.locator-4.2.1.jar ^
|
|
--patch-module java.xml=lib/endorsed/org.apache.karaf.specs.java.xml-4.2.1.jar ^
|
|
--add-opens java.base/java.security=ALL-UNNAMED ^
|
|
--add-opens java.base/java.net=ALL-UNNAMED ^
|
|
--add-opens java.base/java.lang=ALL-UNNAMED ^
|
|
--add-opens java.base/java.util=ALL-UNNAMED ^
|
|
--add-opens java.naming/javax.naming.spi=ALL-UNNAMED ^
|
|
--add-opens java.rmi/sun.rmi.transport.tcp=ALL-UNNAMED ^
|
|
--add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED ^
|
|
--add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED ^
|
|
--add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED ^
|
|
--add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED ^
|
|
--add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED ^
|
|
-classpath "%CLASSPATH%" ^
|
|
-Dkaraf.instances="%OPENHAB_USERDATA%\tmp\instances" ^
|
|
-Dkaraf.home="%KARAF_HOME%" ^
|
|
-Dkaraf.base="%KARAF_BASE%" ^
|
|
-Dkaraf.etc="%KARAF_ETC%" ^
|
|
-Dkaraf.logs="%OPENHAB_LOGDIR%" ^
|
|
-Dkaraf.restart.jvm.supported=true ^
|
|
-Djava.io.tmpdir="%KARAF_DATA%\tmp" ^
|
|
-Dkaraf.data="%KARAF_DATA%" ^
|
|
-Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" ^
|
|
%KARAF_SYSTEM_OPTS% %KARAF_OPTS% %MAIN% %ARGS%
|
|
) else (
|
|
"%JAVA%" %JAVA_OPTS% %OPTS% ^
|
|
-classpath "%CLASSPATH%" ^
|
|
-Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;%KARAF_HOME%\lib\endorsed" ^
|
|
-Djava.ext.dirs="%JAVA_HOME%\jre\lib\ext;%JAVA_HOME%\lib\ext;%KARAF_HOME%\lib\ext" ^
|
|
-Dkaraf.instances="%OPENHAB_USERDATA%\tmp\instances" ^
|
|
-Dkaraf.home="%KARAF_HOME%" ^
|
|
-Dkaraf.base="%KARAF_BASE%" ^
|
|
-Dkaraf.etc="%KARAF_ETC%" ^
|
|
-Dkaraf.logs="%OPENHAB_LOGDIR%" ^
|
|
-Dkaraf.restart.jvm.supported=true ^
|
|
-Djava.io.tmpdir="%KARAF_DATA%\tmp" ^
|
|
-Dkaraf.data="%KARAF_DATA%" ^
|
|
-Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" ^
|
|
%KARAF_SYSTEM_OPTS% %KARAF_OPTS% %MAIN% %ARGS%
|
|
)
|
|
) else (
|
|
echo There is a Root instance already running with name %ROOT_INSTANCE_NAME% and pid %ROOT_INSTANCE_PID%. If you know what you are doing and want to force the run anyway, SET CHECK_ROOT_INSTANCE_RUNNING=false and re run the command.
|
|
goto :END
|
|
)
|
|
|
|
rem If KARAF_DAEMON is defined, auto-restart is bypassed and control given
|
|
rem back to the operating system
|
|
if defined "%KARAF_DAEMON%" (
|
|
rem If Karaf has been started by winsw, the process can be restarted
|
|
rem by executing KARAF_DAEMON% restart!
|
|
rem https://github.com/kohsuke/winsw#restarting-service-from-itself
|
|
if defined "%WINSW_EXECUTABLE%" (
|
|
if ERRORLEVEL 10 (
|
|
echo Restarting ...
|
|
%KARAF_DAEMON% restart!
|
|
)
|
|
)
|
|
) else (
|
|
if ERRORLEVEL 10 (
|
|
echo Restarting JVM...
|
|
goto EXECUTE
|
|
)
|
|
)
|
|
|
|
|
|
rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
|
|
:END
|
|
|
|
endlocal
|
|
|
|
if not "%PAUSE%" == "" pause
|
|
|
|
:END_NO_PAUSE
|
|
EXIT /B %ERRORLEVEL%
|