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

Reply via email to