Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 01953200BE8 for ; Thu, 8 Dec 2016 18:05:32 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 00181160B0A; Thu, 8 Dec 2016 17:05:32 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 226B9160B1F for ; Thu, 8 Dec 2016 18:05:30 +0100 (CET) Received: (qmail 27547 invoked by uid 500); 8 Dec 2016 17:05:30 -0000 Mailing-List: contact commits-help@karaf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@karaf.apache.org Delivered-To: mailing list commits@karaf.apache.org Received: (qmail 27524 invoked by uid 99); 8 Dec 2016 17:05:30 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Dec 2016 17:05:30 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 33043E7DE3; Thu, 8 Dec 2016 17:05:30 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: gnodet@apache.org To: commits@karaf.apache.org Date: Thu, 08 Dec 2016 17:05:30 -0000 Message-Id: <8b76dc5560424525997d88c654dcdd1a@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [1/2] karaf git commit: [KARAF-4852] Improve unix shell scripts archived-at: Thu, 08 Dec 2016 17:05:32 -0000 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 Authored: Thu Dec 8 18:05:00 2016 +0100 Committer: Guillaume Nodet 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