#!/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. # # # 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 # Actions go here... # fi # # general settings which should be applied for all scripts go here; please keep # in mind that it is possible that scripts might be executed more than once, e.g. # in example of the start script where the start script is executed first and the # karaf script afterwards. # # # The following section shows the possible configuration options for the default # karaf scripts # # export JAVA_HOME # Location of Java installation # export JAVA_MIN_MEM # Minimum memory for the JVM # export JAVA_MAX_MEM # Maximum memory for the JVM # export JAVA_PERM_MEM # Minimum perm memory for the JVM # export JAVA_MAX_PERM_MEM # Maximum perm memory for the JVM # export EXTRA_JAVA_OPTS # Additional JVM options # export KARAF_HOME # Karaf home folder # export KARAF_DATA # Karaf data folder # export KARAF_BASE # Karaf base folder # export KARAF_ETC # Karaf etc folder # export KARAF_SYSTEM_OPTS # First citizen Karaf options # export KARAF_OPTS # Additional available Karaf options # export KARAF_DEBUG # Enable debug mode # export KARAF_REDIRECT # Enable/set the std/err redirection when using bin/start # export KARAF_NOROOT # Prevent execution as root if set to true # # Import openHAB 2 directory layout # . "$DIRNAME/oh2_dir_layout" # # Import Karaf shared functions # . "$DIRNAME/inc" # # set listen address for HTTP(S) server # if [ ! -z ${OPENHAB_HTTP_ADDRESS} ]; then HTTP_ADDRESS=${OPENHAB_HTTP_ADDRESS} else HTTP_ADDRESS=0.0.0.0 fi # # set ports for HTTP(S) server # if [ ! -z ${OPENHAB_HTTP_PORT} ]; then HTTP_PORT=${OPENHAB_HTTP_PORT} else HTTP_PORT=8080 fi if [ ! -z ${OPENHAB_HTTPS_PORT} ]; then HTTPS_PORT=${OPENHAB_HTTPS_PORT} else HTTPS_PORT=8443 fi # # set java options # export JAVA_OPTS="${JAVA_OPTS} -Dopenhab.home=${OPENHAB_HOME} -Dopenhab.conf=${OPENHAB_CONF} -Dopenhab.runtime=${OPENHAB_RUNTIME} -Dopenhab.userdata=${OPENHAB_USERDATA} -Dopenhab.logdir=${OPENHAB_LOGDIR} -Dfelix.cm.dir=${OPENHAB_USERDATA}/config -Djava.library.path=${OPENHAB_USERDATA}/tmp/lib -Djetty.host=${HTTP_ADDRESS} -Djetty.http.compliance=RFC2616 -Dorg.ops4j.pax.web.listening.addresses=${HTTP_ADDRESS} -Dorg.osgi.service.http.port=${HTTP_PORT} -Dorg.osgi.service.http.port.secure=${HTTPS_PORT}" # # set JVM options # ARCH=`uname -m` EXTRA_JAVA_OPTS_COMMON="-Djava.awt.headless=true" EXTRA_JAVA_OPTS_ARCH="" case "$ARCH" in *arm*) ;; *aarch*) ;; *) EXTRA_JAVA_OPTS_ARCH="-XX:+UseG1GC" ;; esac export EXTRA_JAVA_OPTS="${EXTRA_JAVA_OPTS_COMMON} ${EXTRA_JAVA_OPTS_ARCH} ${EXTRA_JAVA_OPTS}" # The functions below are modified from the Karaf inc script to set JAVA_HOME to a default value. # This avoids Karaf printing a warning message at startup. die() { # echo and exit, && command true delays the exit for systemd logging (workaround). echo "$*" && command true exit 1 } 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 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 } detectOS locateJava checkJvmVersion