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
99 if not exist "%JAVA_HOME%\bin\server\jvm.dll" (
\r
100 if not exist "%JAVA_HOME%\jre\bin\server\jvm.dll" (
\r
101 echo WARNING: Running karaf on a Java HotSpot Client VM because server-mode is not available.
\r
102 echo Install Java Developer Kit to fix this.
\r
103 echo For more details see http://java.sun.com/products/hotspot/whitepaper.html#client
\r
104 set JAVA_MODE=-client
\r
107 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
109 rem Check some easily accessible MIN/MAX params for JVM mem usage
\r
110 if not "%JAVA_PERM_MEM%" == "" (
\r
111 set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=%JAVA_PERM_MEM%
\r
113 if not "%JAVA_MAX_PERM_MEM%" == "" (
\r
114 set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM%
\r
117 set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
\r
118 set DEFAULT_JAVA_DEBUG_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
\r
120 if "%LOCAL_CLASSPATH%" == "" goto :KARAF_CLASSPATH_EMPTY
\r
121 set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
\r
122 goto :KARAF_CLASSPATH_END
\r
123 :KARAF_CLASSPATH_EMPTY
\r
124 set CLASSPATH=%KARAF_BASE%\conf
\r
125 :KARAF_CLASSPATH_END
\r
127 rem Setup Karaf Home
\r
128 if exist "%KARAF_HOME%\conf\karaf-rc.cmd" call %KARAF_HOME%\conf\karaf-rc.cmd
\r
129 if exist "%HOME%\karaf-rc.cmd" call %HOME%\karaf-rc.cmd
\r
131 rem Support for loading native libraries
\r
132 set PATH=%PATH%;%KARAF_BASE%\lib;%KARAF_HOME%\lib
\r
134 rem Setup the Java Virtual Machine
\r
135 if not "%JAVA%" == "" goto :Check_JAVA_END
\r
136 if not "%JAVA_HOME%" == "" goto :TryJDKEnd
\r
137 call :warn JAVA_HOME not set; results may vary
\r
139 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment"
\r
140 if not exist __reg1.txt goto :TryJDK
\r
141 type __reg1.txt | find "CurrentVersion" > __reg2.txt
\r
142 if errorlevel 1 goto :TryJDK
\r
143 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x
\r
144 if errorlevel 1 goto :TryJDK
\r
145 set JavaTemp=%JavaTemp%##
\r
146 set JavaTemp=%JavaTemp: ##=##%
\r
147 set JavaTemp=%JavaTemp: ##=##%
\r
148 set JavaTemp=%JavaTemp: ##=##%
\r
149 set JavaTemp=%JavaTemp: ##=##%
\r
150 set JavaTemp=%JavaTemp: ##=##%
\r
151 set JavaTemp=%JavaTemp:##=%
\r
154 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\%JavaTemp%"
\r
155 if not exist __reg1.txt goto :TryJDK
\r
156 type __reg1.txt | find "JavaHome" > __reg2.txt
\r
157 if errorlevel 1 goto :TryJDK
\r
158 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x
\r
159 if errorlevel 1 goto :TryJDK
\r
164 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit"
\r
165 if not exist __reg1.txt (
\r
168 type __reg1.txt | find "CurrentVersion" > __reg2.txt
\r
172 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x
\r
176 set JavaTemp=%JavaTemp%##
\r
177 set JavaTemp=%JavaTemp: ##=##%
\r
178 set JavaTemp=%JavaTemp: ##=##%
\r
179 set JavaTemp=%JavaTemp: ##=##%
\r
180 set JavaTemp=%JavaTemp: ##=##%
\r
181 set JavaTemp=%JavaTemp: ##=##%
\r
182 set JavaTemp=%JavaTemp:##=%
\r
185 start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\%JavaTemp%"
\r
186 if not exist __reg1.txt (
\r
189 type __reg1.txt | find "JavaHome" > __reg2.txt
\r
193 for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x
\r
200 rem try getting the JAVA_HOME from registry
\r
201 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion`) DO (
\r
202 set JAVA_VERSION=%%A
\r
204 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%JAVA_VERSION%" /v JavaHome`) DO (
\r
205 set JAVA_HOME=%%A %%B
\r
207 if not exist "%JAVA_HOME%" (
\r
212 rem try getting the JAVA_HOME from registry
\r
213 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit" /v CurrentVersion`) DO (
\r
214 set JAVA_VERSION=%%A
\r
216 FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit\%JAVA_VERSION%" /v JavaHome`) DO (
\r
217 set JAVA_HOME=%%A %%B
\r
219 if not exist "%JAVA_HOME%" (
\r
220 call :warn Unable to retrieve JAVA_HOME from Registry
\r
224 if not exist "%JAVA_HOME%" (
\r
225 call :warn JAVA_HOME is not valid: "%JAVA_HOME%"
\r
228 set JAVA=%JAVA_HOME%\bin\java
\r
231 if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%
\r
233 if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END
\r
234 if "%1" == "stop" goto :KARAF_DEBUG_END
\r
235 if "%1" == "client" goto :KARAF_DEBUG_END
\r
236 rem Use the defaults if JAVA_DEBUG_OPTS was not set
\r
237 if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
\r
239 set "JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%"
\r
240 call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%
\r
243 if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END
\r
244 set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd
\r
246 if exist "%KARAF_PROFILER_SCRIPT%" goto :KARAF_PROFILER_END
\r
247 call :warn Missing configuration for profiler '%KARAF_PROFILER%': %KARAF_PROFILER_SCRIPT%
\r
249 :KARAF_PROFILER_END
\r
251 rem Setup the classpath
\r
252 pushd "%KARAF_HOME%\lib"
\r
253 for %%G in (karaf*.jar) do call:APPEND_TO_CLASSPATH %%G
\r
257 : APPEND_TO_CLASSPATH
\r
259 set suffix=%filename:~-4%
\r
260 if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\%filename%
\r
265 rem Execute the JVM or the load the profiler
\r
266 if "%KARAF_PROFILER%" == "" goto :RUN
\r
267 rem Execute the profiler if it has been configured
\r
268 call :warn Loading profiler script: %KARAF_PROFILER_SCRIPT%
\r
269 call %KARAF_PROFILER_SCRIPT%
\r
272 SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true
\r
273 SET MAIN=org.apache.karaf.main.Main
\r
277 if "%1" == "stop" goto :EXECUTE_STOP
\r
278 if "%1" == "status" goto :EXECUTE_STATUS
\r
279 if "%1" == "console" goto :EXECUTE_CONSOLE
\r
280 if "%1" == "server" goto :EXECUTE_SERVER
\r
281 if "%1" == "client" goto :EXECUTE_CLIENT
\r
282 if "%1" == "clean" goto :EXECUTE_CLEAN
\r
283 if "%1" == "debug" goto :EXECUTE_DEBUG
\r
287 SET MAIN=org.apache.karaf.main.Stop
\r
292 SET MAIN=org.apache.karaf.main.Status
\r
301 SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
\r
306 SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false
\r
311 rmdir /S /Q "%KARAF_DATA%"
\r
316 if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
\r
317 set "JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%"
\r
322 SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8
\r
323 rem Execute the Java Virtual Machine
\r
325 "%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
327 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
\r
333 if not "%PAUSE%" == "" pause
\r