1#!/bin/sh 2 3DIRNAME=`dirname "$0"` 4PROGNAME=`basename "$0"` 5GREP="grep" 6SERVER_OPTS="" 7 8. "$DIRNAME/common.sh" 9 10# Parsing incoming parameters 11while [ "$#" -gt 0 ] 12do 13 case "$1" in 14 -secmgr) 15 SECMGR="true" 16 ;; 17 -Djava.security.manager) 18 echo "ERROR: The use of -Djava.security.manager has been removed. Please use the -secmgr command line argument or SECMGR=true environment variable." 19 exit 1 20 ;; 21 --) 22 shift 23 break;; 24 *) 25 SERVER_OPTS="$SERVER_OPTS '$1'" 26 ;; 27 esac 28 shift 29done 30 31# Use the maximum available, or set MAX_FD != -1 to use that 32MAX_FD="maximum" 33 34# OS specific support (must be 'true' or 'false'). 35cygwin=false; 36darwin=false; 37linux=false; 38case "`uname`" in 39 CYGWIN*) 40 cygwin=true 41 ;; 42 43 Darwin*) 44 darwin=true 45 ;; 46 47 Linux) 48 linux=true 49 ;; 50esac 51 52# Read an optional running configuration file 53if [ "x$RUN_CONF" = "x" ]; then 54 RUN_CONF="$DIRNAME/appclient.conf" 55fi 56if [ -r "$RUN_CONF" ]; then 57 . "$RUN_CONF" 58fi 59 60# For Cygwin, ensure paths are in UNIX format before anything is touched 61if $cygwin ; then 62 [ -n "$JBOSS_HOME" ] && 63 JBOSS_HOME=`cygpath --unix "$JBOSS_HOME"` 64 [ -n "$JAVA_HOME" ] && 65 JAVA_HOME=`cygpath --unix "$JAVA_HOME"` 66 [ -n "$JAVAC_JAR" ] && 67 JAVAC_JAR=`cygpath --unix "$JAVAC_JAR"` 68fi 69 70# Setup JBOSS_HOME 71RESOLVED_JBOSS_HOME=`cd "$DIRNAME/.."; pwd` 72if [ "x$JBOSS_HOME" = "x" ]; then 73 # get the full path (without any relative bits) 74 JBOSS_HOME=$RESOLVED_JBOSS_HOME 75else 76 SANITIZED_JBOSS_HOME=`cd "$JBOSS_HOME"; pwd` 77 if [ "$RESOLVED_JBOSS_HOME" != "$SANITIZED_JBOSS_HOME" ]; then 78 echo "WARNING JBOSS_HOME may be pointing to a different installation - unpredictable results may occur." 79 echo "" 80 fi 81fi 82export JBOSS_HOME 83 84# Setup the JVM 85if [ "x$JAVA" = "x" ]; then 86 if [ "x$JAVA_HOME" != "x" ]; then 87 JAVA="$JAVA_HOME/bin/java" 88 else 89 JAVA="java" 90 fi 91fi 92 93# Set default modular JVM options 94setDefaultModularJvmOptions $JAVA_OPTS 95JAVA_OPTS="$JAVA_OPTS $DEFAULT_MODULAR_JVM_OPTIONS" 96 97# Check for -d32/-d64 in JAVA_OPTS 98JVM_OPTVERSION="-version" 99JVM_D64_OPTION=`echo $JAVA_OPTS | $GREP "\-d64"` 100JVM_D32_OPTION=`echo $JAVA_OPTS | $GREP "\-d32"` 101test "x$JVM_D64_OPTION" != "x" && JVM_OPTVERSION="-d64 $JVM_OPTVERSION" 102test "x$JVM_D32_OPTION" != "x" && JVM_OPTVERSION="-d32 $JVM_OPTVERSION" 103 104# If -server not set in JAVA_OPTS, set it, if supported 105SERVER_SET=`echo $JAVA_OPTS | $GREP "\-server"` 106if [ "x$SERVER_SET" = "x" ]; then 107 108 # Check for SUN(tm) JVM w/ HotSpot support 109 if [ "x$HAS_HOTSPOT" = "x" ]; then 110 HAS_HOTSPOT=`"$JAVA" $JVM_OPTVERSION -version 2>&1 | $GREP -i HotSpot` 111 fi 112 113 # Check for OpenJDK JVM w/server support 114 if [ "x$HAS_OPENJDK" = "x" ]; then 115 HAS_OPENJDK=`"$JAVA" $JVM_OPTVERSION 2>&1 | $GREP -i OpenJDK` 116 fi 117 118 # Enable -server if we have Hotspot or OpenJDK, unless we can't 119 if [ "x$HAS_HOTSPOT" != "x" ] || [ "x$HAS_OPENJDK" != "x" ]; then 120 # MacOS does not support -server flag 121 if [ "$darwin" != "true" ]; then 122 JAVA_OPTS="-server $JAVA_OPTS" 123 JVM_OPTVERSION="-server $JVM_OPTVERSION" 124 fi 125 fi 126else 127 JVM_OPTVERSION="-server $JVM_OPTVERSION" 128fi 129 130if [ "x$JBOSS_MODULEPATH" = "x" ]; then 131 JBOSS_MODULEPATH="$JBOSS_HOME/modules" 132fi 133 134# For Cygwin, switch paths to Windows format before running java 135if $cygwin; then 136 JBOSS_HOME=`cygpath --path --windows "$JBOSS_HOME"` 137 JBOSS_MODULEPATH=`cygpath --path --windows "$JBOSS_MODULEPATH"` 138fi 139 140# Process the JAVA_OPTS failing if the java.security.manager is set. 141SECURITY_MANAGER_SET=`echo $JAVA_OPTS | $GREP "java\.security\.manager"` 142if [ "x$SECURITY_MANAGER_SET" != "x" ]; then 143 echo "ERROR: The use of -Djava.security.manager has been removed. Please use the -secmgr command line argument or SECMGR=true environment variable." 144 exit 1 145fi 146 147# Set up the module arguments 148MODULE_OPTS="" 149if [ "$SECMGR" = "true" ]; then 150 MODULE_OPTS="-secmgr"; 151fi 152 153CLASSPATH="$CLASSPATH:\""$JBOSS_HOME"\"/jboss-modules.jar" 154# Execute the JVM in the foreground 155eval \"$JAVA\" $JAVA_OPTS \ 156 -cp "$CLASSPATH" \ 157 \"-Dorg.jboss.boot.log.file="$JBOSS_HOME"/appclient/log/appclient.log\" \ 158 \"-Dlogging.configuration=file:"$JBOSS_HOME"/appclient/configuration/logging.properties\" \ 159 org.jboss.modules.Main \ 160 $MODULE_OPTS \ 161 -mp \""${JBOSS_MODULEPATH}"\" \ 162 org.jboss.as.appclient \ 163 -Djboss.home.dir=\""$JBOSS_HOME"\" \ 164 -Djboss.server.base.dir=\""$JBOSS_HOME"/appclient\" \ 165 "$SERVER_OPTS" 166JBOSS_STATUS=$? 167exit $JBOSS_STATUS 168