karaf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gno...@apache.org
Subject [1/2] karaf git commit: [KARAF-4852] Improve unix shell scripts
Date Thu, 08 Dec 2016 17:05:30 GMT
Repository: karaf
Updated Branches:
  refs/heads/master 0ee2e638f -> 7f66d6eb0


[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/7f66d6eb
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/7f66d6eb
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/7f66d6eb

Branch: refs/heads/master
Commit: 7f66d6eb0e13799a9af5199bcb017f91c75224f9
Parents: 604da25
Author: Guillaume Nodet <gnodet@apache.org>
Authored: Thu Dec 8 18:05:00 2016 +0100
Committer: Guillaume Nodet <gnodet@apache.org>
Committed: Thu Dec 8 18:05:25 2016 +0100

----------------------------------------------------------------------
 .../main/filtered-resources/resources/bin/inc   | 319 +++++++++++++++++++
 1 file changed, 319 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/7f66d6eb/assemblies/features/base/src/main/filtered-resources/resources/bin/inc
----------------------------------------------------------------------
diff --git a/assemblies/features/base/src/main/filtered-resources/resources/bin/inc b/assemblies/features/base/src/main/filtered-resources/resources/bin/inc
new file mode 100644
index 0000000..4453de3
--- /dev/null
+++ b/assemblies/features/base/src/main/filtered-resources/resources/bin/inc
@@ -0,0 +1,319 @@
+#!/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.
+#
+
+warn() {
+    echo "${PROGNAME}: $*"
+}
+
+die() {
+    warn "$*"
+    exit 1
+}
+
+detectOS() {
+    # OS specific support (must be 'true' or 'false').
+    cygwin=false;
+    mingw=false;
+    darwin=false;
+    aix=false;
+    os400=false;
+    case "$(uname)" in
+        CYGWIN*)
+            cygwin=true
+            ;;
+        MINGW*)
+            mingw=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
+        warn "Ignoring predefined value for KARAF_HOME"
+        unset KARAF_HOME
+    fi
+    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() {
+    # 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() {
+    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
+        die "JVM must be greater than 1.8"
+    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
+        # 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() {
+    #
+    # 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
+
+    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
+
+    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"
+}
+
+convertPaths() {
+    if $cygwin; then
+        if [ ! -z "${KARAF_HOME}" ]; then
+            KARAF_HOME=$(cygpath --path --windows "${KARAF_HOME}")
+        fi
+        if [ ! -z "${KARAF_BASE}" ]; then
+            KARAF_BASE=$(cygpath --path --windows "${KARAF_BASE}")
+        fi
+        if [ ! -z "${KARAF_DATA}" ]; then
+            KARAF_DATA=$(cygpath --path --windows "${KARAF_DATA}")
+        fi
+        if [ ! -z "${KARAF_ETC}" ]; then
+            KARAF_ETC=$(cygpath --path --windows "${KARAF_ETC}")
+        fi
+        if [ ! -z "${CLASSPATH}" ]; then
+            CLASSPATH=$(cygpath --path --windows "${CLASSPATH}")
+        fi
+    fi
+}
\ No newline at end of file


Mime
View raw message