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
223 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
225 if not "%ODL_JAVA_SECURITY_PROPERTIES%" == "" (
\r
226 set DEFAULT_JAVA_OPTS=-Djava.security.properties="%ODL_JAVA_SECURITY_PROPERTIES%" %DEFAULT_JAVA_OPTS%
\r
228 set DEFAULT_JAVA_OPTS=-Djava.security.properties="%KARAF_ETC%\odl.java.security" %DEFAULT_JAVA_OPTS%
\r
231 rem Check some easily accessible MIN/MAX params for JVM mem usage
\r
232 if not "%JAVA_PERM_MEM%" == "" (
\r
233 set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=%JAVA_PERM_MEM%
\r
235 if not "%JAVA_MAX_PERM_MEM%" == "" (
\r
236 set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM%
\r
239 if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%
\r
241 if "%EXTRA_JAVA_OPTS%" == "" goto :KARAF_EXTRA_JAVA_OPTS_END
\r
242 set JAVA_OPTS=%JAVA_OPTS% %EXTRA_JAVA_OPTS%
\r
243 :KARAF_EXTRA_JAVA_OPTS_END
\r
245 if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END
\r
246 if "%1" == "stop" goto :KARAF_DEBUG_END
\r
247 if "%1" == "client" goto :KARAF_DEBUG_END
\r
248 rem Use the defaults if JAVA_DEBUG_OPTS was not set
\r
249 if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
\r
251 set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
\r
252 call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%
\r
255 if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END
\r
256 set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd
\r
258 if exist "%KARAF_PROFILER_SCRIPT%" goto :KARAF_PROFILER_END
\r
259 call :warn Missing configuration for profiler '%KARAF_PROFILER%': %KARAF_PROFILER_SCRIPT%
\r
261 :KARAF_PROFILER_END
\r
263 rem Setup the classpath
\r
264 pushd "%KARAF_HOME%\lib"
\r
265 for %%G in (karaf*.jar) do call:APPEND_TO_CLASSPATH %%G
\r
269 : APPEND_TO_CLASSPATH
\r
271 set suffix=%filename:~-4%
\r
272 if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\%filename%
\r
277 rem Execute the JVM or the load the profiler
\r
278 if "%KARAF_PROFILER%" == "" goto :RUN
\r
279 rem Execute the profiler if it has been configured
\r
280 call :warn Loading profiler script: %KARAF_PROFILER_SCRIPT%
\r
281 call %KARAF_PROFILER_SCRIPT%
\r
284 SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true
\r
285 SET MAIN=org.apache.karaf.main.Main
\r
289 if "%1" == "stop" goto :EXECUTE_STOP
\r
290 if "%1" == "status" goto :EXECUTE_STATUS
\r
291 if "%1" == "console" goto :EXECUTE_CONSOLE
\r
292 if "%1" == "server" goto :EXECUTE_SERVER
\r
293 if "%1" == "client" goto :EXECUTE_CLIENT
\r
294 if "%1" == "clean" goto :EXECUTE_CLEAN
\r
295 if "%1" == "debug" goto :EXECUTE_DEBUG
\r
299 SET MAIN=org.apache.karaf.main.Stop
\r
304 SET MAIN=org.apache.karaf.main.Status
\r
313 SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
\r
318 SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false
\r
323 rmdir /S /Q "%KARAF_DATA%"
\r
328 if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
\r
329 set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
\r
334 SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8
\r
335 rem Execute the Java Virtual Machine
\r
337 "%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
339 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
\r
345 if not "%PAUSE%" == "" pause
\r