Repository: karaf Updated Branches: refs/heads/master bc4760c18 -> 655639ac1
[KARAF-4349] Use the same approach of KARAF-4330 in karaf.bat script Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/655639ac Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/655639ac Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/655639ac Branch: refs/heads/master Commit: 655639ac1e19750053a565ea6c3fc6aeab5024a8 Parents: bc4760c Author: Andrea Cosentino <[email protected]> Authored: Mon Feb 22 09:41:53 2016 +0100 Committer: Andrea Cosentino <[email protected]> Committed: Mon Feb 22 09:41:53 2016 +0100 ---------------------------------------------------------------------- .../src/main/resources/resources/bin/karaf.bat | 29 ++++++++++++++++++++ 1 file changed, 29 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/655639ac/assemblies/features/base/src/main/resources/resources/bin/karaf.bat ---------------------------------------------------------------------- diff --git a/assemblies/features/base/src/main/resources/resources/bin/karaf.bat b/assemblies/features/base/src/main/resources/resources/bin/karaf.bat index 8901cad..8b36998 100644 --- a/assemblies/features/base/src/main/resources/resources/bin/karaf.bat +++ b/assemblies/features/base/src/main/resources/resources/bin/karaf.bat @@ -211,6 +211,21 @@ if not "%JAVA%" == "" goto :Check_JAVA_END set JAVA=%JAVA_HOME%\bin\java :Check_JAVA_END +:CheckRootInstance + set ROOT_INSTANCE_RUNNING=false + if exist "%KARAF_HOME%\instances\instance.properties" ( + for /f "delims=" %%x in ( 'findstr "item.0.pid" "%KARAF_HOME%\instances\instance.properties" ' ) do @set pid=%%x + for /f "delims=" %%i in ( 'findstr "item.0.name" "%KARAF_HOME%\instances\instance.properties" ' ) do @set name=%%i + ) + set ROOT_INSTANCE_PID=%pid:~13% + + set ROOT_INSTANCE_NAME=%name:~14% + if not "%ROOT_INSTANCE_PID%"=="0" ( + tasklist /fi "PID eq %ROOT_INSTANCE_PID%" /fi "STATUS eq running" /fo 2>NUL + if "%ERRORLEVEL%"=="0" 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. @@ -268,6 +283,8 @@ goto :EOF :CLASSPATH_END +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 @@ -292,15 +309,18 @@ if "%KARAF_PROFILER%" == "" goto :RUN :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 @@ -317,6 +337,7 @@ if "%KARAF_PROFILER%" == "" goto :RUN :EXECUTE_CLIENT SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false + SET CHECK_ROOT_INSTANCE_RUNNING=false shift goto :RUN_LOOP @@ -344,6 +365,10 @@ if "%KARAF_PROFILER%" == "" goto :RUN MOVE /Y "%KARAF_HOME%\lib.next" "%KARAF_HOME%\lib" ) + 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" ( "%JAVA%" %JAVA_OPTS% %OPTS% ^ -classpath "%CLASSPATH%" ^ -Djava.endorsed.dirs="%JAVA_HOME%\jre\lib\endorsed;%JAVA_HOME%\lib\endorsed;%KARAF_HOME%\lib\endorsed" ^ @@ -357,6 +382,10 @@ if "%KARAF_PROFILER%" == "" goto :RUN -Dkaraf.data="%KARAF_DATA%" ^ -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" ^ %KARAF_OPTS% %MAIN% %ARGS% + ) else ( + echo There is a Root instance already running with name %ROOT_INSTANCE_NAME% and pid %ROOT_INSTANCE_PID% + goto :END + ) rem If KARAF_DAEMON is defined, auto-restart is bypassed and control given rem back to the operating system
