summaryrefslogtreecommitdiffstatsabout
diff options
context:
space:
mode:
authorDavid Yu2009-06-30 05:29:41 (EDT)
committer David Yu2009-06-30 05:29:41 (EDT)
commitd0e514f1923cc3da7bbc3d75fe528867f22d3aa2 (patch)
treeb6d4cded2b378cd994a2705c1288192d452feaab
parent18c97123630b37d9275f00e001f9cd83a21fe90c (diff)
downloadorg.eclipse.jetty.project-d0e514f1923cc3da7bbc3d75fe528867f22d3aa2.zip
org.eclipse.jetty.project-d0e514f1923cc3da7bbc3d75fe528867f22d3aa2.tar.gz
org.eclipse.jetty.project-d0e514f1923cc3da7bbc3d75fe528867f22d3aa2.tar.bz2
JETTY-799 shell script for jetty on cygwin
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@446 7e9141cc-0065-0410-87d8-b60c137991c4
-rw-r--r--VERSION.txt1
-rw-r--r--jetty-distribution/src/main/resources/bin/README.jetty-cygwin.txt.txt11
-rwxr-xr-xjetty-distribution/src/main/resources/bin/jetty-cygwin.sh677
3 files changed, 689 insertions, 0 deletions
diff --git a/VERSION.txt b/VERSION.txt
index d18bd15..f2d31a0 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1,5 +1,6 @@
jetty-7.0.0.M4-SNAPSHOT
+ 281059 NPE in QTP with debug on
+ + JETTY-799 shell script for jetty on cygwin
+ JETTY-1034 Cookie parsing
+ JETTY-1042 Prevent cookie leak between shared connection
+ JETTY-1048 Fix for large partially filtered static content
diff --git a/jetty-distribution/src/main/resources/bin/README.jetty-cygwin.txt.txt b/jetty-distribution/src/main/resources/bin/README.jetty-cygwin.txt.txt
new file mode 100644
index 0000000..755036b
--- /dev/null
+++ b/jetty-distribution/src/main/resources/bin/README.jetty-cygwin.txt.txt
@@ -0,0 +1,11 @@
+Before running jetty-cygwin.sh on cygwin, define the JAVA_HOME and JETTY_HOME first.
+
+$ export JAVA_HOME=/path/to/jvm
+$ export JETTY_HOME=/path/to/jetty
+
+Examples:
+$ export JAVA_HOME=/usr/bin/jvm
+So assuming you installed cygwin on C:\cygwin, the jvm needs to be in C:\cygwin\usr\bin\jvm
+
+$ export JETTY_HOME=/usr/share/jetty6
+So assuming you installed cygwin on C:\cygwin, jetty needs to be in C:\cygwin\usr\share\jetty6 \ No newline at end of file
diff --git a/jetty-distribution/src/main/resources/bin/jetty-cygwin.sh b/jetty-distribution/src/main/resources/bin/jetty-cygwin.sh
new file mode 100755
index 0000000..550390e
--- /dev/null
+++ b/jetty-distribution/src/main/resources/bin/jetty-cygwin.sh
@@ -0,0 +1,677 @@
+#!/bin/bash
+#
+# Startup script for jetty under *nix systems (it works under NT/cygwin too).
+
+# To get the service to restart correctly on reboot, uncomment below (3 lines):
+# ========================
+# chkconfig: 3 99 99
+# description: Jetty 7 webserver
+# processname: jetty
+# ========================
+
+# Configuration files
+#
+# /etc/default/jetty
+# If it exists, this is read at the start of script. It may perform any
+# sequence of shell commands, like setting relevant environment variables.
+#
+# $HOME/.jettyrc
+# If it exists, this is read at the start of script. It may perform any
+# sequence of shell commands, like setting relevant environment variables.
+#
+# /etc/jetty.conf
+# If found, and no configurations were given on the command line,
+# the file will be used as this script's configuration.
+# Each line in the file may contain:
+# - A comment denoted by the pound (#) sign as first non-blank character.
+# - The path to a regular file, which will be passed to jetty as a
+# config.xml file.
+# - The path to a directory. Each *.xml file in the directory will be
+# passed to jetty as a config.xml file.
+#
+# The files will be checked for existence before being passed to jetty.
+#
+# $JETTY_HOME/etc/jetty.xml
+# If found, used as this script's configuration file, but only if
+# /etc/jetty.conf was not present. See above.
+#
+# Configuration variables
+#
+# JAVA_HOME
+# Home of Java installation.
+#
+# JAVA
+# Command to invoke Java. If not set, $JAVA_HOME/bin/java will be
+# used.
+#
+# JAVA_OPTIONS
+# Extra options to pass to the JVM
+#
+# JETTY_HOME
+# Where Jetty is installed. If not set, the script will try go
+# guess it by first looking at the invocation path for the script,
+# and then by looking in standard locations as $HOME/opt/jetty
+# and /opt/jetty. The java system property "jetty.home" will be
+# set to this value for use by configure.xml files, f.e.:
+#
+# <Arg><SystemProperty name="jetty.home" default="."/>/webapps/jetty.war</Arg>
+#
+# JETTY_PORT
+# Override the default port for Jetty servers. If not set then the
+# default value in the xml configuration file will be used. The java
+# system property "jetty.port" will be set to this value for use in
+# configure.xml files. For example, the following idiom is widely
+# used in the demo config files to respect this property in Listener
+# configuration elements:
+#
+# <Set name="Port"><SystemProperty name="jetty.port" default="8080"/></Set>
+#
+# Note: that the config file could ignore this property simply by saying:
+#
+# <Set name="Port">8080</Set>
+#
+# JETTY_RUN
+# Where the jetty.pid file should be stored. It defaults to the
+# first available of /var/run, /usr/var/run, and /tmp if not set.
+#
+# JETTY_PID
+# The Jetty PID file, defaults to $JETTY_RUN/jetty.pid
+#
+# JETTY_ARGS
+# The default arguments to pass to jetty.
+#
+# JETTY_USER
+# if set, then used as a username to run the server as
+#
+
+usage()
+{
+ echo "Usage: $0 {start|stop|run|restart|check|supervise} [ CONFIGS ... ] "
+ exit 1
+}
+
+[ $# -gt 0 ] || usage
+
+
+##################################################
+# Some utility functions
+##################################################
+findDirectory()
+{
+ OP=$1
+ shift
+ for L in $* ; do
+ [ $OP $L ] || continue
+ echo $L
+ break
+ done
+}
+
+running()
+{
+ [ -f $1 ] || return 1
+ PID=$(cat $1)
+ ps -p $PID >/dev/null 2>/dev/null || return 1
+ return 0
+}
+
+
+
+
+
+
+
+##################################################
+# Get the action & configs
+##################################################
+
+ACTION=$1
+shift
+ARGS="$*"
+CONFIGS=""
+NO_START=0
+
+##################################################
+# See if there's a default configuration file
+##################################################
+if [ -f /etc/default/jetty7 ] ; then
+ . /etc/default/jetty7
+elif [ -f /etc/default/jetty ] ; then
+ . /etc/default/jetty
+fi
+
+
+##################################################
+# See if there's a user-specific configuration file
+##################################################
+if [ -f $HOME/.jettyrc ] ; then
+ . $HOME/.jettyrc
+fi
+
+##################################################
+# Set tmp if not already set.
+##################################################
+
+if [ -z "$TMP" ]
+then
+ TMP=/tmp
+fi
+
+##################################################
+# Jetty's hallmark
+##################################################
+JETTY_INSTALL_TRACE_FILE="etc/jetty.xml"
+TMPJ=$TMP/j$$
+
+
+##################################################
+# Try to determine JETTY_HOME if not set
+##################################################
+if [ -z "$JETTY_HOME" ]
+then
+ JETTY_HOME_1=`dirname "$0"`
+ JETTY_HOME_1=`dirname "$JETTY_HOME_1"`
+ if [ -f "${JETTY_HOME_1}/${JETTY_INSTALL_TRACE_FILE}" ] ;
+ then
+ JETTY_HOME=${JETTY_HOME_1}
+ fi
+fi
+
+
+##################################################
+# if no JETTY_HOME, search likely locations.
+##################################################
+if [ "$JETTY_HOME" = "" ] ; then
+ STANDARD_LOCATIONS=" \
+ /usr/share \
+ /usr/share/java \
+ $HOME \
+ $HOME/src \
+ ${HOME}/opt/ \
+ /opt \
+ /java \
+ /usr/local \
+ /usr/local/share \
+ /usr/local/share/java \
+ /home \
+ "
+ JETTY_DIR_NAMES=" \
+ jetty-7 \
+ jetty7 \
+ jetty-7.* \
+ jetty \
+ Jetty-7 \
+ Jetty7 \
+ Jetty-7.* \
+ Jetty \
+ "
+
+ JETTY_HOME=
+ for L in $STANDARD_LOCATIONS
+ do
+ for N in $JETTY_DIR_NAMES
+ do
+ if [ -d $L/$N ] && [ -f "$L/${N}/${JETTY_INSTALL_TRACE_FILE}" ] ;
+ then
+ JETTY_HOME="$L/$N"
+ fi
+ done
+ [ ! -z "$JETTY_HOME" ] && break
+ done
+fi
+
+
+##################################################
+# No JETTY_HOME yet? We're out of luck!
+##################################################
+if [ -z "$JETTY_HOME" ] ; then
+ echo "** ERROR: JETTY_HOME not set, you need to set it or install in a standard location"
+ exit 1
+fi
+
+cd $JETTY_HOME
+JETTY_HOME=`pwd`
+
+
+#####################################################
+# Check that jetty is where we think it is
+#####################################################
+if [ ! -r $JETTY_HOME/$JETTY_INSTALL_TRACE_FILE ]
+then
+ echo "** ERROR: Oops! Jetty doesn't appear to be installed in $JETTY_HOME"
+ echo "** ERROR: $JETTY_HOME/$JETTY_INSTALL_TRACE_FILE is not readable!"
+ exit 1
+fi
+
+
+###########################################################
+# Get the list of config.xml files from the command line.
+###########################################################
+if [ ! -z "$ARGS" ]
+then
+ for A in $ARGS
+ do
+ if [ -f $A ]
+ then
+ CONF="$A"
+ elif [ -f $JETTY_HOME/etc/$A ]
+ then
+ CONF="$JETTY_HOME/etc/$A"
+ elif [ -f ${A}.xml ]
+ then
+ CONF="${A}.xml"
+ elif [ -f $JETTY_HOME/etc/${A}.xml ]
+ then
+ CONF="$JETTY_HOME/etc/${A}.xml"
+ else
+ echo "** ERROR: Cannot find configuration '$A' specified in the command line."
+ exit 1
+ fi
+ if [ ! -r $CONF ]
+ then
+ echo "** ERROR: Cannot read configuration '$A' specified in the command line."
+ exit 1
+ fi
+ CONFIGS="$CONFIGS $CONF"
+ done
+fi
+
+
+##################################################
+# Try to find this script's configuration file,
+# but only if no configurations were given on the
+# command line.
+##################################################
+if [ -z "$JETTY_CONF" ]
+then
+ if [ -f /etc/jetty.conf ]
+ then
+ JETTY_CONF=/etc/jetty.conf
+ elif [ -f "${JETTY_HOME}/etc/jetty.conf" ]
+ then
+ JETTY_CONF="${JETTY_HOME}/etc/jetty.conf"
+ fi
+fi
+
+##################################################
+# Read the configuration file if one exists
+##################################################
+CONFIG_LINES=
+if [ -z "$CONFIGS" ] && [ -f "$JETTY_CONF" ] && [ -r "$JETTY_CONF" ]
+then
+ CONFIG_LINES=`cat $JETTY_CONF | grep -v "^[:space:]*#" | tr "\n" " "`
+fi
+
+##################################################
+# Get the list of config.xml files from jetty.conf
+##################################################
+if [ ! -z "${CONFIG_LINES}" ]
+then
+ for CONF in ${CONFIG_LINES}
+ do
+ if [ ! -r "$CONF" ]
+ then
+ echo "** WARNING: Cannot read '$CONF' specified in '$JETTY_CONF'"
+ elif [ -f "$CONF" ]
+ then
+ # assume it's a configure.xml file
+ CONFIGS="$CONFIGS $CONF"
+ elif [ -d "$CONF" ]
+ then
+ # assume it's a directory with configure.xml files
+ # for example: /etc/jetty.d/
+ # sort the files before adding them to the list of CONFIGS
+ XML_FILES=`ls ${CONF}/*.xml | sort | tr "\n" " "`
+ for FILE in ${XML_FILES}
+ do
+ if [ -r "$FILE" ] && [ -f "$FILE" ]
+ then
+ CONFIGS="$CONFIGS $FILE"
+ else
+ echo "** WARNING: Cannot read '$FILE' specified in '$JETTY_CONF'"
+ fi
+ done
+ else
+ echo "** WARNING: Don''t know what to do with '$CONF' specified in '$JETTY_CONF'"
+ fi
+ done
+fi
+
+#####################################################
+# Run the standard server if there's nothing else to run
+#####################################################
+if [ -z "$CONFIGS" ]
+then
+ CONFIGS="${JETTY_HOME}/etc/jetty-logging.xml ${JETTY_HOME}/etc/jetty.xml"
+fi
+
+
+#####################################################
+# Find a location for the pid file
+#####################################################
+if [ -z "$JETTY_RUN" ]
+then
+ JETTY_RUN=`findDirectory -w /var/run /usr/var/run /tmp`
+fi
+
+#####################################################
+# Find a PID for the pid file
+#####################################################
+if [ -z "$JETTY_PID" ]
+then
+ JETTY_PID="$JETTY_RUN/jetty.pid"
+fi
+
+
+##################################################
+# Check for JAVA_HOME
+##################################################
+if [ -z "$JAVA_HOME" ]
+then
+ # If a java runtime is not defined, search the following
+ # directories for a JVM and sort by version. Use the highest
+ # version number.
+
+ # Java search path
+ JAVA_LOCATIONS="\
+ /usr/java \
+ /usr/bin \
+ /usr/local/bin \
+ /usr/local/java \
+ /usr/local/jdk \
+ /usr/local/jre \
+ /usr/lib/jvm \
+ /opt/java \
+ /opt/jdk \
+ /opt/jre \
+ "
+ JAVA_NAMES="java jdk jre"
+ for N in $JAVA_NAMES ; do
+ for L in $JAVA_LOCATIONS ; do
+ [ -d $L ] || continue
+ find $L -name "$N" ! -type d | grep -v threads | while read J ; do
+ [ -x $J ] || continue
+ VERSION=`eval $J -version 2>&1`
+ [ $? = 0 ] || continue
+ VERSION=`expr "$VERSION" : '.*"\(1.[0-9\.]*\)["_]'`
+ [ "$VERSION" = "" ] && continue
+ expr $VERSION \< 1.2 >/dev/null && continue
+ echo $VERSION:$J
+ done
+ done
+ done | sort | tail -1 > $TMPJ
+ JAVA=`cat $TMPJ | cut -d: -f2`
+ JVERSION=`cat $TMPJ | cut -d: -f1`
+
+ JAVA_HOME=`dirname $JAVA`
+ while [ ! -z "$JAVA_HOME" -a "$JAVA_HOME" != "/" -a ! -f "$JAVA_HOME/lib/tools.jar" ] ; do
+ JAVA_HOME=`dirname $JAVA_HOME`
+ done
+ [ "$JAVA_HOME" = "" ] && JAVA_HOME=
+
+ echo "Found JAVA=$JAVA in JAVA_HOME=$JAVA_HOME"
+fi
+
+
+##################################################
+# Determine which JVM of version >1.2
+# Try to use JAVA_HOME
+##################################################
+if [ "$JAVA" = "" -a "$JAVA_HOME" != "" ]
+then
+ if [ ! -z "$JAVACMD" ]
+ then
+ JAVA="$JAVACMD"
+ else
+ [ -x $JAVA_HOME/bin/jre -a ! -d $JAVA_HOME/bin/jre ] && JAVA=$JAVA_HOME/bin/jre
+ [ -x $JAVA_HOME/bin/java -a ! -d $JAVA_HOME/bin/java ] && JAVA=$JAVA_HOME/bin/java
+ fi
+fi
+
+if [ "$JAVA" = "" ]
+then
+ echo "Cannot find a JRE or JDK. Please set JAVA_HOME to a >=1.2 JRE" 2>&2
+ exit 1
+fi
+
+JAVA_VERSION=`expr "$($JAVA -version 2>&1 | head -1)" : '.*1\.\([0-9]\)'`
+
+#####################################################
+# See if JETTY_PORT is defined
+#####################################################
+if [ "$JETTY_PORT" != "" ]
+then
+ JAVA_OPTIONS="$JAVA_OPTIONS -Djetty.port=$JETTY_PORT"
+fi
+
+#####################################################
+# See if JETTY_LOGS is defined
+#####################################################
+if [ "$JETTY_LOGS" != "" ]
+then
+ JAVA_OPTIONS="$JAVA_OPTIONS -Djetty.logs=$JETTY_LOGS"
+fi
+
+#####################################################
+# Are we running on Windows? Could be, with Cygwin/NT.
+#####################################################
+case "`uname`" in
+CYGWIN*) PATH_SEPARATOR=";";;
+*) PATH_SEPARATOR=":";;
+esac
+
+
+#####################################################
+# Add jetty properties to Java VM options.
+#####################################################
+JAVA_OPTIONS="$JAVA_OPTIONS -Djetty.home=$JETTY_HOME -Djava.io.tmpdir=$TMP"
+
+[ -f $JETTY_HOME/etc/start.config ] && JAVA_OPTIONS="-DSTART=$JETTY_HOME/etc/start.config $JAVA_OPTIONS"
+
+#####################################################
+# This is how the Jetty server will be started
+#####################################################
+
+JETTY_START=$JETTY_HOME/start.jar
+[ ! -f $JETTY_START ] && JETTY_START=$JETTY_HOME/lib/start.jar
+
+case "`uname`" in
+CYGWIN*)
+JETTY_START="`cygpath -w $JETTY_START`"
+echo $JETTY_START
+
+CONFIGS="`cygpath -w $CONFIGS`"
+echo $CONFIGS
+;;
+esac
+
+
+RUN_ARGS="$JAVA_OPTIONS -jar $JETTY_START $JETTY_ARGS $CONFIGS"
+RUN_CMD="$JAVA $RUN_ARGS"
+
+#####################################################
+# Comment these out after you're happy with what
+# the script is doing.
+#####################################################
+#echo "JETTY_HOME = $JETTY_HOME"
+#echo "JETTY_CONF = $JETTY_CONF"
+#echo "JETTY_RUN = $JETTY_RUN"
+#echo "JETTY_PID = $JETTY_PID"
+#echo "JETTY_ARGS = $JETTY_ARGS"
+#echo "CONFIGS = $CONFIGS"
+#echo "JAVA_OPTIONS = $JAVA_OPTIONS"
+#echo "JAVA = $JAVA"
+
+
+##################################################
+# Do the action
+##################################################
+case "$ACTION" in
+ start)
+ echo -n "Starting Jetty: "
+
+ if [ "$NO_START" = "1" ]; then
+ echo "Not starting jetty - NO_START=1 in /etc/default/jetty7";
+ exit 0;
+ fi
+
+
+ if [ "$START_STOP_DAEMON" = "1" ] && type start-stop-daemon > /dev/null 2>&1
+ then
+ [ x$JETTY_USER = x ] && JETTY_USER=$(whoami)
+ [ $UID = 0 ] && CH_USER="-c $JETTY_USER"
+ if start-stop-daemon -S -p$JETTY_PID $CH_USER -d $JETTY_HOME -b -m -a $JAVA -- $RUN_ARGS
+ then
+ sleep 1
+ if running $JETTY_PID
+ then
+ echo OK
+ else
+ echo FAILED
+ fi
+ fi
+
+ else
+
+ if [ -f $JETTY_PID ]
+ then
+ if running $JETTY_PID
+ then
+ echo "Already Running!!"
+ exit 1
+ else
+ # dead pid file - remove
+ rm -f $JETTY_PID
+ fi
+ fi
+
+ if [ x$JETTY_USER != x ]
+ then
+ touch $JETTY_PID
+ chown $JETTY_USER $JETTY_PID
+ su - $JETTY_USER -c "
+ $RUN_CMD &
+ PID=\$!
+ disown \$PID
+ echo \$PID > $JETTY_PID"
+ else
+ $RUN_CMD &
+ PID=$!
+ disown $PID
+ echo $PID > $JETTY_PID
+ fi
+
+ echo "STARTED Jetty `date`"
+ fi
+
+ ;;
+
+ stop)
+ echo -n "Stopping Jetty: "
+ if [ "$START_STOP_DAEMON" = "1" ] && type start-stop-daemon > /dev/null 2>&1; then
+ start-stop-daemon -K -p $JETTY_PID -d $JETTY_HOME -a $JAVA -s HUP
+ sleep 1
+ if running $JETTY_PID
+ then
+ sleep 3
+ if running $JETTY_PID
+ then
+ sleep 30
+ if running $JETTY_PID
+ then
+ start-stop-daemon -K -p $JETTY_PID -d $JETTY_HOME -a $JAVA -s KILL
+ fi
+ fi
+ fi
+
+ rm -f $JETTY_PID
+ echo OK
+ else
+ PID=`cat $JETTY_PID 2>/dev/null`
+ TIMEOUT=30
+ while running $JETTY_PID && [ $TIMEOUT -gt 0 ]
+ do
+ kill $PID 2>/dev/null
+ sleep 1
+ let TIMEOUT=$TIMEOUT-1
+ done
+
+ [ $TIMEOUT -gt 0 ] || kill -9 $PID 2>/dev/null
+
+ rm -f $JETTY_PID
+ echo OK
+ fi
+ ;;
+
+ restart)
+ JETTY_SH=$0
+ if [ ! -f $JETTY_SH ]; then
+ if [ ! -f $JETTY_HOME/bin/jetty.sh ]; then
+ echo "$JETTY_HOME/bin/jetty.sh does not exist."
+ exit 1
+ fi
+ JETTY_SH=$JETTY_HOME/bin/jetty.sh
+ fi
+ $JETTY_SH stop $*
+ sleep 5
+ $JETTY_SH start $*
+ ;;
+
+ supervise)
+ #
+ # Under control of daemontools supervise monitor which
+ # handles restarts and shutdowns via the svc program.
+ #
+ exec $RUN_CMD
+ ;;
+
+ run|demo)
+ echo "Running Jetty: "
+
+ if [ -f $JETTY_PID ]
+ then
+ if running $JETTY_PID
+ then
+ echo "Already Running!!"
+ exit 1
+ else
+ # dead pid file - remove
+ rm -f $JETTY_PID
+ fi
+ fi
+
+ exec $RUN_CMD
+ ;;
+
+ check)
+ echo "Checking arguments to Jetty: "
+ echo "JETTY_HOME = $JETTY_HOME"
+ echo "JETTY_CONF = $JETTY_CONF"
+ echo "JETTY_RUN = $JETTY_RUN"
+ echo "JETTY_PID = $JETTY_PID"
+ echo "JETTY_PORT = $JETTY_PORT"
+ echo "JETTY_LOGS = $JETTY_LOGS"
+ echo "CONFIGS = $CONFIGS"
+ echo "JAVA_OPTIONS = $JAVA_OPTIONS"
+ echo "JAVA = $JAVA"
+ echo "CLASSPATH = $CLASSPATH"
+ echo "RUN_CMD = $RUN_CMD"
+ echo
+
+ if [ -f $JETTY_RUN/jetty.pid ]
+ then
+ echo "Jetty running pid="`cat $JETTY_RUN/jetty.pid`
+ exit 0
+ fi
+ exit 1
+ ;;
+
+*)
+ usage
+ ;;
+esac
+
+exit 0
+
+
+