@echo off | |
rem | |
rem | |
rem Licensed to the Apache Software Foundation (ASF) under one or more | |
rem contributor license agreements. See the NOTICE file distributed with | |
rem this work for additional information regarding copyright ownership. | |
rem The ASF licenses this file to You under the Apache License, Version 2.0 | |
rem (the "License"); you may not use this file except in compliance with | |
rem the License. You may obtain a copy of the License at | |
rem | |
rem http://www.apache.org/licenses/LICENSE-2.0 | |
rem | |
rem Unless required by applicable law or agreed to in writing, software | |
rem distributed under the License is distributed on an "AS IS" BASIS, | |
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
rem See the License for the specific language governing permissions and | |
rem limitations under the License. | |
rem | |
if not "%ECHO%" == "" echo %ECHO% | |
setlocal | |
set DIRNAME=%~dp0% | |
set PROGNAME=%~nx0% | |
set TERM=windows | |
set ARGS=%* | |
rem Sourcing environment settings for karaf similar to tomcats setenv | |
SET KARAF_SCRIPT="client.bat" | |
if exist "%DIRNAME%setenv.bat" ( | |
call "%DIRNAME%setenv.bat" | |
) | |
rem Check console window title. Set to Karaf by default | |
if not "%KARAF_TITLE%" == "" ( | |
title %KARAF_TITLE% | |
) else ( | |
title Karaf | |
) | |
rem Check/Set up some easily accessible MIN/MAX params for JVM mem usage | |
if "%JAVA_MIN_MEM%" == "" ( | |
set JAVA_MIN_MEM=128M | |
) | |
if "%JAVA_MAX_MEM%" == "" ( | |
set JAVA_MAX_MEM=512M | |
) | |
goto BEGIN | |
:warn | |
echo %PROGNAME%: %* | |
goto :EOF | |
:BEGIN | |
rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # | |
if not "%KARAF_HOME%" == "" ( | |
call :warn Ignoring predefined value for KARAF_HOME | |
) | |
set KARAF_HOME=%DIRNAME%.. | |
if not exist "%KARAF_HOME%" ( | |
call :warn KARAF_HOME is not valid: "%KARAF_HOME%" | |
goto END | |
) | |
if not "%KARAF_BASE%" == "" ( | |
if not exist "%KARAF_BASE%" ( | |
call :warn KARAF_BASE is not valid: "%KARAF_BASE%" | |
goto END | |
) | |
) | |
if "%KARAF_BASE%" == "" ( | |
set "KARAF_BASE=%KARAF_HOME%" | |
) | |
if not "%KARAF_DATA%" == "" ( | |
if not exist "%KARAF_DATA%" ( | |
call :warn KARAF_DATA is not valid: "%KARAF_DATA%" | |
goto END | |
) | |
) | |
if "%KARAF_DATA%" == "" ( | |
set "KARAF_DATA=%KARAF_BASE%\data" | |
) | |
if not "%KARAF_ETC%" == "" ( | |
if not exist "%KARAF_ETC%" ( | |
call :warn KARAF_ETC is not valid: "%KARAF_ETC%" | |
goto END | |
) | |
) | |
if "%KARAF_ETC%" == "" ( | |
set "KARAF_ETC=%KARAF_BASE%\etc" | |
) | |
if not "%KARAF_LOG%" == "" ( | |
if not exist "%KARAF_LOG%" ( | |
call :warn KARAF_LOG is not valid: "%KARAF_LOG%" | |
goto END | |
) | |
) | |
if "%KARAF_LOG%" == "" ( | |
set "KARAF_LOG=%KARAF_DATA%\log" | |
) | |
rem Support for loading native libraries | |
set PATH=%PATH%;%KARAF_BASE%\lib;%KARAF_HOME%\lib | |
rem Setup the Java Virtual Machine | |
if not "%JAVA%" == "" goto :Check_JAVA_END | |
if not "%JAVA_HOME%" == "" goto :TryJDKEnd | |
call :warn JAVA_HOME not set; results may vary | |
:TryJRE | |
start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment" | |
if not exist __reg1.txt goto :TryJDK | |
type __reg1.txt | find "CurrentVersion" > __reg2.txt | |
if errorlevel 1 goto :TryJDK | |
for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x | |
if errorlevel 1 goto :TryJDK | |
set JavaTemp=%JavaTemp%## | |
set JavaTemp=%JavaTemp: ##=##% | |
set JavaTemp=%JavaTemp: ##=##% | |
set JavaTemp=%JavaTemp: ##=##% | |
set JavaTemp=%JavaTemp: ##=##% | |
set JavaTemp=%JavaTemp: ##=##% | |
set JavaTemp=%JavaTemp:##=% | |
del __reg1.txt | |
del __reg2.txt | |
start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\%JavaTemp%" | |
if not exist __reg1.txt goto :TryJDK | |
type __reg1.txt | find "JavaHome" > __reg2.txt | |
if errorlevel 1 goto :TryJDK | |
for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x | |
if errorlevel 1 goto :TryJDK | |
del __reg1.txt | |
del __reg2.txt | |
goto TryJDKEnd | |
:TryJDK | |
start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit" | |
if not exist __reg1.txt ( | |
goto TryRegJRE | |
) | |
type __reg1.txt | find "CurrentVersion" > __reg2.txt | |
if errorlevel 1 ( | |
goto TryRegJRE | |
) | |
for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JavaTemp=%%~x | |
if errorlevel 1 ( | |
goto TryRegJRE | |
) | |
set JavaTemp=%JavaTemp%## | |
set JavaTemp=%JavaTemp: ##=##% | |
set JavaTemp=%JavaTemp: ##=##% | |
set JavaTemp=%JavaTemp: ##=##% | |
set JavaTemp=%JavaTemp: ##=##% | |
set JavaTemp=%JavaTemp: ##=##% | |
set JavaTemp=%JavaTemp:##=% | |
del __reg1.txt | |
del __reg2.txt | |
start /w regedit /e __reg1.txt "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\%JavaTemp%" | |
if not exist __reg1.txt ( | |
goto TryRegJRE | |
) | |
type __reg1.txt | find "JavaHome" > __reg2.txt | |
if errorlevel 1 ( | |
goto TryRegJRE | |
) | |
for /f "tokens=2 delims==" %%x in (__reg2.txt) do set JAVA_HOME=%%~x | |
if errorlevel 1 ( | |
goto TryRegJRE | |
) | |
del __reg1.txt | |
del __reg2.txt | |
:TryRegJRE | |
rem try getting the JAVA_HOME from registry | |
FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment" /v CurrentVersion`) DO ( | |
set JAVA_VERSION=%%A | |
) | |
FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Runtime Environment\%JAVA_VERSION%" /v JavaHome`) DO ( | |
set JAVA_HOME=%%A %%B | |
) | |
if not exist "%JAVA_HOME%" ( | |
goto TryRegJDK | |
) | |
goto TryJDKEnd | |
:TryRegJDK | |
rem try getting the JAVA_HOME from registry | |
FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit" /v CurrentVersion`) DO ( | |
set JAVA_VERSION=%%A | |
) | |
FOR /F "usebackq tokens=3*" %%A IN (`REG QUERY "HKLM\Software\JavaSoft\Java Development Kit\%JAVA_VERSION%" /v JavaHome`) DO ( | |
set JAVA_HOME=%%A %%B | |
) | |
if not exist "%JAVA_HOME%" ( | |
call :warn Unable to retrieve JAVA_HOME from Registry | |
) | |
goto TryJDKEnd | |
:TryJDKEnd | |
if not exist "%JAVA_HOME%" ( | |
call :warn JAVA_HOME is not valid: "%JAVA_HOME%" | |
goto END | |
) | |
set JAVA=%JAVA_HOME%\bin\java | |
:Check_JAVA_END | |
if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS% | |
if "%EXTRA_JAVA_OPTS%" == "" goto :KARAF_EXTRA_JAVA_OPTS_END | |
set JAVA_OPTS=%JAVA_OPTS% %EXTRA_JAVA_OPTS% | |
:KARAF_EXTRA_JAVA_OPTS_END | |
set CLASSPATH=%KARAF_HOME%\system\org\apache\karaf\org.apache.karaf.client\@@project.version@@\org.apache.karaf.client-@@project.version@@.jar | |
set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\system\org\apache\sshd\sshd-core\@@sshd.version@@\sshd-core-@@sshd.version@@.jar | |
set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\system\org\jline\jline\@@jline.version@@\jline-@@jline.version@@.jar | |
set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\system\org\fusesource\jansi\jansi\@@jansi.version@@\jansi-@@jansi.version@@.jar | |
set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\system\org\slf4j\slf4j-api\@@slf4j.version@@\slf4j-api-@@slf4j.version@@.jar | |
:EXECUTE | |
if "%SHIFT%" == "true" SET ARGS=%2 %3 %4 %5 %6 %7 %8 %9 %10 %11 | |
if not "%SHIFT%" == "true" SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8 %9 %10 %11 | |
rem Execute the Java Virtual Machine | |
"%JAVA%" %JAVA_OPTS% %OPTS% -classpath "%CLASSPATH%" -Dkaraf.instances="%KARAF_HOME%\instances" -Dkaraf.home="%KARAF_HOME%" -Dkaraf.base="%KARAF_BASE%" -Dkaraf.etc="%KARAF_ETC%" -Dkaraf.log="%KARAF_LOG%" -Djava.io.tmpdir="%KARAF_DATA%\tmp" -Djava.util.logging.config.file="%KARAF_BASE%\etc\java.util.logging.properties" %KARAF_OPTS% org.apache.karaf.client.Main %ARGS% | |
rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # | |
:END | |
endlocal | |