9c278c3b9ad366ecfe183d932ee153139b75c192
[controller.git] / karaf / opendaylight-karaf-resources / src / main / resources / bin / karaf.bat
1 @echo off\r
2 rem\r
3 rem\r
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
10 rem\r
11 rem       http://www.apache.org/licenses/LICENSE-2.0\r
12 rem\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
18 rem\r
19 \r
20 if not "%ECHO%" == "" echo %ECHO%\r
21 \r
22 setlocal\r
23 set DIRNAME=%~dp0%\r
24 set PROGNAME=%~nx0%\r
25 set ARGS=%*\r
26 \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
31 )\r
32 \r
33 rem Check console window title. Set to Karaf by default\r
34 if not "%KARAF_TITLE%" == "" (\r
35     title %KARAF_TITLE%\r
36 ) else (\r
37     title Karaf\r
38 )\r
39 \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
43 )\r
44 if "%JAVA_MAX_MEM%" == "" (\r
45     set JAVA_MAX_MEM=512M\r
46 )\r
47 \r
48 goto BEGIN\r
49 \r
50 :warn\r
51     echo %PROGNAME%: %*\r
52 goto :EOF\r
53 \r
54 :BEGIN\r
55 \r
56 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\r
57 \r
58 if not "%KARAF_HOME%" == "" (\r
59     call :warn Ignoring predefined value for KARAF_HOME\r
60 )\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
64     goto END\r
65 )\r
66 \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
70        goto END\r
71     )\r
72 )\r
73 if "%KARAF_BASE%" == "" (\r
74   set "KARAF_BASE=%KARAF_HOME%"\r
75 )\r
76 \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
80         goto END\r
81     )\r
82 )\r
83 if "%KARAF_DATA%" == "" (\r
84     set "KARAF_DATA=%KARAF_BASE%\data"\r
85 )\r
86 \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
90         goto END\r
91     )\r
92 )\r
93 if "%KARAF_ETC%" == "" (\r
94     set "KARAF_ETC=%KARAF_BASE%\etc"\r
95 )\r
96 \r
97 set LOCAL_CLASSPATH=%CLASSPATH%\r
98 set JAVA_MODE=-server\r
99 \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
102 \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
109 \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
113 \r
114 rem Support for loading native libraries\r
115 set PATH=%PATH%;%KARAF_BASE%\lib;%KARAF_HOME%\lib\r
116 \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
121 :TryJRE\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
135     del __reg1.txt\r
136     del __reg2.txt\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
143     del __reg1.txt\r
144     del __reg2.txt\r
145     goto TryJDKEnd\r
146 :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
149         goto TryRegJRE\r
150     )\r
151     type __reg1.txt | find "CurrentVersion" > __reg2.txt\r
152     if errorlevel 1 (\r
153         goto TryRegJRE\r
154     )\r
155     for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x\r
156     if errorlevel 1 (\r
157         goto TryRegJRE\r
158     )\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
166     del __reg1.txt\r
167     del __reg2.txt\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
170         goto TryRegJRE\r
171     )\r
172     type __reg1.txt | find "JavaHome" > __reg2.txt\r
173     if errorlevel 1 (\r
174         goto TryRegJRE\r
175     )\r
176     for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x\r
177     if errorlevel 1 (\r
178         goto TryRegJRE\r
179     )\r
180     del __reg1.txt\r
181     del __reg2.txt\r
182 :TryRegJRE\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
186     )\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
189     )\r
190     if not exist "%JAVA_HOME%" (\r
191        goto TryRegJDK\r
192         )\r
193         goto TryJDKEnd\r
194 :TryRegJDK\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
198     )\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
201     )\r
202     if not exist "%JAVA_HOME%" (\r
203        call :warn Unable to retrieve JAVA_HOME from Registry\r
204     )\r
205         goto TryJDKEnd\r
206 :TryJDKEnd\r
207     if not exist "%JAVA_HOME%" (\r
208         call :warn JAVA_HOME is not valid: "%JAVA_HOME%"\r
209         goto END\r
210     )\r
211     set JAVA=%JAVA_HOME%\bin\java\r
212 :Check_JAVA_END\r
213 \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
220     )\r
221 )\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
223 \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
227 )\r
228 if not "%JAVA_MAX_PERM_MEM%" == "" (\r
229     set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM%\r
230 )\r
231 \r
232 if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%\r
233 \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
237 \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
243 \r
244     set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%\r
245     call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%\r
246 :KARAF_DEBUG_END\r
247 \r
248 if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END\r
249     set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd\r
250 \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
253     goto END\r
254 :KARAF_PROFILER_END\r
255 \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
259 popd\r
260 goto CLASSPATH_END\r
261 \r
262 : APPEND_TO_CLASSPATH\r
263 set filename=%~1\r
264 set suffix=%filename:~-4%\r
265 if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\%filename%\r
266 goto :EOF\r
267 \r
268 :CLASSPATH_END\r
269 \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
275 \r
276 :RUN\r
277     SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true\r
278     SET MAIN=org.apache.karaf.main.Main\r
279     SET SHIFT=false\r
280 \r
281 :RUN_LOOP\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
289     goto :EXECUTE\r
290 \r
291 :EXECUTE_STOP\r
292     SET MAIN=org.apache.karaf.main.Stop\r
293     shift\r
294     goto :RUN_LOOP\r
295 \r
296 :EXECUTE_STATUS\r
297     SET MAIN=org.apache.karaf.main.Status\r
298     shift\r
299     goto :RUN_LOOP\r
300 \r
301 :EXECUTE_CONSOLE\r
302     shift\r
303     goto :RUN_LOOP\r
304 \r
305 :EXECUTE_SERVER\r
306     SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true\r
307     shift\r
308     goto :RUN_LOOP\r
309 \r
310 :EXECUTE_CLIENT\r
311     SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false\r
312     shift\r
313     goto :RUN_LOOP\r
314 \r
315 :EXECUTE_CLEAN\r
316     rmdir /S /Q "%KARAF_DATA%"\r
317     shift\r
318     goto :RUN_LOOP\r
319 \r
320 :EXECUTE_DEBUG\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
323     shift\r
324     goto :RUN_LOOP\r
325 \r
326 :EXECUTE\r
327     SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8\r
328     rem Execute the Java Virtual Machine\r
329     cd "%KARAF_BASE%"\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
331 \r
332 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #\r
333 \r
334 :END\r
335 \r
336 endlocal\r
337 \r
338 if not "%PAUSE%" == "" pause\r
339 \r
340 :END_NO_PAUSE\r

©2013 OpenDaylight, A Linux Foundation Collaborative Project. All Rights Reserved.
OpenDaylight is a registered trademark of The OpenDaylight Project, Inc.
Linux Foundation and OpenDaylight are registered trademarks of the Linux Foundation.
Linux is a registered trademark of Linus Torvalds.