Bug 4202: Migrate also toaster to use mdsal project
[controller.git] / karaf / opendaylight-karaf-resources / src / main / resources / bin / karaf.bat
1 @echo off
2 rem
3 rem
4 rem    Licensed to the Apache Software Foundation (ASF) under one or more
5 rem    contributor license agreements.  See the NOTICE file distributed with
6 rem    this work for additional information regarding copyright ownership.
7 rem    The ASF licenses this file to You under the Apache License, Version 2.0
8 rem    (the "License"); you may not use this file except in compliance with
9 rem    the License.  You may obtain a copy of the License at
10 rem
11 rem       http://www.apache.org/licenses/LICENSE-2.0
12 rem
13 rem    Unless required by applicable law or agreed to in writing, software
14 rem    distributed under the License is distributed on an "AS IS" BASIS,
15 rem    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 rem    See the License for the specific language governing permissions and
17 rem    limitations under the License.
18 rem
19
20 if not "%ECHO%" == "" echo %ECHO%
21
22 setlocal
23 set DIRNAME=%~dp0%
24 set PROGNAME=%~nx0%
25 set ARGS=%*
26
27 rem Sourcing environment settings for karaf similar to tomcats setenv
28 SET KARAF_SCRIPT="karaf.bat"
29 if exist "%DIRNAME%setenv.bat" (
30   call "%DIRNAME%setenv.bat"
31 )
32
33 rem Check console window title. Set to Karaf by default
34 if not "%KARAF_TITLE%" == "" (
35     title %KARAF_TITLE%
36 ) else (
37     title Karaf
38 )
39
40 rem Check/Set up some easily accessible MIN/MAX params for JVM mem usage
41 if "%JAVA_MIN_MEM%" == "" (
42     set JAVA_MIN_MEM=128M
43 )
44 if "%JAVA_MAX_MEM%" == "" (
45     set JAVA_MAX_MEM=512M
46 )
47
48 goto BEGIN
49
50 :warn
51     echo %PROGNAME%: %*
52 goto :EOF
53
54 :BEGIN
55
56 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
57
58 if not "%KARAF_HOME%" == "" (
59     call :warn Ignoring predefined value for KARAF_HOME
60 )
61 set KARAF_HOME=%DIRNAME%..
62 if not exist "%KARAF_HOME%" (
63     call :warn KARAF_HOME is not valid: "%KARAF_HOME%"
64     goto END
65 )
66
67 if not "%KARAF_BASE%" == "" (
68     if not exist "%KARAF_BASE%" (
69        call :warn KARAF_BASE is not valid: "%KARAF_BASE%"
70        goto END
71     )
72 )
73 if "%KARAF_BASE%" == "" (
74   set "KARAF_BASE=%KARAF_HOME%"
75 )
76
77 if not "%KARAF_DATA%" == "" (
78     if not exist "%KARAF_DATA%" (
79         call :warn KARAF_DATA is not valid: "%KARAF_DATA%"
80         goto END
81     )
82 )
83 if "%KARAF_DATA%" == "" (
84     set "KARAF_DATA=%KARAF_BASE%\data"
85 )
86
87 if not "%KARAF_ETC%" == "" (
88     if not exist "%KARAF_ETC%" (
89         call :warn KARAF_ETC is not valid: "%KARAF_ETC%"
90         goto END
91     )
92 )
93 if "%KARAF_ETC%" == "" (
94     set "KARAF_ETC=%KARAF_BASE%\etc"
95 )
96
97 set LOCAL_CLASSPATH=%CLASSPATH%
98 set JAVA_MODE=-server
99
100 set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
101 set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
102
103 if "%LOCAL_CLASSPATH%" == "" goto :KARAF_CLASSPATH_EMPTY
104     set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf
105     goto :KARAF_CLASSPATH_END
106 :KARAF_CLASSPATH_EMPTY
107     set CLASSPATH=%KARAF_BASE%\conf
108 :KARAF_CLASSPATH_END
109
110 rem Setup Karaf Home
111 if exist "%KARAF_HOME%\conf\karaf-rc.cmd" call %KARAF_HOME%\conf\karaf-rc.cmd
112 if exist "%HOME%\karaf-rc.cmd" call %HOME%\karaf-rc.cmd
113
114 rem Support for loading native libraries
115 set PATH=%PATH%;%KARAF_BASE%\lib;%KARAF_HOME%\lib
116
117 rem Setup the Java Virtual Machine
118 if not "%JAVA%" == "" goto :Check_JAVA_END
119     if not "%JAVA_HOME%" == "" goto :TryJDKEnd
120         call :warn JAVA_HOME not set; results may vary
121 :TryJRE
122     start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment"
123     if not exist __reg1.txt goto :TryJDK
124     type __reg1.txt | find "CurrentVersion" > __reg2.txt
125     if errorlevel 1 goto :TryJDK
126     for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x
127     if errorlevel 1 goto :TryJDK
128     set JavaTemp=%JavaTemp%##
129     set JavaTemp=%JavaTemp:                ##=##%
130     set JavaTemp=%JavaTemp:        ##=##%
131     set JavaTemp=%JavaTemp:    ##=##%
132     set JavaTemp=%JavaTemp:  ##=##%
133     set JavaTemp=%JavaTemp: ##=##%
134     set JavaTemp=%JavaTemp:##=%
135     del __reg1.txt
136     del __reg2.txt
137     start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\%JavaTemp%"
138     if not exist __reg1.txt goto :TryJDK
139     type __reg1.txt | find "JavaHome" > __reg2.txt
140     if errorlevel 1 goto :TryJDK
141     for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x
142     if errorlevel 1 goto :TryJDK
143     del __reg1.txt
144     del __reg2.txt
145     goto TryJDKEnd
146 :TryJDK
147     start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit"
148     if not exist __reg1.txt (
149         goto TryRegJRE
150     )
151     type __reg1.txt | find "CurrentVersion" > __reg2.txt
152     if errorlevel 1 (
153         goto TryRegJRE
154     )
155     for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x
156     if errorlevel 1 (
157         goto TryRegJRE
158     )
159     set JavaTemp=%JavaTemp%##
160     set JavaTemp=%JavaTemp:                ##=##%
161     set JavaTemp=%JavaTemp:        ##=##%
162     set JavaTemp=%JavaTemp:    ##=##%
163     set JavaTemp=%JavaTemp:  ##=##%
164     set JavaTemp=%JavaTemp: ##=##%
165     set JavaTemp=%JavaTemp:##=%
166     del __reg1.txt
167     del __reg2.txt
168     start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\%JavaTemp%"
169     if not exist __reg1.txt (
170         goto TryRegJRE
171     )
172     type __reg1.txt | find "JavaHome" > __reg2.txt
173     if errorlevel 1 (
174         goto TryRegJRE
175     )
176     for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x
177     if errorlevel 1 (
178         goto TryRegJRE
179     )
180     del __reg1.txt
181     del __reg2.txt
182 :TryRegJRE
183     rem try getting the JAVA_HOME from registry
184     FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion`) DO (
185        set JAVA_VERSION=%%A
186     )
187     FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%JAVA_VERSION%" /v JavaHome`) DO (
188        set JAVA_HOME=%%A %%B
189     )
190     if not exist "%JAVA_HOME%" (
191        goto TryRegJDK
192         )
193         goto TryJDKEnd
194 :TryRegJDK
195     rem try getting the JAVA_HOME from registry
196     FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit" /v CurrentVersion`) DO (
197        set JAVA_VERSION=%%A
198     )
199     FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit\%JAVA_VERSION%" /v JavaHome`) DO (
200        set JAVA_HOME=%%A %%B
201     )
202     if not exist "%JAVA_HOME%" (
203        call :warn Unable to retrieve JAVA_HOME from Registry
204     )
205         goto TryJDKEnd
206 :TryJDKEnd
207     if not exist "%JAVA_HOME%" (
208         call :warn JAVA_HOME is not valid: "%JAVA_HOME%"
209         goto END
210     )
211     set JAVA=%JAVA_HOME%\bin\java
212 :Check_JAVA_END
213
214 if not exist "%JAVA_HOME%\bin\server\jvm.dll" (
215     if not exist "%JAVA_HOME%\jre\bin\server\jvm.dll" (
216         echo WARNING: Running Karaf on a Java HotSpot Client VM because server-mode is not available.
217         echo Install Java Developer Kit to fix this.
218         echo For more details see http://java.sun.com/products/hotspot/whitepaper.html#client
219         set JAVA_MODE=-client
220     )
221 )
222
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
224
225 if not "%ODL_JAVA_SECURITY_PROPERTIES%" == "" (
226     set DEFAULT_JAVA_OPTS=-Djava.security.properties="%ODL_JAVA_SECURITY_PROPERTIES%" %DEFAULT_JAVA_OPTS%
227 ) else (
228     set DEFAULT_JAVA_OPTS=-Djava.security.properties="%KARAF_ETC%\odl.java.security" %DEFAULT_JAVA_OPTS%
229 )
230
231 rem Check some easily accessible MIN/MAX params for JVM mem usage
232 if not "%JAVA_PERM_MEM%" == "" (
233     set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=%JAVA_PERM_MEM%
234 )
235 if not "%JAVA_MAX_PERM_MEM%" == "" (
236     set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM%
237 )
238
239 if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%
240
241 if "%EXTRA_JAVA_OPTS%" == "" goto :KARAF_EXTRA_JAVA_OPTS_END
242     set JAVA_OPTS=%JAVA_OPTS% %EXTRA_JAVA_OPTS%
243 :KARAF_EXTRA_JAVA_OPTS_END
244
245 if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END
246     if "%1" == "stop" goto :KARAF_DEBUG_END
247     if "%1" == "client" goto :KARAF_DEBUG_END
248     rem Use the defaults if JAVA_DEBUG_OPTS was not set
249     if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
250
251     set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
252     call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%
253 :KARAF_DEBUG_END
254
255 if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END
256     set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd
257
258     if exist "%KARAF_PROFILER_SCRIPT%" goto :KARAF_PROFILER_END
259     call :warn Missing configuration for profiler '%KARAF_PROFILER%': %KARAF_PROFILER_SCRIPT%
260     goto END
261 :KARAF_PROFILER_END
262
263 rem Setup the classpath
264 pushd "%KARAF_HOME%\lib"
265 for %%G in (karaf*.jar) do call:APPEND_TO_CLASSPATH %%G
266 popd
267 goto CLASSPATH_END
268
269 : APPEND_TO_CLASSPATH
270 set filename=%~1
271 set suffix=%filename:~-4%
272 if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\%filename%
273 goto :EOF
274
275 :CLASSPATH_END
276
277 rem Execute the JVM or the load the profiler
278 if "%KARAF_PROFILER%" == "" goto :RUN
279     rem Execute the profiler if it has been configured
280     call :warn Loading profiler script: %KARAF_PROFILER_SCRIPT%
281     call %KARAF_PROFILER_SCRIPT%
282
283 :RUN
284     SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true
285     SET MAIN=org.apache.karaf.main.Main
286     SET SHIFT=false
287
288 :RUN_LOOP
289     if "%1" == "stop" goto :EXECUTE_STOP
290     if "%1" == "status" goto :EXECUTE_STATUS
291     if "%1" == "console" goto :EXECUTE_CONSOLE
292     if "%1" == "server" goto :EXECUTE_SERVER
293     if "%1" == "client" goto :EXECUTE_CLIENT
294     if "%1" == "clean" goto :EXECUTE_CLEAN
295     if "%1" == "debug" goto :EXECUTE_DEBUG
296     goto :EXECUTE
297
298 :EXECUTE_STOP
299     SET MAIN=org.apache.karaf.main.Stop
300     shift
301     goto :RUN_LOOP
302
303 :EXECUTE_STATUS
304     SET MAIN=org.apache.karaf.main.Status
305     shift
306     goto :RUN_LOOP
307
308 :EXECUTE_CONSOLE
309     shift
310     goto :RUN_LOOP
311
312 :EXECUTE_SERVER
313     SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
314     shift
315     goto :RUN_LOOP
316
317 :EXECUTE_CLIENT
318     SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false
319     shift
320     goto :RUN_LOOP
321
322 :EXECUTE_CLEAN
323     rmdir /S /Q "%KARAF_DATA%"
324     shift
325     goto :RUN_LOOP
326
327 :EXECUTE_DEBUG
328     if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS%
329     set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS%
330     shift
331     goto :RUN_LOOP
332
333 :EXECUTE
334     SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8
335     rem Execute the Java Virtual Machine
336     cd "%KARAF_BASE%"
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%
338
339 rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
340
341 :END
342
343 endlocal
344
345 if not "%PAUSE%" == "" pause
346
347 :END_NO_PAUSE