You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2016/12/07 14:58:16 UTC
[1/2] karaf git commit: [KARAF-4852] Improve unix shell scripts
Repository: karaf
Updated Branches:
refs/heads/master 406c6f093 -> d7a2185a7
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/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
deleted file mode 100755
index 62c5e28..0000000
--- a/assemblies/features/base/src/main/resources/resources/bin/karaf
+++ /dev/null
@@ -1,574 +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.
-#
-
-realpath() {
- OURPWD=${PWD}
- cd "$(dirname "${1}")" || exit 2
- LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
- while [ "${LINK}" ]; do
- echo "link: ${LINK}" >&2
- cd "$(dirname "${LINK}")" || exit 2
- LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
- done
- REALPATH="${PWD}/$(basename "${1}")"
- cd "${OURPWD}" || exit 2
- echo "${REALPATH}"
-}
-
-REALNAME=$(realpath "$0")
-DIRNAME=$(dirname "${REALNAME}")
-PROGNAME=$(basename "${REALNAME}")
-
-#
-# 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
-}
-
-forceNoRoot() {
- # If configured, prevent execution as root
- if [ "${KARAF_NOROOT}" ] && [ "$(id -u)" -eq 0 ]; then
- echo "Do not run as root!"
- exit 2
- fi
-}
-
-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 [ "x$(command -v ulimit)" != "x" ] && [ "${os400}" = "false" ] ; then
- if [ "${MAX_FD}" = "maximum" ] || [ "${MAX_FD}" = "max" ]; then
- MAX_FD_LIMIT=$(ulimit -H -n)
- if [ $? -eq 0 ]; then
- # use the system max
- MAX_FD="${MAX_FD_LIMIT}"
- else
- warn "Could not query system maximum file descriptor limit: ${MAX_FD_LIMIT}"
- fi
- fi
- if [ "${MAX_FD}" != 'unlimited' ]; then
- ulimit -n "${MAX_FD}" > /dev/null
- if [ $? -ne 0 ]; then
- warn "Could not set maximum file descriptor limit: ${MAX_FD}"
- 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}/.." || exit 2; 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() {
- 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
- bas=$(basename "${dst}")
- 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.8)"
- 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=$(command -v 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')
- if [ "x${VERSION}" = "x" ]; then
- VERSION=90
- fi
- 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, client, or status mode
- if [ "x${MODE}" = "xstop" ]; then
- return
- fi
- if [ "x${MODE}" = "xclient" ]; then
- return
- fi
- if [ "x${MODE}" = "xstatus" ]; 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
- # permgen was removed in Java 8
- 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')
- if [ "x${VERSION}" = "x" ]; then
- VERSION=90
- fi
- if [ "${VERSION}" -lt "80" ]; 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
- 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"
-}
-
-checkRootInstance() {
- ROOT_INSTANCE_RUNNING=false
- if [ -f "${KARAF_HOME}/instances/instance.properties" ];
- then
- ROOT_INSTANCE_PID=$(sed -n -e '/item.0.pid/ s/.*\= *//p' "${KARAF_HOME}/instances/instance.properties")
- ROOT_INSTANCE_NAME=$(sed -n -e '/item.0.name/ s/.*\= *//p' "${KARAF_HOME}/instances/instance.properties")
- if [ "${ROOT_INSTANCE_PID}" -ne "0" ]; then
- if ps p "${ROOT_INSTANCE_PID}" > /dev/null
- then
- ROOT_INSTANCE_RUNNING=true
- fi
- fi
- fi
-}
-
-init() {
- # Prevent root execution if configured
- forceNoRoot
-
- # 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
-
- # Check if a root instance is already running
- checkRootInstance
-
- # Setup default options
- setupDefaults
-
- # Install debug options
- setupDebugOptions
-
-}
-
-run() {
- OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true"
- MAIN=org.apache.karaf.main.Main
- CHECK_ROOT_INSTANCE_RUNNING=true
- 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
- CHECK_ROOT_INSTANCE_RUNNING=false
- shift
- ;;
- 'stop')
- MAIN=org.apache.karaf.main.Stop
- CHECK_ROOT_INSTANCE_RUNNING=false
- shift
- ;;
- 'console')
- CHECK_ROOT_INSTANCE_RUNNING=false
- shift
- ;;
- 'server')
- OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true"
- shift
- ;;
- 'run')
- OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Dkaraf.log.console=ALL"
- shift
- ;;
- 'daemon')
- OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true"
- KARAF_DAEMON="true"
- KARAF_EXEC="exec"
- shift
- ;;
- 'client')
- OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false"
- CHECK_ROOT_INSTANCE_RUNNING=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}")
- if [ ! -z "${CLASSPATH}" ]; then
- CLASSPATH=$(cygpath --path --windows "${CLASSPATH}")
- fi
- 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}" || exit 2
-
- if [ -z "${KARAF_EXEC}" ]; then
- KARAF_EXEC=""
- fi
-
- while true; do
- # When users want to update the lib version of, they just need to create
- # a lib.next directory and on the new restart, it will replace the current lib directory.
- if [ -d "${KARAF_HOME:?}/lib.next" ] ; then
- echo "Updating libs..."
- rm -rf "${KARAF_HOME:?}/lib"
- mv -f "${KARAF_HOME:?}/lib.next" "${KARAF_HOME}/lib"
- fi
-
- # Ensure the log directory exists
- # We may need to have a place to redirect stdout/stderr
- if [ ! -d "${KARAF_DATA}/log" ]; then
- mkdir -p "${KARAF_DATA}/log"
- fi
-
- if [ "${ROOT_INSTANCE_RUNNING}" = "false" ] || [ "${CHECK_ROOT_INSTANCE_RUNNING}" = "false" ] ; then
- if [ "${VERSION}" -gt "80" ]; then
- ${KARAF_EXEC} "${JAVA}" ${JAVA_OPTS} \
- --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED \
- --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED \
- --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED \
- --add-exports=java.xml.bind/com.sun.xml.internal.bind.v2.runtime=ALL-UNNAMED \
- --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED \
- --add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED \
- --add-modules java.annotations.common,java.corba,java.transaction,java.xml.bind,java.xml.ws \
- -Dkaraf.instances="${KARAF_HOME}/instances" \
- -Dkaraf.home="${KARAF_HOME}" \
- -Dkaraf.base="${KARAF_BASE}" \
- -Dkaraf.data="${KARAF_DATA}" \
- -Dkaraf.etc="${KARAF_ETC}" \
- -Dkaraf.restart.jvm.supported=true \
- -Djava.io.tmpdir="${KARAF_DATA}/tmp" \
- -Djava.util.logging.config.file="${KARAF_BASE}/etc/java.util.logging.properties" \
- ${KARAF_SYSTEM_OPTS} \
- ${KARAF_OPTS} \
- ${OPTS} \
- -classpath "${CLASSPATH}" \
- ${MAIN} "$@"
- else
- ${KARAF_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}" \
- -Dkaraf.restart.jvm.supported=true \
- -Djava.io.tmpdir="${KARAF_DATA}/tmp" \
- -Djava.util.logging.config.file="${KARAF_BASE}/etc/java.util.logging.properties" \
- ${KARAF_SYSTEM_OPTS} \
- ${KARAF_OPTS} \
- ${OPTS} \
- -classpath "${CLASSPATH}" \
- ${MAIN} "$@"
- fi
- else
- die "There is a Root instance already running with name ${ROOT_INSTANCE_NAME} and pid ${ROOT_INSTANCE_PID}"
- fi
-
- KARAF_RC=$?
- if [ ${KARAF_DAEMON} ] ; then
- exit ${KARAF_RC}
- else
- if [ "${KARAF_RC}" -eq 10 ]; then
- echo "Restarting JVM..."
- else
- exit ${KARAF_RC}
- fi
- fi
- done
-}
-
-nothing() {
- # nothing to do here
- a=a
-}
-
-main() {
- init
- trap 'nothing' SIGTSTP
- run "$@"
-}
-
-main "$@"
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/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
deleted file mode 100644
index de0f213..0000000
--- a/assemblies/features/base/src/main/resources/resources/bin/karaf.bat
+++ /dev/null
@@ -1,428 +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%"
- call :warn Creating %KARAF_DATA%
- mkdir %KARAF_DATA%
- )
-)
-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
-
-:CheckRootInstance
- set ROOT_INSTANCE_RUNNING=false
- if exist "%KARAF_HOME%\instances\instance.properties" (
- for /f "delims=" %%x in ( 'findstr "item.0.pid" "%KARAF_HOME%\instances\instance.properties" ' ) do @set pid=%%x
- for /f "delims=" %%i in ( 'findstr "item.0.name" "%KARAF_HOME%\instances\instance.properties" ' ) do @set name=%%i
- )
- set ROOT_INSTANCE_PID=%pid:~13%
-
- set ROOT_INSTANCE_NAME=%name:~14%
- SET CHECK_RUNNING_CONDITION=true
- if "%ROOT_INSTANCE_PID%" == "~13" SET CHECK_RUNNING_CONDITION=false
- if "%ROOT_INSTANCE_PID%" == "0" SET CHECK_RUNNING_CONDITION=false
- if "%CHECK_RUNNING_CONDITION%" == "true" (
- tasklist /fi "PID eq %ROOT_INSTANCE_PID%" | find ":" > NUL
- if errorlevel 1 set ROOT_INSTANCE_RUNNING=true
- )
-
-
-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% -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
- if "%1" == "status" 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
-
-SET CHECK_ROOT_INSTANCE_RUNNING=true
-
-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" == "run" goto :EXECUTE_RUN
- if "%1" == "daemon" goto :EXECUTE_DAEMON
- 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
- SET CHECK_ROOT_INSTANCE_RUNNING=false
- shift
- goto :RUN_LOOP
-
-:EXECUTE_STATUS
- SET MAIN=org.apache.karaf.main.Status
- SET CHECK_ROOT_INSTANCE_RUNNING=false
- shift
- goto :RUN_LOOP
-
-:EXECUTE_CONSOLE
- SET CHECK_ROOT_INSTANCE_RUNNING=false
- shift
- goto :RUN_LOOP
-
-:EXECUTE_SERVER
- SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
- shift
- goto :RUN_LOOP
-
-:EXECUTE_RUN
- SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Dkaraf.log.console=ALL
- shift
- goto :RUN_LOOP
-
-:EXECUTE_DAEMON
- SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
- SET KARAF_DAEMON=true
- shift
- goto :RUN_LOOP
-
-:EXECUTE_CLIENT
- SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false
- SET CHECK_ROOT_INSTANCE_RUNNING=false
- shift
- goto :RUN_LOOP
-
-:EXECUTE_CLEAN
- pushd "%KARAF_DATA%" && (rmdir /S /Q "%KARAF_DATA%" 2>nul & popd)
- 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%"
-
- rem When users want to update the lib version of, they just need to create
- rem a lib.next directory and on the new restart, it will replace the current lib directory.
- if exist "%KARAF_HOME%\lib.next" (
- echo Updating libs...
- RD /S /Q "%KARAF_HOME%\lib"
- MOVE /Y "%KARAF_HOME%\lib.next" "%KARAF_HOME%\lib"
- )
-
- SET IS_RUNNABLE=false
- if "%ROOT_INSTANCE_RUNNING%" == "false" SET IS_RUNNABLE=true
- if "%CHECK_ROOT_INSTANCE_RUNNING%" == "false" SET IS_RUNNABLE=true
- if "%IS_RUNNABLE%" == "true" (
- "%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%" ^
- -Dkaraf.restart.jvm.supported=true ^
- -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%
- ) else (
- echo There is a Root instance already running with name %ROOT_INSTANCE_NAME% and pid %ROOT_INSTANCE_PID%
- goto :END
- )
-
- rem If KARAF_DAEMON is defined, auto-restart is bypassed and control given
- rem back to the operating system
- if defined "%KARAF_DAEMON%" (
- rem If Karaf has been started by winsw, the process can be restarted
- rem by executing KARAF_DAEMON% restart!
- rem https://github.com/kohsuke/winsw#restarting-service-from-itself
- if defined "%WINSW_EXECUTABLE%" (
- if ERRORLEVEL 10 (
- echo Restarting ...
- %KARAF_DAEMON% restart!
- )
- ) else (
- if ERRORLEVEL 10 (
- echo Restarting JVM...
- goto EXECUTE
- )
- )
- )
-
-rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-
-:END
-
-endlocal
-
-if not "%PAUSE%" == "" pause
-
-:END_NO_PAUSE
- EXIT /B %ERRORLEVEL%
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/instance/src/main/resources/org/apache/karaf/instance/resources/bin/karaf
----------------------------------------------------------------------
diff --git a/instance/src/main/resources/org/apache/karaf/instance/resources/bin/karaf b/instance/src/main/resources/org/apache/karaf/instance/resources/bin/karaf
index 8967cea..8027492 100644
--- a/instance/src/main/resources/org/apache/karaf/instance/resources/bin/karaf
+++ b/instance/src/main/resources/org/apache/karaf/instance/resources/bin/karaf
@@ -22,4 +22,4 @@ KARAF_HOME=${SUBST-KARAF-HOME}
KARAF_BASE=${SUBST-KARAF-BASE}
export KARAF_BASE
-exec ${KARAF_HOME}/bin/karaf "$*"
+exec "${KARAF_HOME}/bin/karaf" "$*"
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/instance/src/main/resources/org/apache/karaf/instance/resources/bin/start
----------------------------------------------------------------------
diff --git a/instance/src/main/resources/org/apache/karaf/instance/resources/bin/start b/instance/src/main/resources/org/apache/karaf/instance/resources/bin/start
index d45d749..80d11a5 100644
--- a/instance/src/main/resources/org/apache/karaf/instance/resources/bin/start
+++ b/instance/src/main/resources/org/apache/karaf/instance/resources/bin/start
@@ -21,5 +21,5 @@
KARAF_HOME=${SUBST-KARAF-HOME}
KARAF_NAME=${SUBST-KARAF-NAME}
-exec ${KARAF_HOME}/bin/instance start ${KARAF_NAME} "$@"
+exec "${KARAF_HOME}/bin/instance" start "${KARAF_NAME}" "$@"
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/instance/src/main/resources/org/apache/karaf/instance/resources/bin/stop
----------------------------------------------------------------------
diff --git a/instance/src/main/resources/org/apache/karaf/instance/resources/bin/stop b/instance/src/main/resources/org/apache/karaf/instance/resources/bin/stop
index fb91985..3e89663 100644
--- a/instance/src/main/resources/org/apache/karaf/instance/resources/bin/stop
+++ b/instance/src/main/resources/org/apache/karaf/instance/resources/bin/stop
@@ -21,5 +21,5 @@
KARAF_HOME=${SUBST-KARAF-HOME}
KARAF_NAME=${SUBST-KARAF-NAME}
-exec ${KARAF_HOME}/bin/instance stop ${KARAF_NAME} "$@"
+exec "${KARAF_HOME}/bin/instance" stop "${KARAF_NAME}" "$@"
[2/2] karaf git commit: [KARAF-4852] Improve unix shell scripts
Posted by gn...@apache.org.
[KARAF-4852] Improve unix shell scripts
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/d7a2185a
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/d7a2185a
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/d7a2185a
Branch: refs/heads/master
Commit: d7a2185a7c73a06dbe1dfd58528bf854d264f496
Parents: 406c6f0
Author: Guillaume Nodet <gn...@apache.org>
Authored: Wed Dec 7 13:28:45 2016 +0100
Committer: Guillaume Nodet <gn...@apache.org>
Committed: Wed Dec 7 15:57:56 2016 +0100
----------------------------------------------------------------------
.../filtered-resources/resources/bin/client | 282 +--------
.../filtered-resources/resources/bin/instance | 316 ++--------
.../main/filtered-resources/resources/bin/karaf | 303 ++++++++++
.../filtered-resources/resources/bin/karaf.bat | 428 ++++++++++++++
.../filtered-resources/resources/bin/setenv | 2 +-
.../main/filtered-resources/resources/bin/shell | 317 ++--------
.../main/filtered-resources/resources/bin/start | 146 +----
.../filtered-resources/resources/bin/status | 129 +----
.../main/filtered-resources/resources/bin/stop | 129 +----
.../base/src/main/resources/resources/bin/karaf | 574 -------------------
.../src/main/resources/resources/bin/karaf.bat | 428 --------------
.../apache/karaf/instance/resources/bin/karaf | 2 +-
.../apache/karaf/instance/resources/bin/start | 2 +-
.../apache/karaf/instance/resources/bin/stop | 2 +-
14 files changed, 889 insertions(+), 2171 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/assemblies/features/base/src/main/filtered-resources/resources/bin/client
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/client b/assemblies/features/base/src/main/filtered-resources/resources/bin/client
index 9f61925..b60dc4f 100755
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/client
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/client
@@ -18,14 +18,15 @@
realpath() {
OURPWD=${PWD}
- cd "$(dirname "${1}")"
- LINK=$(readlink "$(basename "${1}")")
+ cd "$(dirname "${1}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
while [ "${LINK}" ]; do
- cd "$(dirname "${LINK}")"
- LINK=$(readlink "$(basename "${1}")")
+ echo "link: ${LINK}" >&2
+ cd "$(dirname "${LINK}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
done
REALPATH="${PWD}/$(basename "${1}")"
- cd "${OURPWD}"
+ cd "${OURPWD}" || exit 2
echo "${REALPATH}"
}
@@ -34,247 +35,25 @@ DIRNAME=$(dirname "${REALNAME}")
PROGNAME=$(basename "${REALNAME}")
#
-# Sourcing environment settings for karaf similar to tomcats setenv
+# Load common functions
#
-KARAF_SCRIPT="client"
-export KARAF_SCRIPT
-if [ -f "$DIRNAME/setenv" ]; then
- . "$DIRNAME/setenv"
-fi
+. "${DIRNAME}/inc"
#
-# Check/Set up some easily accessible MIN/MAX params for JVM mem usage
+# Sourcing environment settings for karaf similar to tomcats setenv
#
-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
+KARAF_SCRIPT="${PROGNAME}"
+export KARAF_SCRIPT
+if [ -f "${DIRNAME}/setenv" ]; then
+ . "${DIRNAME}/setenv"
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
- warn "Ignoring predefined value for KARAF_HOME"
- fi
-
- # In POSIX shells, CDPATH may cause cd to write to stdout
- (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
- KARAF_HOME=`cd "$DIRNAME/.."; pwd`
- 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() {
- 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
- bas=`basename "${dst}"`
- 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"
-}
-
-setupDefaults() {
- DEFAULT_JAVA_OPTS="-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM "
-
- #Set the JVM_VENDOR specific JVM flags
- if [ "$JVM_VENDOR" = "SUN" ]; then
- # permgen was removed in Java 8
- 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'`
- if [ "$VERSION" -lt "80" ]; 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
- 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
-
+setupClassPath() {
# Add the jars in the lib dir
- CLASSPATH="$KARAF_HOME/system/org/apache/karaf/org.apache.karaf.client/@@project.version@@/org.apache.karaf.client-@@project.version@@.jar"
- CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/apache/sshd/sshd-core/@@sshd.version@@/sshd-core-@@sshd.version@@.jar"
- CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/jline/jline/@@jline.version@@/jline-@@jline.version@@.jar"
- CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/slf4j/slf4j-api/@@slf4j.version@@/slf4j-api-@@slf4j.version@@.jar"
-
+ CLASSPATH="${KARAF_HOME}/system/org/apache/karaf/org.apache.karaf.client/@@project.version@@/org.apache.karaf.client-@@project.version@@.jar"
+ CLASSPATH="${CLASSPATH}:${KARAF_HOME}/system/org/apache/sshd/sshd-core/@@sshd.version@@/sshd-core-@@sshd.version@@.jar"
+ CLASSPATH="${CLASSPATH}:${KARAF_HOME}/system/org/jline/jline/@@jline.version@@/jline-@@jline.version@@.jar"
+ CLASSPATH="${CLASSPATH}:${KARAF_HOME}/system/org/slf4j/slf4j-api/@@slf4j.version@@/slf4j-api-@@slf4j.version@@.jar"
}
init() {
@@ -308,21 +87,22 @@ init() {
# Setup default options
setupDefaults
+ # Setup classpath
+ setupClassPath
}
run() {
-
- 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"`
- if [ ! -z "$CLASSPATH" ]; then
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
- fi
- fi
-
- exec "$JAVA" $JAVA_OPTS -Dkaraf.instances="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -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" org.apache.karaf.client.Main "$@"
+ convertPaths
+ exec "${JAVA}" ${JAVA_OPTS} \
+ -Dkaraf.instances="${KARAF_HOME}/instances" \
+ -Dkaraf.home="${KARAF_HOME}" \
+ -Dkaraf.base="${KARAF_BASE}" \
+ -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}" \
+ org.apache.karaf.client.Main "$@"
}
main() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/assemblies/features/base/src/main/filtered-resources/resources/bin/instance
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/instance b/assemblies/features/base/src/main/filtered-resources/resources/bin/instance
index 94126db..f2c1d83 100755
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/instance
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/instance
@@ -18,14 +18,15 @@
realpath() {
OURPWD=${PWD}
- cd "$(dirname "${1}")"
- LINK=$(readlink "$(basename "${1}")")
+ cd "$(dirname "${1}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
while [ "${LINK}" ]; do
- cd "$(dirname "${LINK}")"
- LINK=$(readlink "$(basename "${1}")")
+ echo "link: ${LINK}" >&2
+ cd "$(dirname "${LINK}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
done
REALPATH="${PWD}/$(basename "${1}")"
- cd "${OURPWD}"
+ cd "${OURPWD}" || exit 2
echo "${REALPATH}"
}
@@ -34,280 +35,25 @@ DIRNAME=$(dirname "${REALNAME}")
PROGNAME=$(basename "${REALNAME}")
#
-# Sourcing environment settings for karaf similar to tomcats setenv
+# Load common functions
#
-KARAF_SCRIPT="instance"
-export KARAF_SCRIPT
-if [ -f "$DIRNAME/setenv" ]; then
- . "$DIRNAME/setenv"
-fi
+. "${DIRNAME}/inc"
#
-# Check/Set up some easily accessible MIN/MAX params for JVM mem usage
+# Sourcing environment settings for karaf similar to tomcats setenv
#
-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
+KARAF_SCRIPT="${PROGNAME}"
+export KARAF_SCRIPT
+if [ -f "${DIRNAME}/setenv" ]; then
+ . "${DIRNAME}/setenv"
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
- warn "Ignoring predefined value for KARAF_HOME"
- fi
-
- # In POSIX shells, CDPATH may cause cd to write to stdout
- (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
- KARAF_HOME=`cd "$DIRNAME/.."; pwd`
- 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() {
- 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
- bas=`basename "${dst}"`
- 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"
-}
-
-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
- # 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 "
-
- #Set the JVM_VENDOR specific JVM flags
- if [ "$JVM_VENDOR" = "SUN" ]; then
- # permgen was removed in Java 8
- 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'`
- if [ "$VERSION" -lt "80" ]; 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
- 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
-
+setupClassPath() {
# Setup classpath
- CLASSPATH="$KARAF_HOME/system/org/apache/karaf/instance/org.apache.karaf.instance.core/@@project.version@@/org.apache.karaf.instance.core-@@project.version@@.jar"
- CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/apache/karaf/shell/org.apache.karaf.shell.core/@@project.version@@/org.apache.karaf.shell.core-@@project.version@@.jar"
- CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/ops4j/pax/logging/pax-logging-api/@@pax.logging.version@@/pax-logging-api-@@pax.logging.version@@.jar"
- CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/jline/jline/@@jline.version@@/jline-@@jline.version@@.jar"
-
- 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"
+ CLASSPATH="${KARAF_HOME}/system/org/apache/karaf/instance/org.apache.karaf.instance.core/@@project.version@@/org.apache.karaf.instance.core-@@project.version@@.jar"
+ CLASSPATH="${CLASSPATH}:${KARAF_HOME}/system/org/apache/karaf/shell/org.apache.karaf.shell.core/@@project.version@@/org.apache.karaf.shell.core-@@project.version@@.jar"
+ CLASSPATH="${CLASSPATH}:${KARAF_HOME}/system/org/ops4j/pax/logging/pax-logging-api/@@pax.logging.version@@/pax-logging-api-@@pax.logging.version@@.jar"
+ CLASSPATH="${CLASSPATH}:${KARAF_HOME}/system/org/jline/jline/@@jline.version@@/jline-@@jline.version@@.jar"
}
init() {
@@ -341,24 +87,26 @@ init() {
# Setup default options
setupDefaults
+ # Setup classpath
+ setupClassPath
+
# Install debug options
setupDebugOptions
}
run() {
-
- 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"`
- if [ ! -z "$CLASSPATH" ]; then
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
- fi
- fi
-
- exec "$JAVA" $JAVA_OPTS -Dkaraf.instances="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -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" org.apache.karaf.instance.main.Execute "$@"
+ convertPaths
+ exec "${JAVA}" ${JAVA_OPTS} \
+ -Dkaraf.instances="${KARAF_HOME}/instances" \
+ -Dkaraf.home="${KARAF_HOME}" \
+ -Dkaraf.base="${KARAF_BASE}" \
+ -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}" \
+ org.apache.karaf.instance.main.Execute "$@"
}
main() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/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
new file mode 100755
index 0000000..be08741
--- /dev/null
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf
@@ -0,0 +1,303 @@
+#!/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.
+#
+
+realpath() {
+ OURPWD=${PWD}
+ cd "$(dirname "${1}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
+ while [ "${LINK}" ]; do
+ echo "link: ${LINK}" >&2
+ cd "$(dirname "${LINK}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
+ done
+ REALPATH="${PWD}/$(basename "${1}")"
+ cd "${OURPWD}" || exit 2
+ echo "${REALPATH}"
+}
+
+REALNAME=$(realpath "$0")
+DIRNAME=$(dirname "${REALNAME}")
+PROGNAME=$(basename "${REALNAME}")
+
+#
+# Load common functions
+#
+. "${DIRNAME}/inc"
+
+#
+# Sourcing environment settings for karaf similar to tomcats setenv
+#
+KARAF_SCRIPT="${PROGNAME}"
+export KARAF_SCRIPT
+if [ -f "${DIRNAME}/setenv" ]; then
+ . "${DIRNAME}/setenv"
+fi
+
+forceNoRoot() {
+ # If configured, prevent execution as root
+ if [ "${KARAF_NOROOT}" ] && [ "$(id -u)" -eq 0 ]; then
+ die "Do not run as root!"
+ fi
+}
+
+setupClassPath() {
+ # 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
+}
+
+checkRootInstance() {
+ ROOT_INSTANCE_RUNNING=false
+ if [ -f "${KARAF_HOME}/instances/instance.properties" ];
+ then
+ ROOT_INSTANCE_PID=$(sed -n -e '/item.0.pid/ s/.*\= *//p' "${KARAF_HOME}/instances/instance.properties")
+ ROOT_INSTANCE_NAME=$(sed -n -e '/item.0.name/ s/.*\= *//p' "${KARAF_HOME}/instances/instance.properties")
+ if [ "${ROOT_INSTANCE_PID}" -ne "0" ]; then
+ if ps p "${ROOT_INSTANCE_PID}" > /dev/null
+ then
+ ROOT_INSTANCE_RUNNING=true
+ fi
+ fi
+ fi
+}
+
+init() {
+ # Prevent root execution if configured
+ forceNoRoot
+
+ # 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
+
+ # Check if a root instance is already running
+ checkRootInstance
+
+ # Setup default options
+ setupDefaults
+
+ # Setup classpath
+ setupClassPath
+
+ # Install debug options
+ setupDebugOptions
+
+}
+
+run() {
+ OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=true"
+ MAIN=org.apache.karaf.main.Main
+ CHECK_ROOT_INSTANCE_RUNNING=true
+ 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
+ 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
+ convertPaths
+ cd "${KARAF_BASE}" || exit 2
+
+ if [ -z "${KARAF_EXEC}" ]; then
+ KARAF_EXEC=""
+ fi
+
+ debug=false
+ nodebug=false
+ while [ "${1}" != "" ]; do
+ case "${1}" in
+ 'clean')
+ rm -rf "${KARAF_DATA:?}"
+ shift
+ ;;
+ 'debug')
+ debug=true
+ shift
+ ;;
+ 'status')
+ MAIN=org.apache.karaf.main.Status
+ CHECK_ROOT_INSTANCE_RUNNING=false
+ nodebug=true
+ shift
+ ;;
+ 'stop')
+ MAIN=org.apache.karaf.main.Stop
+ CHECK_ROOT_INSTANCE_RUNNING=false
+ nodebug=true
+ shift
+ ;;
+ 'console')
+ CHECK_ROOT_INSTANCE_RUNNING=false
+ shift
+ ;;
+ 'server')
+ OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true"
+ shift
+ ;;
+ 'run')
+ OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Dkaraf.log.console=ALL"
+ shift
+ ;;
+ 'daemon')
+ OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true"
+ KARAF_DAEMON="true"
+ KARAF_EXEC="exec"
+ shift
+ ;;
+ 'client')
+ OPTS="-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false"
+ CHECK_ROOT_INSTANCE_RUNNING=false
+ nodebug=true
+ shift
+ ;;
+ 'classpath')
+ echo "Classpath: ${CLASSPATH}"
+ shift
+ ;;
+ *)
+ break
+ ;;
+ esac
+ done
+
+ if [ ${debug} ] && [ ! ${nodebug} ]; then
+ if [ "x${JAVA_DEBUG_OPTS}" = "x" ]; then
+ JAVA_DEBUG_OPTS="${DEFAULT_JAVA_DEBUG_OPTS}"
+ fi
+ JAVA_OPTS="${JAVA_DEBUG_OPTS} ${JAVA_OPTS}"
+ fi
+
+ while true; do
+ # When users want to update the lib version of, they just need to create
+ # a lib.next directory and on the new restart, it will replace the current lib directory.
+ if [ -d "${KARAF_HOME:?}/lib.next" ] ; then
+ echo "Updating libs..."
+ rm -rf "${KARAF_HOME:?}/lib"
+ mv -f "${KARAF_HOME:?}/lib.next" "${KARAF_HOME}/lib"
+ fi
+
+ # Ensure the log directory exists
+ # We may need to have a place to redirect stdout/stderr
+ if [ ! -d "${KARAF_DATA}/log" ]; then
+ mkdir -p "${KARAF_DATA}/log"
+ fi
+ if [ ! -d "${KARAF_DATA}/tmp" ]; then
+ mkdir -p "${KARAF_DATA}/tmp"
+ fi
+
+ if [ "${ROOT_INSTANCE_RUNNING}" = "false" ] || [ "${CHECK_ROOT_INSTANCE_RUNNING}" = "false" ] ; then
+ if [ "${VERSION}" -gt "80" ]; then
+ ${KARAF_EXEC} "${JAVA}" ${JAVA_OPTS} \
+ --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED \
+ --add-exports=java.base/sun.net.www.protocol.https=ALL-UNNAMED \
+ --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED \
+ --add-exports=java.xml.bind/com.sun.xml.internal.bind.v2.runtime=ALL-UNNAMED \
+ --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED \
+ --add-exports=jdk.naming.rmi/com.sun.jndi.url.rmi=ALL-UNNAMED \
+ --add-modules java.annotations.common,java.corba,java.transaction,java.xml.bind,java.xml.ws \
+ -Dkaraf.instances="${KARAF_HOME}/instances" \
+ -Dkaraf.home="${KARAF_HOME}" \
+ -Dkaraf.base="${KARAF_BASE}" \
+ -Dkaraf.data="${KARAF_DATA}" \
+ -Dkaraf.etc="${KARAF_ETC}" \
+ -Dkaraf.restart.jvm.supported=true \
+ -Djava.io.tmpdir="${KARAF_DATA}/tmp" \
+ -Djava.util.logging.config.file="${KARAF_BASE}/etc/java.util.logging.properties" \
+ ${KARAF_SYSTEM_OPTS} \
+ ${KARAF_OPTS} \
+ ${OPTS} \
+ -classpath "${CLASSPATH}" \
+ ${MAIN} "$@"
+ else
+ ${KARAF_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}" \
+ -Dkaraf.restart.jvm.supported=true \
+ -Djava.io.tmpdir="${KARAF_DATA}/tmp" \
+ -Djava.util.logging.config.file="${KARAF_BASE}/etc/java.util.logging.properties" \
+ ${KARAF_SYSTEM_OPTS} \
+ ${KARAF_OPTS} \
+ ${OPTS} \
+ -classpath "${CLASSPATH}" \
+ ${MAIN} "$@"
+ fi
+ else
+ die "There is a Root instance already running with name ${ROOT_INSTANCE_NAME} and pid ${ROOT_INSTANCE_PID}"
+ fi
+
+ KARAF_RC=$?
+ if [ ${KARAF_DAEMON} ] ; then
+ exit ${KARAF_RC}
+ else
+ if [ "${KARAF_RC}" -eq 10 ]; then
+ echo "Restarting JVM..."
+ else
+ exit ${KARAF_RC}
+ fi
+ fi
+ done
+}
+
+nothing() {
+ # nothing to do here
+ a=a
+}
+
+main() {
+ init
+ trap 'nothing' TSTP
+ run "$@"
+}
+
+main "$@"
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/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
new file mode 100644
index 0000000..fec2f30
--- /dev/null
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/karaf.bat
@@ -0,0 +1,428 @@
+@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%"
+ call :warn Creating %KARAF_DATA%
+ mkdir %KARAF_DATA%
+ )
+)
+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
+
+:CheckRootInstance
+ set ROOT_INSTANCE_RUNNING=false
+ if exist "%KARAF_HOME%\instances\instance.properties" (
+ for /f "delims=" %%x in ( 'findstr "item.0.pid" "%KARAF_HOME%\instances\instance.properties" ' ) do @set pid=%%x
+ for /f "delims=" %%i in ( 'findstr "item.0.name" "%KARAF_HOME%\instances\instance.properties" ' ) do @set name=%%i
+ )
+ set ROOT_INSTANCE_PID=%pid:~13%
+
+ set ROOT_INSTANCE_NAME=%name:~14%
+ SET CHECK_RUNNING_CONDITION=true
+ if "%ROOT_INSTANCE_PID%" == "~13" SET CHECK_RUNNING_CONDITION=false
+ if "%ROOT_INSTANCE_PID%" == "0" SET CHECK_RUNNING_CONDITION=false
+ if "%CHECK_RUNNING_CONDITION%" == "true" (
+ tasklist /fi "PID eq %ROOT_INSTANCE_PID%" | find ":" > NUL
+ if errorlevel 1 set ROOT_INSTANCE_RUNNING=true
+ )
+
+
+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% -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
+ if "%1" == "status" 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
+
+SET CHECK_ROOT_INSTANCE_RUNNING=true
+
+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" == "run" goto :EXECUTE_RUN
+ if "%1" == "daemon" goto :EXECUTE_DAEMON
+ 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
+ SET CHECK_ROOT_INSTANCE_RUNNING=false
+ shift
+ goto :RUN_LOOP
+
+:EXECUTE_STATUS
+ SET MAIN=org.apache.karaf.main.Status
+ SET CHECK_ROOT_INSTANCE_RUNNING=false
+ shift
+ goto :RUN_LOOP
+
+:EXECUTE_CONSOLE
+ SET CHECK_ROOT_INSTANCE_RUNNING=false
+ shift
+ goto :RUN_LOOP
+
+:EXECUTE_SERVER
+ SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
+ shift
+ goto :RUN_LOOP
+
+:EXECUTE_RUN
+ SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true -Dkaraf.log.console=ALL
+ shift
+ goto :RUN_LOOP
+
+:EXECUTE_DAEMON
+ SET OPTS=-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true
+ SET KARAF_DAEMON=true
+ shift
+ goto :RUN_LOOP
+
+:EXECUTE_CLIENT
+ SET OPTS=-Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false
+ SET CHECK_ROOT_INSTANCE_RUNNING=false
+ shift
+ goto :RUN_LOOP
+
+:EXECUTE_CLEAN
+ pushd "%KARAF_DATA%" && (rmdir /S /Q "%KARAF_DATA%" 2>nul & popd)
+ 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%"
+
+ rem When users want to update the lib version of, they just need to create
+ rem a lib.next directory and on the new restart, it will replace the current lib directory.
+ if exist "%KARAF_HOME%\lib.next" (
+ echo Updating libs...
+ RD /S /Q "%KARAF_HOME%\lib"
+ MOVE /Y "%KARAF_HOME%\lib.next" "%KARAF_HOME%\lib"
+ )
+
+ SET IS_RUNNABLE=false
+ if "%ROOT_INSTANCE_RUNNING%" == "false" SET IS_RUNNABLE=true
+ if "%CHECK_ROOT_INSTANCE_RUNNING%" == "false" SET IS_RUNNABLE=true
+ if "%IS_RUNNABLE%" == "true" (
+ "%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%" ^
+ -Dkaraf.restart.jvm.supported=true ^
+ -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%
+ ) else (
+ echo There is a Root instance already running with name %ROOT_INSTANCE_NAME% and pid %ROOT_INSTANCE_PID%
+ goto :END
+ )
+
+ rem If KARAF_DAEMON is defined, auto-restart is bypassed and control given
+ rem back to the operating system
+ if defined "%KARAF_DAEMON%" (
+ rem If Karaf has been started by winsw, the process can be restarted
+ rem by executing KARAF_DAEMON% restart!
+ rem https://github.com/kohsuke/winsw#restarting-service-from-itself
+ if defined "%WINSW_EXECUTABLE%" (
+ if ERRORLEVEL 10 (
+ echo Restarting ...
+ %KARAF_DAEMON% restart!
+ )
+ ) else (
+ if ERRORLEVEL 10 (
+ echo Restarting JVM...
+ goto EXECUTE
+ )
+ )
+ )
+
+rem # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+:END
+
+endlocal
+
+if not "%PAUSE%" == "" pause
+
+:END_NO_PAUSE
+ EXIT /B %ERRORLEVEL%
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/assemblies/features/base/src/main/filtered-resources/resources/bin/setenv
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/setenv b/assemblies/features/base/src/main/filtered-resources/resources/bin/setenv
index edacd0b..7ea9f69 100755
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/setenv
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/setenv
@@ -20,7 +20,7 @@
# handle specific scripts; the SCRIPT_NAME is exactly the name of the Karaf
# script: client, instance, shell, start, status, stop, karaf
#
-# if [ "$KARAF_SCRIPT" == "SCRIPT_NAME" ]; then
+# if [ "${KARAF_SCRIPT}" == "SCRIPT_NAME" ]; then
# Actions go here...
# fi
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/assemblies/features/base/src/main/filtered-resources/resources/bin/shell
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/shell b/assemblies/features/base/src/main/filtered-resources/resources/bin/shell
index b65e80b..1b39fe9 100755
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/shell
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/shell
@@ -18,14 +18,15 @@
realpath() {
OURPWD=${PWD}
- cd "$(dirname "${1}")"
- LINK=$(readlink "$(basename "${1}")")
+ cd "$(dirname "${1}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
while [ "${LINK}" ]; do
- cd "$(dirname "${LINK}")"
- LINK=$(readlink "$(basename "${1}")")
+ echo "link: ${LINK}" >&2
+ cd "$(dirname "${LINK}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
done
REALPATH="${PWD}/$(basename "${1}")"
- cd "${OURPWD}"
+ cd "${OURPWD}" || exit 2
echo "${REALPATH}"
}
@@ -34,279 +35,24 @@ DIRNAME=$(dirname "${REALNAME}")
PROGNAME=$(basename "${REALNAME}")
#
-# Sourcing environment settings for karaf similar to tomcats setenv
+# Load common functions
#
-KARAF_SCRIPT="shell"
-export KARAF_SCRIPT
-if [ -f "$DIRNAME/setenv" ]; then
- . "$DIRNAME/setenv"
-fi
+. "${DIRNAME}/inc"
#
-# Check/Set up some easily accessible MIN/MAX params for JVM mem usage
+# Sourcing environment settings for karaf similar to tomcats setenv
#
-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
+KARAF_SCRIPT="${PROGNAME}"
+export KARAF_SCRIPT
+if [ -f "${DIRNAME}/setenv" ]; then
+ . "${DIRNAME}/setenv"
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
- warn "Ignoring predefined value for KARAF_HOME"
- fi
-
- # In POSIX shells, CDPATH may cause cd to write to stdout
- (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
- KARAF_HOME=`cd "$DIRNAME/.."; pwd`
- 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() {
- 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
- bas=`basename "${dst}"`
- 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=/System/Library/Frameworks/JavaVM.framework/Home
- 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"
-}
-
-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
- # 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 "
-
- #Set the JVM_VENDOR specific JVM flags
- if [ "$JVM_VENDOR" = "SUN" ]; then
- # permgen was removed in Java 8
- 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'`
- if [ "$VERSION" -lt "80" ]; 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
- 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
-
+setupClassPath() {
# Setup classpath
- CLASSPATH="$KARAF_HOME/system/org/apache/karaf/shell/org.apache.karaf.shell.core/@@project.version@@/org.apache.karaf.shell.core-@@project.version@@.jar"
- CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/ops4j/pax/logging/pax-logging-api/@@pax.logging.version@@/pax-logging-api-@@pax.logging.version@@.jar"
- CLASSPATH="$CLASSPATH:$KARAF_HOME/system/org/jline/jline/@@jline.version@@/jline-@@jline.version@@.jar"
-
- 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"
+ CLASSPATH="${KARAF_HOME}/system/org/apache/karaf/shell/org.apache.karaf.shell.core/@@project.version@@/org.apache.karaf.shell.core-@@project.version@@.jar"
+ CLASSPATH="${CLASSPATH}:${KARAF_HOME}/system/org/ops4j/pax/logging/pax-logging-api/@@pax.logging.version@@/pax-logging-api-@@pax.logging.version@@.jar"
+ CLASSPATH="${CLASSPATH}:${KARAF_HOME}/system/org/jline/jline/@@jline.version@@/jline-@@jline.version@@.jar"
}
init() {
@@ -340,24 +86,27 @@ init() {
# Setup default options
setupDefaults
+ # Setup classpath
+ setupClassPath
+
# Install debug options
setupDebugOptions
-
}
run() {
-
- 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"`
- if [ ! -z "$CLASSPATH" ]; then
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
- fi
- fi
-
- exec "$JAVA" $JAVA_OPTS -Dkaraf.instances="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Dkaraf.etc="$KARAF_ETC" -Dkaraf.data="$KARAF_DATA" -Djava.io.tmpdir="$KARAF_DATA/tmp" -Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" $KARAF_OPTS $OPTS -classpath "$CLASSPATH" org.apache.karaf.shell.impl.console.standalone.Main --classpath="$KARAF_HOME/system" "$@"
+ convertPaths
+ exec "${JAVA}" ${JAVA_OPTS} \
+ -Dkaraf.instances="${KARAF_HOME}/instances" \
+ -Dkaraf.home="${KARAF_HOME}" \
+ -Dkaraf.base="${KARAF_BASE}" \
+ -Dkaraf.etc="${KARAF_ETC}" \
+ -Dkaraf.data="${KARAF_DATA}" \
+ -Djava.io.tmpdir="${KARAF_DATA}/tmp" \
+ -Djava.util.logging.config.file="${KARAF_BASE}/etc/java.util.logging.properties" \
+ ${KARAF_OPTS} \
+ ${OPTS} \
+ -classpath "${CLASSPATH}" \
+ org.apache.karaf.shell.impl.console.standalone.Main "$@"
}
main() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/assemblies/features/base/src/main/filtered-resources/resources/bin/start
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/start b/assemblies/features/base/src/main/filtered-resources/resources/bin/start
index b700006..19fd11b 100755
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/start
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/start
@@ -18,14 +18,15 @@
realpath() {
OURPWD=${PWD}
- cd "$(dirname "${1}")"
- LINK=$(readlink "$(basename "${1}")")
+ cd "$(dirname "${1}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
while [ "${LINK}" ]; do
- cd "$(dirname "${LINK}")"
- LINK=$(readlink "$(basename "${1}")")
+ echo "link: ${LINK}" >&2
+ cd "$(dirname "${LINK}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
done
REALPATH="${PWD}/$(basename "${1}")"
- cd "${OURPWD}"
+ cd "${OURPWD}" || exit 2
echo "${REALPATH}"
}
@@ -34,137 +35,38 @@ DIRNAME=$(dirname "${REALNAME}")
PROGNAME=$(basename "${REALNAME}")
#
-# Sourcing environment settings for karaf similar to tomcats setenv
+# Load common functions
#
-KARAF_SCRIPT="start"
+. "${DIRNAME}/inc"
+
+#
+# Sourcing environment settings for karaf similar to tomcats setenv
+#
+KARAF_SCRIPT="${PROGNAME}"
export KARAF_SCRIPT
-if [ -f "$DIRNAME/setenv" ]; then
- . "$DIRNAME/setenv"
+if [ -f "${DIRNAME}/setenv" ]; then
+ . "${DIRNAME}/setenv"
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
-}
-
-locateHome() {
- if [ "x$KARAF_HOME" != "x" ]; then
- warn "Ignoring predefined value for KARAF_HOME"
- fi
-
- # In POSIX shells, CDPATH may cause cd to write to stdout
- (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
- KARAF_HOME=`cd $DIRNAME/..; pwd`
- 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
-}
-
-enableRedirect() {
- if [ "x$KARAF_REDIRECT" != "x" ]; then
- warn "Redirecting Karaf output to $KARAF_REDIRECT"
- else
- KARAF_REDIRECT="/dev/null"
- fi
-}
-
init() {
# Determine if there is special OS handling we must perform
detectOS
# Locate the Karaf home directory
locateHome
-
- # Locate the Karaf base directory
- locateBase
-
- # Locate the Karaf data directory
- locateData
-
- # Locate the Karaf etc directory
- locateEtc
-
- # Enable or not the Karaf output redirection
- enableRedirect
}
run() {
- 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"`
- if [ ! -z "$CLASSPATH" ]; then
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
- fi
- fi
- # Ensure the log directory exists -- we need to have a place to redirect stdout/stderr
- if [ ! -d "$KARAF_DATA/log" ]; then
- mkdir -p "$KARAF_DATA/log"
+ convertPaths
+
+ # Enable redirect
+ if [ "x${KARAF_REDIRECT}" != "x" ]; then
+ warn "Redirecting Karaf output to ${KARAF_REDIRECT}"
+ else
+ KARAF_REDIRECT="/dev/null"
fi
- exec "$KARAF_HOME"/bin/karaf server "$@" >> "$KARAF_REDIRECT" 2>&1 &
+
+ exec "${KARAF_HOME}/bin/karaf" server "$@" >> "${KARAF_REDIRECT}" 2>&1 &
}
main() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/assemblies/features/base/src/main/filtered-resources/resources/bin/status
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/status b/assemblies/features/base/src/main/filtered-resources/resources/bin/status
index 31e9e17..4f6ea5b 100755
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/status
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/status
@@ -18,14 +18,15 @@
realpath() {
OURPWD=${PWD}
- cd "$(dirname "${1}")"
- LINK=$(readlink "$(basename "${1}")")
+ cd "$(dirname "${1}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
while [ "${LINK}" ]; do
- cd "$(dirname "${LINK}")"
- LINK=$(readlink "$(basename "${1}")")
+ echo "link: ${LINK}" >&2
+ cd "$(dirname "${LINK}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
done
REALPATH="${PWD}/$(basename "${1}")"
- cd "${OURPWD}"
+ cd "${OURPWD}" || exit 2
echo "${REALPATH}"
}
@@ -34,126 +35,30 @@ DIRNAME=$(dirname "${REALNAME}")
PROGNAME=$(basename "${REALNAME}")
#
-# Sourcing environment settings for karaf similar to tomcats setenv
+# Load common functions
#
-KARAF_SCRIPT="status"
+. "${DIRNAME}/inc"
+
+#
+# Sourcing environment settings for karaf similar to tomcats setenv
+#
+KARAF_SCRIPT="${PROGNAME}"
export KARAF_SCRIPT
-if [ -f "$DIRNAME/setenv" ]; then
- . "$DIRNAME/setenv"
+if [ -f "${DIRNAME}/setenv" ]; then
+ . "${DIRNAME}/setenv"
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
-}
-
-locateHome() {
- if [ "x$KARAF_HOME" != "x" ]; then
- warn "Ignoring predefined value for KARAF_HOME"
- fi
-
- # In POSIX shells, CDPATH may cause cd to write to stdout
- (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
- KARAF_HOME=`cd $DIRNAME/..; pwd`
- 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
-}
-
init() {
# Determine if there is special OS handling we must perform
detectOS
# Locate the Karaf home directory
locateHome
-
- # Locate the Karaf base directory
- locateBase
-
- # Locate the Karaf data directory
- locateData
-
- # Locate the Karaf etc directory
- locateEtc
}
run() {
- 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"`
- if [�! -z "$CLASSPATH" ]; then
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
- fi
- fi
- # Ensure the log directory exists -- we need to have a place to redirect stdout/stderr
- if [ ! -d "$KARAF_DATA/log" ]; then
- mkdir -p "$KARAF_DATA/log"
- fi
- exec "$KARAF_HOME"/bin/karaf status "$@"
+ convertPaths
+ exec "${KARAF_HOME}/bin/karaf" status "$@"
}
main() {
http://git-wip-us.apache.org/repos/asf/karaf/blob/d7a2185a/assemblies/features/base/src/main/filtered-resources/resources/bin/stop
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/stop b/assemblies/features/base/src/main/filtered-resources/resources/bin/stop
index 695884e..51b61d8 100755
--- a/assemblies/features/base/src/main/filtered-resources/resources/bin/stop
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/stop
@@ -18,14 +18,15 @@
realpath() {
OURPWD=${PWD}
- cd "$(dirname "${1}")"
- LINK=$(readlink "$(basename "${1}")")
+ cd "$(dirname "${1}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
while [ "${LINK}" ]; do
- cd "$(dirname "${LINK}")"
- LINK=$(readlink "$(basename "${1}")")
+ echo "link: ${LINK}" >&2
+ cd "$(dirname "${LINK}")" || exit 2
+ LINK=$(ls -l "$(basename "${1}")" | awk -F"-> " '{print $2}')
done
REALPATH="${PWD}/$(basename "${1}")"
- cd "${OURPWD}"
+ cd "${OURPWD}" || exit 2
echo "${REALPATH}"
}
@@ -34,126 +35,30 @@ DIRNAME=$(dirname "${REALNAME}")
PROGNAME=$(basename "${REALNAME}")
#
-# Sourcing environment settings for karaf similar to tomcats setenv
+# Load common functions
#
-KARAF_SCRIPT="stop"
+. "${DIRNAME}/inc"
+
+#
+# Sourcing environment settings for karaf similar to tomcats setenv
+#
+KARAF_SCRIPT="${PROGNAME}"
export KARAF_SCRIPT
-if [ -f "$DIRNAME/setenv" ]; then
- . "$DIRNAME/setenv"
+if [ -f "${DIRNAME}/setenv" ]; then
+ . "${DIRNAME}/setenv"
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
-}
-
-locateHome() {
- if [ "x$KARAF_HOME" != "x" ]; then
- warn "Ignoring predefined value for KARAF_HOME"
- fi
-
- # In POSIX shells, CDPATH may cause cd to write to stdout
- (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
- KARAF_HOME=`cd $DIRNAME/..; pwd`
- 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
-}
-
init() {
# Determine if there is special OS handling we must perform
detectOS
# Locate the Karaf home directory
locateHome
-
- # Locate the Karaf base directory
- locateBase
-
- # Locate the Karaf data directory
- locateData
-
- # Locat the Karaf etc directory
- locateEtc
}
run() {
- 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"`
- if [ ! -z "$CLASSPATH" ]; then
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
- fi
- fi
- # Ensure the log directory exists -- we need to have a place to redirect stdout/stderr
- if [ ! -d "$KARAF_DATA/log" ]; then
- mkdir -p "$KARAF_DATA/log"
- fi
- exec "$KARAF_HOME"/bin/karaf stop "$@"
+ convertPaths
+ exec "${KARAF_HOME}/bin/karaf" stop "$@"
}
main() {