4 rem Licensed to the Apache Software Foundation (ASF) under one or more
\r
5 rem contributor license agreements. See the NOTICE file distributed with
\r
6 rem this work for additional information regarding copyright ownership.
\r
7 rem The ASF licenses this file to You under the Apache License, Version 2.0
\r
8 rem (the "License"); you may not use this file except in compliance with
\r
9 rem the License. You may obtain a copy of the License at
\r
11 rem http://www.apache.org/licenses/LICENSE-2.0
\r
13 rem Unless required by applicable law or agreed to in writing, software
\r
14 rem distributed under the License is distributed on an "AS IS" BASIS,
\r
15 rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
16 rem See the License for the specific language governing permissions and
\r
17 rem limitations under the License.
\r
20 if not "%ECHO%" == "" echo %ECHO%
\r
27 rem Sourcing environment settings for karaf similar to tomcats setenv
\r
28 SET KARAF_SCRIPT="karaf.bat"
\r
29 if exist "%DIRNAME%setenv.bat" (
\r
30 call "%DIRNAME%setenv.bat"
\r
33 rem Check console window title. Set to Karaf by default
\r
34 if not "%KARAF_TITLE%" == "" (
\r
40 rem Check/Set up some easily accessible MIN/MAX params for JVM mem usage
\r
41 if "%JAVA_MIN_MEM%" == "" (
\r
42 set JAVA_MIN_MEM=128M
\r
44 if "%JAVA_MAX_MEM%" == "" (
\r
45 set JAVA_MAX_MEM=512M
\r
56 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
\r
58 if not "%KARAF_HOME%" == "" (
\r
59 call :warn Ignoring predefined value for KARAF_HOME
\r
61 set KARAF_HOME=%DIRNAME%..
\r
62 if not exist "%KARAF_HOME%" (
\r
63 call :warn KARAF_HOME is not valid: "%KARAF_HOME%"
\r
67 if not "%KARAF_BASE%" == "" (
\r
68 if not exist "%KARAF_BASE%" (
\r
69 call :warn KARAF_BASE is not valid: "%KARAF_BASE%"
\r
73 if "%KARAF_BASE%" == "" (
\r
74 set "KARAF_BASE=%KARAF_HOME%"
\r
77 if not "%KARAF_DATA%" == "" (
\r
78 if not exist "%KARAF_DATA%" (
\r
79 call :warn KARAF_DATA is not valid: "%KARAF_DATA%"
\r
83 if "%KARAF_DATA%" == "" (
\r
84 set "KARAF_DATA=%KARAF_BASE%\data"
\r
87 if not "%KARAF_ETC%" == "" (
\r
88 if not exist "%KARAF_ETC%" (
\r
89 call :warn KARAF_ETC is not valid: "%KARAF_ETC%"
\r
93 if "%KARAF_ETC%" == "" (
\r
94 set "KARAF_ETC=%KARAF_BASE%\etc"
\r
97 set LOCAL_CLASSPATH=%CLASSPATH%
\r
98 set JAVA_MODE=-server
\r
100 set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
\r
101 set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
\r
103 if "%LOCAL_CLASSPATH%" == "" goto :KARAF_CLASSPATH_EMPTY
\r
104 set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
\r
105 goto :KARAF_CLASSPATH_END
\r
106 :KARAF_CLASSPATH_EMPTY
\r
107 set CLASSPATH=%KARAF_BASE%\conf
\r
108 :KARAF_CLASSPATH_END
\r
110 rem Setup Karaf Home
\r
111 if exist "%KARAF_HOME%\conf\karaf-rc.cmd" call %KARAF_HOME%\conf\karaf-rc.cmd
\r
112 if exist "%HOME%\karaf-rc.cmd" call %HOME%\karaf-rc.cmd
\r
114 rem Support for loading native libraries
\r
115 set PATH=%PATH%;%KARAF_BASE%\lib;%KARAF_HOME%\lib
\r
117 rem Setup the Java Virtual Machine
\r
118 if not "%JAVA%" == "" goto :Check_JAVA_END
\r
119 if not "%JAVA_HOME%" == "" goto :TryJDKEnd
\r
120 call :warn JAVA_HOME not set; results may vary
\r
122 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment"
\r
123 if not exist __reg1.txt goto :TryJDK
\r
124 type __reg1.txt | find "CurrentVersion" > __reg2.txt
\r
125 if errorlevel 1 goto :TryJDK
\r
126 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x
\r
127 if errorlevel 1 goto :TryJDK
\r
128 set JavaTemp=%JavaTemp%##
\r
129 set JavaTemp=%JavaTemp: ##=##%
\r
130 set JavaTemp=%JavaTemp: ##=##%
\r
131 set JavaTemp=%JavaTemp: ##=##%
\r
132 set JavaTemp=%JavaTemp: ##=##%
\r
133 set JavaTemp=%JavaTemp: ##=##%
\r
134 set JavaTemp=%JavaTemp:##=%
\r
137 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\%JavaTemp%"
\r
138 if not exist __reg1.txt goto :TryJDK
\r
139 type __reg1.txt | find "JavaHome" > __reg2.txt
\r
140 if errorlevel 1 goto :TryJDK
\r
141 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x
\r
142 if errorlevel 1 goto :TryJDK
\r
147 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit"
\r
148 if not exist __reg1.txt (
\r
151 type __reg1.txt | find "CurrentVersion" > __reg2.txt
\r
155 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x
\r
159 set JavaTemp=%JavaTemp%##
\r
160 set JavaTemp=%JavaTemp: ##=##%
\r
161 set JavaTemp=%JavaTemp: ##=##%
\r
162 set JavaTemp=%JavaTemp: ##=##%
\r
163 set JavaTemp=%JavaTemp: ##=##%
\r
164 set JavaTemp=%JavaTemp: ##=##%
\r
165 set JavaTemp=%JavaTemp:##=%
\r
168 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\%JavaTemp%"
\r
169 if not exist __reg1.txt (
\r
172 type __reg1.txt | find "JavaHome" > __reg2.txt
\r
176 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x
\r
183 rem try getting the JAVA_HOME from registry
\r
184 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion`) DO (
\r
185 set JAVA_VERSION=%%A
\r
187 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%JAVA_VERSION%" /v JavaHome`) DO (
\r
188 set JAVA_HOME=%%A %%B
\r
190 if not exist "%JAVA_HOME%" (
\r
195 rem try getting the JAVA_HOME from registry
\r
196 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit" /v CurrentVersion`) DO (
\r
197 set JAVA_VERSION=%%A
\r
199 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit\%JAVA_VERSION%" /v JavaHome`) DO (
\r
200 set JAVA_HOME=%%A %%B
\r
202 if not exist "%JAVA_HOME%" (
\r
203 call :warn Unable to retrieve JAVA_HOME from Registry
\r
207 if not exist "%JAVA_HOME%" (
\r
208 call :warn JAVA_HOME is not valid: "%JAVA_HOME%"
\r
211 set JAVA=%JAVA_HOME%\bin\java
\r
214 if not exist "%JAVA_HOME%\bin\server\jvm.dll" (
\r
215 if not exist "%JAVA_HOME%\jre\bin\server\jvm.dll" (
\r
216 echo WARNING: Running Karaf on a Java HotSpot Client VM because server-mode is not available.
\r
217 echo Install Java Developer Kit to fix this.
\r
218 echo For more details see http://java.sun.com/products/hotspot/whitepaper.html#client
\r
219 set JAVA_MODE=-client
\r
222 set DEFAULT_JAVA_OPTS=%JAVA_MODE% -Xms%JAVA_MIN_MEM% -Xmx%JAVA_MAX_MEM% -Dderby.system.home="%KARAF_DATA%\derby" -Dderby.storage.fileSyncTransactionLog=true -Dcom.sun.management.jmxremote -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass
\r
224 rem Check some easily accessible MIN/MAX params for JVM mem usage
\r
225 if not "%JAVA_PERM_MEM%" == "" (
\r
226 set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=%JAVA_PERM_MEM%
\r
228 if not "%JAVA_MAX_PERM_MEM%" == "" (
\r
229 set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM%
\r
232 if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%
\r
234 if "%EXTRA_JAVA_OPTS%" == "" goto :KARAF_EXTRA_JAVA_OPTS_END
\r
235 set JAVA_OPTS=%JAVA_OPTS% %EXTRA_JAVA_OPTS%
\r
236 :KARAF_EXTRA_JAVA_OPTS_END
\r
238 if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END
\r
239 if "%1" == "stop" goto :KARAF_DEBUG_END
\r
240 if "%1" == "client" goto :KARAF_DEBUG_END
\r
241 rem Use the defaults if JAVA_DEBUG_OPTS was not set
\r
242 if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
\r
244 set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
\r
245 call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%
\r
248 if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END
\r
249 set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd
\r
251 if exist "%KARAF_PROFILER_SCRIPT%" goto :KARAF_PROFILER_END
\r
252 call :warn Missing configuration for profiler '%KARAF_PROFILER%': %KARAF_PROFILER_SCRIPT%
\r
254 :KARAF_PROFILER_END
\r
256 rem Setup the classpath
\r
257 pushd "%KARAF_HOME%\lib"
\r
258 for %%G in (karaf*.jar) do call:APPEND_TO_CLASSPATH %%G
\r
262 : APPEND_TO_CLASSPATH
\r
264 set suffix=%filename:~-4%
\r
265 if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\%filename%
\r
270 rem Execute the JVM or the load the profiler
\r
271 if "%KARAF_PROFILER%" == "" goto :RUN
\r
272 rem Execute the profiler if it has been configured
\r
273 call :warn Loading profiler script: %KARAF_PROFILER_SCRIPT%
\r
274 call %KARAF_PROFILER_SCRIPT%
\r
277 SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true
\r
278 SET MAIN=org.apache.karaf.main.Main
\r
282 if "%1" == "stop" goto :EXECUTE_STOP
\r
283 if "%1" == "status" goto :EXECUTE_STATUS
\r
284 if "%1" == "console" goto :EXECUTE_CONSOLE
\r
285 if "%1" == "server" goto :EXECUTE_SERVER
\r
286 if "%1" == "client" goto :EXECUTE_CLIENT
\r
287 if "%1" == "clean" goto :EXECUTE_CLEAN
\r
288 if "%1" == "debug" goto :EXECUTE_DEBUG
\r
292 SET MAIN=org.apache.karaf.main.Stop
\r
297 SET MAIN=org.apache.karaf.main.Status
\r
306 SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
\r
311 SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false
\r
316 rmdir /S /Q "%KARAF_DATA%"
\r
321 if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
\r
322 set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
\r
327 SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8
\r
328 rem Execute the Java Virtual Machine
\r
330 "%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="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" -Djava.io.tmpdir="%KARAF_DATA%\tmp" -Dkaraf.data="%KARAF_DATA%" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" %KARAF_OPTS% %MAIN% %ARGS%
\r
332 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
\r
338 if not "%PAUSE%" == "" pause
\r