Repository: karaf Updated Branches: refs/heads/master a32a848b4 -> d50b32a6f
Moved karaf scripts away from filtered-resources to avoid filtering. JAVA_HOME otherwise gets replaced. Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/d50b32a6 Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/d50b32a6 Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/d50b32a6 Branch: refs/heads/master Commit: d50b32a6f0af4cee6803ad2dce724548cba3a4b1 Parents: a32a848 Author: Lars Neumann <[email protected]> Authored: Wed Jun 3 14:36:53 2015 +0200 Committer: Lars Neumann <[email protected]> Committed: Wed Jun 3 14:36:53 2015 +0200 ---------------------------------------------------------------------- .../main/filtered-resources/resources/bin/karaf | 426 ------------------- .../filtered-resources/resources/bin/karaf.bat | 341 --------------- .../base/src/main/resources/resources/bin/karaf | 426 +++++++++++++++++++ .../src/main/resources/resources/bin/karaf.bat | 341 +++++++++++++++ 4 files changed, 767 insertions(+), 767 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/d50b32a6/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf ---------------------------------------------------------------------- diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf deleted file mode 100755 index 3318101..0000000 --- a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf +++ /dev/null @@ -1,426 +0,0 @@ -#!/bin/sh -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -DIRNAME=`dirname "$0"` -PROGNAME=`basename "$0"` - -# -# Sourcing environment settings for karaf similar to tomcats setenv -# -KARAF_SCRIPT="karaf" -export KARAF_SCRIPT -if [ -f "$DIRNAME/setenv" ]; then - . "$DIRNAME/setenv" -fi - -# -# Set up some easily accessible MIN/MAX params for JVM mem usage -# -if [ "x$JAVA_MIN_MEM" = "x" ]; then - JAVA_MIN_MEM=128M - export JAVA_MIN_MEM -fi -if [ "x$JAVA_MAX_MEM" = "x" ]; then - JAVA_MAX_MEM=512M - export JAVA_MAX_MEM -fi - -# -# Check the mode that initiated the script -# -if [ "x$1" != "x" ]; then - MODE=$1 -fi - -warn() { - echo "${PROGNAME}: $*" -} - -die() { - warn "$*" - exit 1 -} - -detectOS() { - # OS specific support (must be 'true' or 'false'). - cygwin=false; - darwin=false; - aix=false; - os400=false; - case "`uname`" in - CYGWIN*) - cygwin=true - ;; - Darwin*) - darwin=true - ;; - AIX*) - aix=true - ;; - OS400*) - os400=true - ;; - esac - # For AIX, set an environment variable - if $aix; then - export LDR_CNTRL=MAXDATA=0xB0000000@DSA - echo $LDR_CNTRL - fi -} - -unlimitFD() { - # Use the maximum available, or set MAX_FD != -1 to use that - if [ "x$MAX_FD" = "x" ]; then - MAX_FD="maximum" - fi - - # Increase the maximum file descriptors if we can - if [ "$os400" = "false" ] && [ "$cygwin" = "false" ]; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ "$MAX_FD_LIMIT" != 'unlimited' ]; then - if [ $? -eq 0 ]; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then - # use the system max - MAX_FD="$MAX_FD_LIMIT" - fi - - ulimit -n $MAX_FD > /dev/null - # echo "ulimit -n" `ulimit -n` - if [ $? -ne 0 ]; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query system maximum file descriptor limit: $MAX_FD_LIMIT" - fi - fi - fi -} - -locateHome() { - if [ "x$KARAF_HOME" = "x" ]; then - # In POSIX shells, CDPATH may cause cd to write to stdout - (unset CDPATH) >/dev/null 2>&1 && unset CDPATH - # KARAF_HOME is not provided, fall back to default - KARAF_HOME=`cd "$DIRNAME/.."; pwd` - fi - - if [ ! -d "$KARAF_HOME" ]; then - die "KARAF_HOME is not valid: $KARAF_HOME" - fi -} - -locateBase() { - if [ "x$KARAF_BASE" != "x" ]; then - if [ ! -d "$KARAF_BASE" ]; then - die "KARAF_BASE is not valid: $KARAF_BASE" - fi - else - KARAF_BASE=$KARAF_HOME - fi -} - -locateData() { - if [ "x$KARAF_DATA" != "x" ]; then - if [ ! -d "$KARAF_DATA" ]; then - die "KARAF_DATA is not valid: $KARAF_DATA" - fi - else - KARAF_DATA=$KARAF_BASE/data - fi -} - -locateEtc() { - if [ "x$KARAF_ETC" != "x" ]; then - if [ ! -d "$KARAF_ETC" ]; then - die "KARAF_ETC is not valid: $KARAF_ETC" - fi - else - KARAF_ETC=$KARAF_BASE/etc - fi -} - -setupNativePath() { - # Support for loading native libraries - LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$KARAF_BASE/lib:$KARAF_HOME/lib" - - # For Cygwin, set PATH from LD_LIBRARY_PATH - if $cygwin; then - LD_LIBRARY_PATH=`cygpath --path --windows "$LD_LIBRARY_PATH"` - PATH="$PATH;$LD_LIBRARY_PATH" - export PATH - fi - export LD_LIBRARY_PATH -} - -pathCanonical() { - local dst="${1}" - while [ -h "${dst}" ] ; do - ls=`ls -ld "${dst}"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - dst="$link" - else - dst="`dirname "${dst}"`/$link" - fi - done - local bas=`basename "${dst}"` - local dir=`dirname "${dst}"` - if [ "$bas" != "$dir" ]; then - dst="`pathCanonical "$dir"`/$bas" - fi - echo "${dst}" | sed -e 's#//#/#g' -e 's#/./#/#g' -e 's#/[^/]*/../#/#g' -} - -locateJava() { - # Setup the Java Virtual Machine - if $cygwin ; then - [ -n "$JAVA" ] && JAVA=`cygpath --unix "$JAVA"` - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - fi - - if [ "x$JAVA_HOME" = "x" ] && [ "$darwin" = "true" ]; then - JAVA_HOME="$(/usr/libexec/java_home -v 1.7)" - fi - if [ "x$JAVA" = "x" ] && [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi - if [ "x$JAVA" = "x" ]; then - if [ "x$JAVA_HOME" != "x" ]; then - if [ ! -d "$JAVA_HOME" ]; then - die "JAVA_HOME is not valid: $JAVA_HOME" - fi - JAVA="$JAVA_HOME/bin/java" - else - warn "JAVA_HOME not set; results may vary" - JAVA=`type java` - JAVA=`expr "$JAVA" : '.* \(/.*\)$'` - if [ "x$JAVA" = "x" ]; then - die "java command not found" - fi - fi - fi - if [ "x$JAVA_HOME" = "x" ]; then - JAVA_HOME="$(dirname $(dirname $(pathCanonical "$JAVA")))" - fi -} - -detectJVM() { - #echo "`$JAVA -version`" - # This service should call `java -version`, - # read stdout, and look for hints - if $JAVA -version 2>&1 | grep "^IBM" ; then - JVM_VENDOR="IBM" - # on OS/400, java -version does not contain IBM explicitly - elif $os400; then - JVM_VENDOR="IBM" - else - JVM_VENDOR="SUN" - fi - # echo "JVM vendor is $JVM_VENDOR" -} - -checkJvmVersion() { - # echo "`$JAVA -version`" - VERSION=`$JAVA -version 2>&1 | egrep '"([0-9].[0-9]\..*[0-9]).*"' | awk '{print substr($3,2,length($3)-2)}' | awk '{print substr($1, 3, 3)}' | sed -e 's;\.;;g'` - # echo $VERSION - if [ "$VERSION" -lt "60" ]; then - echo "JVM must be greater than 1.6" - exit 1; - fi -} - -setupDebugOptions() { - if [ "x$JAVA_OPTS" = "x" ]; then - JAVA_OPTS="$DEFAULT_JAVA_OPTS" - fi - export JAVA_OPTS - - if [ "x$EXTRA_JAVA_OPTS" != "x" ]; then - JAVA_OPTS="$JAVA_OPTS $EXTRA_JAVA_OPTS" - fi - - # Set Debug options if enabled - if [ "x$KARAF_DEBUG" != "x" ]; then - # Ignore DEBUG in case of stop or client mode - if [ "x$MODE" = "xstop" ]; then - return - fi - if [ "x$MODE" = "xclient" ]; then - return - fi - # Use the defaults if JAVA_DEBUG_OPTS was not set - if [ "x$JAVA_DEBUG_OPTS" = "x" ]; then - JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS" - fi - - JAVA_OPTS="$JAVA_DEBUG_OPTS $JAVA_OPTS" - warn "Enabling Java debug options: $JAVA_DEBUG_OPTS" - fi -} - -setupDefaults() { - DEFAULT_JAVA_OPTS="-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass " - - #Set the JVM_VENDOR specific JVM flags - if [ "$JVM_VENDOR" = "SUN" ]; then - # - # Check some easily accessible MIN/MAX params for JVM mem usage - # - if [ "x$JAVA_PERM_MEM" != "x" ]; then - DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS -XX:PermSize=$JAVA_PERM_MEM" - fi - if [ "x$JAVA_MAX_PERM_MEM" != "x" ]; then - DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS -XX:MaxPermSize=$JAVA_MAX_PERM_MEM" - fi - DEFAULT_JAVA_OPTS="-server $DEFAULT_JAVA_OPTS -Dcom.sun.management.jmxremote" - elif [ "$JVM_VENDOR" = "IBM" ]; then - if $os400; then - DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS" - elif $aix; then - DEFAULT_JAVA_OPTS="-Xverify:none -Xdump:heap -Xlp $DEFAULT_JAVA_OPTS" - else - DEFAULT_JAVA_OPTS="-Xverify:none $DEFAULT_JAVA_OPTS" - fi - fi - - # Add the jars in the lib dir - for file in "$KARAF_HOME"/lib/boot/*.jar - do - if [ -z "$CLASSPATH" ]; then - CLASSPATH="$file" - else - CLASSPATH="$CLASSPATH:$file" - fi - done - - DEFAULT_JAVA_DEBUG_PORT="5005" - if [ "x$JAVA_DEBUG_PORT" = "x" ]; then - JAVA_DEBUG_PORT="$DEFAULT_JAVA_DEBUG_PORT" - fi - DEFAULT_JAVA_DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$JAVA_DEBUG_PORT" - - ## - ## TODO: Move to conf/profiler/yourkit.{sh|cmd} - ## - # Uncomment to enable YourKit profiling - #DEFAULT_JAVA_DEBUG_OPTS="-Xrunyjpagent" -} - -init() { - # Determine if there is special OS handling we must perform - detectOS - - # Unlimit the number of file descriptors if possible - unlimitFD - - # Locate the Karaf home directory - locateHome - - # Locate the Karaf base directory - locateBase - - # Locate the Karaf data directory - locateData - - # Locate the Karaf etc directory - locateEtc - - # Setup the native library path - setupNativePath - - # Locate the Java VM to execute - locateJava - - # Determine the JVM vendor - detectJVM - - # Determine the JVM version >= 1.6 - checkJvmVersion - - # Setup default options - setupDefaults - - # Install debug options - setupDebugOptions - -} - -run() { - OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true" - MAIN=org.apache.karaf.main.Main - while [ "$1" != "" ]; do - case $1 in - 'clean') - rm -Rf "$KARAF_DATA" - shift - ;; - 'debug') - if [ "x$JAVA_DEBUG_OPTS" = "x" ]; then - JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS" - fi - JAVA_OPTS="$JAVA_DEBUG_OPTS $JAVA_OPTS" - shift - ;; - 'status') - MAIN=org.apache.karaf.main.Status - shift - ;; - 'stop') - MAIN=org.apache.karaf.main.Stop - shift - ;; - 'console') - shift - ;; - 'server') - OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true" - shift - ;; - 'client') - OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false" - shift - ;; - *) - break - ;; - esac - done - - JAVA_ENDORSED_DIRS="${JAVA_HOME}/jre/lib/endorsed:${JAVA_HOME}/lib/endorsed:${KARAF_HOME}/lib/endorsed" - JAVA_EXT_DIRS="${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext:${KARAF_HOME}/lib/ext" - if $cygwin; then - KARAF_HOME=`cygpath --path --windows "$KARAF_HOME"` - KARAF_BASE=`cygpath --path --windows "$KARAF_BASE"` - KARAF_DATA=`cygpath --path --windows "$KARAF_DATA"` - KARAF_ETC=`cygpath --path --windows "$KARAF_ETC"` - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"` - JAVA_EXT_DIRS=`cygpath --path --windows "$JAVA_EXT_DIRS"` - fi - cd "$KARAF_BASE" - - exec "$JAVA" $JAVA_OPTS -Djava.endorsed.dirs="${JAVA_ENDORSED_DIRS}" -Djava.ext.dirs="${JAVA_EXT_DIRS}" -Dkaraf.instances="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Dkaraf.data="$KARAF_DATA" -Dkaraf.etc="$KARAF_ETC" -Djava.io.tmpdir="$KARAF_DATA/tmp" -Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" $KARAF_OPTS $OPTS -classpath "$CLASSPATH" $MAIN "$@" -} - -main() { - init - run "$@" -} - -main "$@" http://git-wip-us.apache.org/repos/asf/karaf/blob/d50b32a6/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat ---------------------------------------------------------------------- diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat deleted file mode 100644 index 3645594..0000000 --- a/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat +++ /dev/null @@ -1,341 +0,0 @@ -@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 ARGS=%* - -rem Sourcing environment settings for karaf similar to tomcats setenv -SET KARAF_SCRIPT="karaf.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" -) - -set LOCAL_CLASSPATH=%CLASSPATH% -set JAVA_MODE=-server - -set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf -set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 - -if "%LOCAL_CLASSPATH%" == "" goto :KARAF_CLASSPATH_EMPTY - set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf - goto :KARAF_CLASSPATH_END -:KARAF_CLASSPATH_EMPTY - set CLASSPATH=%KARAF_BASE%\conf -:KARAF_CLASSPATH_END - -rem Setup Karaf Home -if exist "%KARAF_HOME%\conf\karaf-rc.cmd" call %KARAF_HOME%\conf\karaf-rc.cmd -if exist "%HOME%\karaf-rc.cmd" call %HOME%\karaf-rc.cmd - -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 not exist "%JAVA_HOME%\bin\server\jvm.dll" ( - if not exist "%JAVA_HOME%\jre\bin\server\jvm.dll" ( - echo WARNING: Running Karaf on a Java HotSpot Client VM because server-mode is not available. - echo Install Java Developer Kit to fix this. - echo For more details see http://java.sun.com/products/hotspot/whitepaper.html#client - set JAVA_MODE=-client - ) -) -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 - -rem Check some easily accessible MIN/MAX params for JVM mem usage -if not "%JAVA_PERM_MEM%" == "" ( - set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=%JAVA_PERM_MEM% -) -if not "%JAVA_MAX_PERM_MEM%" == "" ( - set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM% -) - -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 - -if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END - if "%1" == "stop" goto :KARAF_DEBUG_END - if "%1" == "client" goto :KARAF_DEBUG_END - rem Use the defaults if JAVA_DEBUG_OPTS was not set - if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS% - - set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS% - call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS% -:KARAF_DEBUG_END - -if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END - set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd - - if exist "%KARAF_PROFILER_SCRIPT%" goto :KARAF_PROFILER_END - call :warn Missing configuration for profiler '%KARAF_PROFILER%': %KARAF_PROFILER_SCRIPT% - goto END -:KARAF_PROFILER_END - -rem Setup the classpath -pushd "%KARAF_HOME%\lib\boot" -for %%G in (*.jar) do call:APPEND_TO_CLASSPATH %%G -popd -goto CLASSPATH_END - -: APPEND_TO_CLASSPATH -set filename=%~1 -set suffix=%filename:~-4% -if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\boot\%filename% -goto :EOF - -:CLASSPATH_END - -rem Execute the JVM or the load the profiler -if "%KARAF_PROFILER%" == "" goto :RUN - rem Execute the profiler if it has been configured - call :warn Loading profiler script: %KARAF_PROFILER_SCRIPT% - call %KARAF_PROFILER_SCRIPT% - -:RUN - SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true - SET MAIN=org.apache.karaf.main.Main - SET SHIFT=false - -:RUN_LOOP - if "%1" == "stop" goto :EXECUTE_STOP - if "%1" == "status" goto :EXECUTE_STATUS - if "%1" == "console" goto :EXECUTE_CONSOLE - if "%1" == "server" goto :EXECUTE_SERVER - if "%1" == "client" goto :EXECUTE_CLIENT - if "%1" == "clean" goto :EXECUTE_CLEAN - if "%1" == "debug" goto :EXECUTE_DEBUG - goto :EXECUTE - -:EXECUTE_STOP - SET MAIN=org.apache.karaf.main.Stop - shift - goto :RUN_LOOP - -:EXECUTE_STATUS - SET MAIN=org.apache.karaf.main.Status - shift - goto :RUN_LOOP - -:EXECUTE_CONSOLE - shift - goto :RUN_LOOP - -:EXECUTE_SERVER - SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true - shift - goto :RUN_LOOP - -:EXECUTE_CLIENT - SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false - shift - goto :RUN_LOOP - -:EXECUTE_CLEAN - rmdir /S /Q "%KARAF_DATA%" - shift - goto :RUN_LOOP - -:EXECUTE_DEBUG - if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS% - set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS% - shift - goto :RUN_LOOP - -:EXECUTE - SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8 - rem Execute the Java Virtual Machine - cd "%KARAF_BASE%" - "%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% - -rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # - -:END - -endlocal - -if not "%PAUSE%" == "" pause - -:END_NO_PAUSE - http://git-wip-us.apache.org/repos/asf/karaf/blob/d50b32a6/assemblies/features/base/src/main/resources/resources/bin/karaf ---------------------------------------------------------------------- diff --git a/assemblies/features/base/src/main/resources/resources/bin/karaf b/assemblies/features/base/src/main/resources/resources/bin/karaf new file mode 100755 index 0000000..3318101 --- /dev/null +++ b/assemblies/features/base/src/main/resources/resources/bin/karaf @@ -0,0 +1,426 @@ +#!/bin/sh +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +DIRNAME=`dirname "$0"` +PROGNAME=`basename "$0"` + +# +# Sourcing environment settings for karaf similar to tomcats setenv +# +KARAF_SCRIPT="karaf" +export KARAF_SCRIPT +if [ -f "$DIRNAME/setenv" ]; then + . "$DIRNAME/setenv" +fi + +# +# Set up some easily accessible MIN/MAX params for JVM mem usage +# +if [ "x$JAVA_MIN_MEM" = "x" ]; then + JAVA_MIN_MEM=128M + export JAVA_MIN_MEM +fi +if [ "x$JAVA_MAX_MEM" = "x" ]; then + JAVA_MAX_MEM=512M + export JAVA_MAX_MEM +fi + +# +# Check the mode that initiated the script +# +if [ "x$1" != "x" ]; then + MODE=$1 +fi + +warn() { + echo "${PROGNAME}: $*" +} + +die() { + warn "$*" + exit 1 +} + +detectOS() { + # OS specific support (must be 'true' or 'false'). + cygwin=false; + darwin=false; + aix=false; + os400=false; + case "`uname`" in + CYGWIN*) + cygwin=true + ;; + Darwin*) + darwin=true + ;; + AIX*) + aix=true + ;; + OS400*) + os400=true + ;; + esac + # For AIX, set an environment variable + if $aix; then + export LDR_CNTRL=MAXDATA=0xB0000000@DSA + echo $LDR_CNTRL + fi +} + +unlimitFD() { + # Use the maximum available, or set MAX_FD != -1 to use that + if [ "x$MAX_FD" = "x" ]; then + MAX_FD="maximum" + fi + + # Increase the maximum file descriptors if we can + if [ "$os400" = "false" ] && [ "$cygwin" = "false" ]; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ "$MAX_FD_LIMIT" != 'unlimited' ]; then + if [ $? -eq 0 ]; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then + # use the system max + MAX_FD="$MAX_FD_LIMIT" + fi + + ulimit -n $MAX_FD > /dev/null + # echo "ulimit -n" `ulimit -n` + if [ $? -ne 0 ]; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query system maximum file descriptor limit: $MAX_FD_LIMIT" + fi + fi + fi +} + +locateHome() { + if [ "x$KARAF_HOME" = "x" ]; then + # In POSIX shells, CDPATH may cause cd to write to stdout + (unset CDPATH) >/dev/null 2>&1 && unset CDPATH + # KARAF_HOME is not provided, fall back to default + KARAF_HOME=`cd "$DIRNAME/.."; pwd` + fi + + if [ ! -d "$KARAF_HOME" ]; then + die "KARAF_HOME is not valid: $KARAF_HOME" + fi +} + +locateBase() { + if [ "x$KARAF_BASE" != "x" ]; then + if [ ! -d "$KARAF_BASE" ]; then + die "KARAF_BASE is not valid: $KARAF_BASE" + fi + else + KARAF_BASE=$KARAF_HOME + fi +} + +locateData() { + if [ "x$KARAF_DATA" != "x" ]; then + if [ ! -d "$KARAF_DATA" ]; then + die "KARAF_DATA is not valid: $KARAF_DATA" + fi + else + KARAF_DATA=$KARAF_BASE/data + fi +} + +locateEtc() { + if [ "x$KARAF_ETC" != "x" ]; then + if [ ! -d "$KARAF_ETC" ]; then + die "KARAF_ETC is not valid: $KARAF_ETC" + fi + else + KARAF_ETC=$KARAF_BASE/etc + fi +} + +setupNativePath() { + # Support for loading native libraries + LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$KARAF_BASE/lib:$KARAF_HOME/lib" + + # For Cygwin, set PATH from LD_LIBRARY_PATH + if $cygwin; then + LD_LIBRARY_PATH=`cygpath --path --windows "$LD_LIBRARY_PATH"` + PATH="$PATH;$LD_LIBRARY_PATH" + export PATH + fi + export LD_LIBRARY_PATH +} + +pathCanonical() { + local dst="${1}" + while [ -h "${dst}" ] ; do + ls=`ls -ld "${dst}"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + dst="$link" + else + dst="`dirname "${dst}"`/$link" + fi + done + local bas=`basename "${dst}"` + local dir=`dirname "${dst}"` + if [ "$bas" != "$dir" ]; then + dst="`pathCanonical "$dir"`/$bas" + fi + echo "${dst}" | sed -e 's#//#/#g' -e 's#/./#/#g' -e 's#/[^/]*/../#/#g' +} + +locateJava() { + # Setup the Java Virtual Machine + if $cygwin ; then + [ -n "$JAVA" ] && JAVA=`cygpath --unix "$JAVA"` + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + fi + + if [ "x$JAVA_HOME" = "x" ] && [ "$darwin" = "true" ]; then + JAVA_HOME="$(/usr/libexec/java_home -v 1.7)" + fi + if [ "x$JAVA" = "x" ] && [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi + if [ "x$JAVA" = "x" ]; then + if [ "x$JAVA_HOME" != "x" ]; then + if [ ! -d "$JAVA_HOME" ]; then + die "JAVA_HOME is not valid: $JAVA_HOME" + fi + JAVA="$JAVA_HOME/bin/java" + else + warn "JAVA_HOME not set; results may vary" + JAVA=`type java` + JAVA=`expr "$JAVA" : '.* \(/.*\)$'` + if [ "x$JAVA" = "x" ]; then + die "java command not found" + fi + fi + fi + if [ "x$JAVA_HOME" = "x" ]; then + JAVA_HOME="$(dirname $(dirname $(pathCanonical "$JAVA")))" + fi +} + +detectJVM() { + #echo "`$JAVA -version`" + # This service should call `java -version`, + # read stdout, and look for hints + if $JAVA -version 2>&1 | grep "^IBM" ; then + JVM_VENDOR="IBM" + # on OS/400, java -version does not contain IBM explicitly + elif $os400; then + JVM_VENDOR="IBM" + else + JVM_VENDOR="SUN" + fi + # echo "JVM vendor is $JVM_VENDOR" +} + +checkJvmVersion() { + # echo "`$JAVA -version`" + VERSION=`$JAVA -version 2>&1 | egrep '"([0-9].[0-9]\..*[0-9]).*"' | awk '{print substr($3,2,length($3)-2)}' | awk '{print substr($1, 3, 3)}' | sed -e 's;\.;;g'` + # echo $VERSION + if [ "$VERSION" -lt "60" ]; then + echo "JVM must be greater than 1.6" + exit 1; + fi +} + +setupDebugOptions() { + if [ "x$JAVA_OPTS" = "x" ]; then + JAVA_OPTS="$DEFAULT_JAVA_OPTS" + fi + export JAVA_OPTS + + if [ "x$EXTRA_JAVA_OPTS" != "x" ]; then + JAVA_OPTS="$JAVA_OPTS $EXTRA_JAVA_OPTS" + fi + + # Set Debug options if enabled + if [ "x$KARAF_DEBUG" != "x" ]; then + # Ignore DEBUG in case of stop or client mode + if [ "x$MODE" = "xstop" ]; then + return + fi + if [ "x$MODE" = "xclient" ]; then + return + fi + # Use the defaults if JAVA_DEBUG_OPTS was not set + if [ "x$JAVA_DEBUG_OPTS" = "x" ]; then + JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS" + fi + + JAVA_OPTS="$JAVA_DEBUG_OPTS $JAVA_OPTS" + warn "Enabling Java debug options: $JAVA_DEBUG_OPTS" + fi +} + +setupDefaults() { + DEFAULT_JAVA_OPTS="-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass " + + #Set the JVM_VENDOR specific JVM flags + if [ "$JVM_VENDOR" = "SUN" ]; then + # + # Check some easily accessible MIN/MAX params for JVM mem usage + # + if [ "x$JAVA_PERM_MEM" != "x" ]; then + DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS -XX:PermSize=$JAVA_PERM_MEM" + fi + if [ "x$JAVA_MAX_PERM_MEM" != "x" ]; then + DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS -XX:MaxPermSize=$JAVA_MAX_PERM_MEM" + fi + DEFAULT_JAVA_OPTS="-server $DEFAULT_JAVA_OPTS -Dcom.sun.management.jmxremote" + elif [ "$JVM_VENDOR" = "IBM" ]; then + if $os400; then + DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS" + elif $aix; then + DEFAULT_JAVA_OPTS="-Xverify:none -Xdump:heap -Xlp $DEFAULT_JAVA_OPTS" + else + DEFAULT_JAVA_OPTS="-Xverify:none $DEFAULT_JAVA_OPTS" + fi + fi + + # Add the jars in the lib dir + for file in "$KARAF_HOME"/lib/boot/*.jar + do + if [ -z "$CLASSPATH" ]; then + CLASSPATH="$file" + else + CLASSPATH="$CLASSPATH:$file" + fi + done + + DEFAULT_JAVA_DEBUG_PORT="5005" + if [ "x$JAVA_DEBUG_PORT" = "x" ]; then + JAVA_DEBUG_PORT="$DEFAULT_JAVA_DEBUG_PORT" + fi + DEFAULT_JAVA_DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$JAVA_DEBUG_PORT" + + ## + ## TODO: Move to conf/profiler/yourkit.{sh|cmd} + ## + # Uncomment to enable YourKit profiling + #DEFAULT_JAVA_DEBUG_OPTS="-Xrunyjpagent" +} + +init() { + # Determine if there is special OS handling we must perform + detectOS + + # Unlimit the number of file descriptors if possible + unlimitFD + + # Locate the Karaf home directory + locateHome + + # Locate the Karaf base directory + locateBase + + # Locate the Karaf data directory + locateData + + # Locate the Karaf etc directory + locateEtc + + # Setup the native library path + setupNativePath + + # Locate the Java VM to execute + locateJava + + # Determine the JVM vendor + detectJVM + + # Determine the JVM version >= 1.6 + checkJvmVersion + + # Setup default options + setupDefaults + + # Install debug options + setupDebugOptions + +} + +run() { + OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true" + MAIN=org.apache.karaf.main.Main + while [ "$1" != "" ]; do + case $1 in + 'clean') + rm -Rf "$KARAF_DATA" + shift + ;; + 'debug') + if [ "x$JAVA_DEBUG_OPTS" = "x" ]; then + JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS" + fi + JAVA_OPTS="$JAVA_DEBUG_OPTS $JAVA_OPTS" + shift + ;; + 'status') + MAIN=org.apache.karaf.main.Status + shift + ;; + 'stop') + MAIN=org.apache.karaf.main.Stop + shift + ;; + 'console') + shift + ;; + 'server') + OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true" + shift + ;; + 'client') + OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false" + shift + ;; + *) + break + ;; + esac + done + + JAVA_ENDORSED_DIRS="${JAVA_HOME}/jre/lib/endorsed:${JAVA_HOME}/lib/endorsed:${KARAF_HOME}/lib/endorsed" + JAVA_EXT_DIRS="${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext:${KARAF_HOME}/lib/ext" + if $cygwin; then + KARAF_HOME=`cygpath --path --windows "$KARAF_HOME"` + KARAF_BASE=`cygpath --path --windows "$KARAF_BASE"` + KARAF_DATA=`cygpath --path --windows "$KARAF_DATA"` + KARAF_ETC=`cygpath --path --windows "$KARAF_ETC"` + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"` + JAVA_EXT_DIRS=`cygpath --path --windows "$JAVA_EXT_DIRS"` + fi + cd "$KARAF_BASE" + + exec "$JAVA" $JAVA_OPTS -Djava.endorsed.dirs="${JAVA_ENDORSED_DIRS}" -Djava.ext.dirs="${JAVA_EXT_DIRS}" -Dkaraf.instances="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Dkaraf.data="$KARAF_DATA" -Dkaraf.etc="$KARAF_ETC" -Djava.io.tmpdir="$KARAF_DATA/tmp" -Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" $KARAF_OPTS $OPTS -classpath "$CLASSPATH" $MAIN "$@" +} + +main() { + init + run "$@" +} + +main "$@" http://git-wip-us.apache.org/repos/asf/karaf/blob/d50b32a6/assemblies/features/base/src/main/resources/resources/bin/karaf.bat ---------------------------------------------------------------------- diff --git a/assemblies/features/base/src/main/resources/resources/bin/karaf.bat b/assemblies/features/base/src/main/resources/resources/bin/karaf.bat new file mode 100644 index 0000000..3645594 --- /dev/null +++ b/assemblies/features/base/src/main/resources/resources/bin/karaf.bat @@ -0,0 +1,341 @@ +@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 ARGS=%* + +rem Sourcing environment settings for karaf similar to tomcats setenv +SET KARAF_SCRIPT="karaf.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" +) + +set LOCAL_CLASSPATH=%CLASSPATH% +set JAVA_MODE=-server + +set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf +set DEFAULT_JAVA_DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 + +if "%LOCAL_CLASSPATH%" == "" goto :KARAF_CLASSPATH_EMPTY + set CLASSPATH=%LOCAL_CLASSPATH%;%KARAF_BASE%\conf + goto :KARAF_CLASSPATH_END +:KARAF_CLASSPATH_EMPTY + set CLASSPATH=%KARAF_BASE%\conf +:KARAF_CLASSPATH_END + +rem Setup Karaf Home +if exist "%KARAF_HOME%\conf\karaf-rc.cmd" call %KARAF_HOME%\conf\karaf-rc.cmd +if exist "%HOME%\karaf-rc.cmd" call %HOME%\karaf-rc.cmd + +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 not exist "%JAVA_HOME%\bin\server\jvm.dll" ( + if not exist "%JAVA_HOME%\jre\bin\server\jvm.dll" ( + echo WARNING: Running Karaf on a Java HotSpot Client VM because server-mode is not available. + echo Install Java Developer Kit to fix this. + echo For more details see http://java.sun.com/products/hotspot/whitepaper.html#client + set JAVA_MODE=-client + ) +) +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 + +rem Check some easily accessible MIN/MAX params for JVM mem usage +if not "%JAVA_PERM_MEM%" == "" ( + set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:PermSize=%JAVA_PERM_MEM% +) +if not "%JAVA_MAX_PERM_MEM%" == "" ( + set DEFAULT_JAVA_OPTS=%DEFAULT_JAVA_OPTS% -XX:MaxPermSize=%JAVA_MAX_PERM_MEM% +) + +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 + +if "%KARAF_DEBUG%" == "" goto :KARAF_DEBUG_END + if "%1" == "stop" goto :KARAF_DEBUG_END + if "%1" == "client" goto :KARAF_DEBUG_END + rem Use the defaults if JAVA_DEBUG_OPTS was not set + if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS% + + set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS% + call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS% +:KARAF_DEBUG_END + +if "%KARAF_PROFILER%" == "" goto :KARAF_PROFILER_END + set KARAF_PROFILER_SCRIPT=%KARAF_HOME%\conf\profiler\%KARAF_PROFILER%.cmd + + if exist "%KARAF_PROFILER_SCRIPT%" goto :KARAF_PROFILER_END + call :warn Missing configuration for profiler '%KARAF_PROFILER%': %KARAF_PROFILER_SCRIPT% + goto END +:KARAF_PROFILER_END + +rem Setup the classpath +pushd "%KARAF_HOME%\lib\boot" +for %%G in (*.jar) do call:APPEND_TO_CLASSPATH %%G +popd +goto CLASSPATH_END + +: APPEND_TO_CLASSPATH +set filename=%~1 +set suffix=%filename:~-4% +if %suffix% equ .jar set CLASSPATH=%CLASSPATH%;%KARAF_HOME%\lib\boot\%filename% +goto :EOF + +:CLASSPATH_END + +rem Execute the JVM or the load the profiler +if "%KARAF_PROFILER%" == "" goto :RUN + rem Execute the profiler if it has been configured + call :warn Loading profiler script: %KARAF_PROFILER_SCRIPT% + call %KARAF_PROFILER_SCRIPT% + +:RUN + SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true + SET MAIN=org.apache.karaf.main.Main + SET SHIFT=false + +:RUN_LOOP + if "%1" == "stop" goto :EXECUTE_STOP + if "%1" == "status" goto :EXECUTE_STATUS + if "%1" == "console" goto :EXECUTE_CONSOLE + if "%1" == "server" goto :EXECUTE_SERVER + if "%1" == "client" goto :EXECUTE_CLIENT + if "%1" == "clean" goto :EXECUTE_CLEAN + if "%1" == "debug" goto :EXECUTE_DEBUG + goto :EXECUTE + +:EXECUTE_STOP + SET MAIN=org.apache.karaf.main.Stop + shift + goto :RUN_LOOP + +:EXECUTE_STATUS + SET MAIN=org.apache.karaf.main.Status + shift + goto :RUN_LOOP + +:EXECUTE_CONSOLE + shift + goto :RUN_LOOP + +:EXECUTE_SERVER + SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true + shift + goto :RUN_LOOP + +:EXECUTE_CLIENT + SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false + shift + goto :RUN_LOOP + +:EXECUTE_CLEAN + rmdir /S /Q "%KARAF_DATA%" + shift + goto :RUN_LOOP + +:EXECUTE_DEBUG + if "%JAVA_DEBUG_OPTS%" == "" set JAVA_DEBUG_OPTS=%DEFAULT_JAVA_DEBUG_OPTS% + set JAVA_OPTS=%JAVA_DEBUG_OPTS% %JAVA_OPTS% + shift + goto :RUN_LOOP + +:EXECUTE + SET ARGS=%1 %2 %3 %4 %5 %6 %7 %8 + rem Execute the Java Virtual Machine + cd "%KARAF_BASE%" + "%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% + +rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +:END + +endlocal + +if not "%PAUSE%" == "" pause + +:END_NO_PAUSE +
