Date: Sun, 23 Aug 2009 03:44:16 GMT From: Wen Heping <wenheping@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/138088: [Update]www/jetty:update 6.1.19 Message-ID: <200908230344.n7N3iGHM011287@www.freebsd.org> Resent-Message-ID: <200908230350.n7N3o2LG053776@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 138088 >Category: ports >Synopsis: [Update]www/jetty:update 6.1.19 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Sun Aug 23 03:50:02 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Wen Heping >Release: FreeBSD 8.0-Current >Organization: ChangAn Middle School >Environment: FreeBSD fb8.wenjing.com 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Sun Mar 22 22:12:06 CST 2009 root@fb8.wenjing.com:/usr/obj/usr/src/sys/GENERIC i386 >Description: update to 6.1.19 from 6.1.14 and take the maintainership >How-To-Repeat: >Fix: Patch attached with submission follows: diff -urN jetty/Makefile jetty.new/Makefile --- jetty/Makefile 2009-01-26 10:30:17.000000000 +0800 +++ jetty.new/Makefile 2009-08-23 11:27:44.000000000 +0800 @@ -6,91 +6,44 @@ # PORTNAME= jetty -DISTVERSION= 6.1.14 +DISTVERSION= 6.1.19 CATEGORIES= www java MASTER_SITES= http://dist.codehaus.org/jetty/${PORTNAME}-${DISTVERSION}/ -MAINTAINER= ports@FreeBSD.org +MAINTAINER= wenheping@gmail.com COMMENT= Full-featured web server implemented entirely in java -USE_RC_SUBR= ${PORTNAME} USE_ZIP= yes USE_JAVA= yes -JAVA_VERSION= 1.4+ -USE_PYTHON= 1.6+ +JAVA_VERSION= 1.5+ PLIST= ${WRKDIR}/pkg-plist PKGMESSAGE= ${WRKDIR}/pkg-message - -USE_RC_SUBR= jetty +NO_BUILD= yes APP_NAME= ${PORTNAME} APP_HOME= ${PREFIX}/${PORTNAME} -PID_FILE?= ${APP_HOME}/${APP_NAME}.pid -RUNASUSER?= www -RUNASUID?= 80 -GROUP?= www -GID?= 80 -LOG_FILE?= ${APP_HOME}/${APP_NAME}.log - -SUB_LIST= \ - APP_HOME=${APP_HOME} \ +SUB_LIST= APP_HOME=${APP_HOME} \ APP_NAME=${APP_NAME} \ - RC_SUBR=${RC_SUBR} \ - JAVA_HOME=${JAVA_HOME} \ - JAVA=${JAVA} \ - PID_FILE=${PID_FILE} \ - RUNASUSER=${RUNASUSER} \ - RUNASUID=${RUNASUID} \ - GROUP=${GROUP} \ - GID=${GID} \ - LOG_FILE=${LOG_FILE} \ - PYTHON_CMD=${PYTHON_CMD} - -SUB_FILES= \ - pkg-install \ - pkg-deinstall \ - ${APP_NAME}ctl \ - ${APP_NAME} \ - message \ - message-advanced - -do-build: - -post-build: - @${ECHO_MSG} "===> Building packing list" - @> ${PLIST} - - @cd ${WRKSRC} && ${FIND} -H * -type f \ - | ${EGREP} -v "^(bin/|bin$$)" | ${SED} -e "s|^|${PORTNAME}/|" >> ${PLIST} - - @cd ${WRKSRC} && ${FIND} -H -d * -type d \ - | ${EGREP} -v "^(bin/|bin$$)" | ${SED} -e "s|^|@dirrm ${PORTNAME}/|" >> ${PLIST} - - @${ECHO} @dirrm ${PORTNAME} >> ${PLIST} - @${CAT} ${MASTERDIR}/pkg-plist >> ${PLIST} + JAVA="${JAVA}" +SUB_FILES= pkg-message +USE_RC_SUBR= ${PORTNAME} pre-install: - @${FMT} -w80 ${WRKDIR}/message > ${PKGMESSAGE} - @${CAT} ${WRKDIR}/message-advanced >> ${PKGMESSAGE} + @${FIND} -s -d ${WRKSRC} -type f | \ + ${SED} "s?${WRKSRC}?${APP_NAME}?g" >${PLIST} + @${FIND} -s -d ${WRKSRC} -type d | \ + ${SED} "s?${WRKSRC}?@dirrm ${APP_NAME}?g" >> ${PLIST} do-install: - @${ECHO_MSG} "===> Installing into ${APP_HOME}" - -# Create user/group - @${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL - - @${MKDIR} ${APP_HOME} - @cd ${WRKSRC} && ${FIND} -H * | ${EGREP} -v "^(bin/|bin$$)" | ${CPIO} -pdmuL -R ${RUNASUSER}:${GROUP} ${APP_HOME} - @${CHOWN} ${RUNASUSER}:${GROUP} ${PREFIX}/${PORTNAME} + @cd ${WRKSRC} && ${COPYTREE_SHARE} . ${APP_HOME} - @${ECHO_MSG} "===> Installing into ${PREFIX}/sbin" - @${INSTALL_SCRIPT} ${WRKDIR}/${APP_NAME}ctl ${PREFIX}/sbin + @${CHOWN} -R ${WWWOWN}:${WWWGRP} ${APP_HOME} + @${ECHO_CMD} '@exec ${CHOWN} -R ${WWWOWN}:${WWWGRP} ${APP_HOME}' \ + >> ${TMPPLIST} + ${CHMOD} -R 755 ${APP_HOME} + @${ECHO_CMD} '@exec ${CHMOD} -R 755 ${APP_HOME}' >> ${TMPPLIST} post-install: - @${ECHO_CMD} - @${ECHO_CMD} "********************************************************************************" @${CAT} ${PKGMESSAGE} - @${ECHO_CMD} "********************************************************************************" - @${ECHO_CMD} .include <bsd.port.mk> diff -urN jetty/distinfo jetty.new/distinfo --- jetty/distinfo 2009-01-26 10:30:17.000000000 +0800 +++ jetty.new/distinfo 2009-08-21 17:14:21.000000000 +0800 @@ -1,3 +1,3 @@ -MD5 (jetty-6.1.14.zip) = b09a660b234e6613a866cb471280bf40 -SHA256 (jetty-6.1.14.zip) = ce8a9cf74c7f3a0099438f33b3adcef07d82347d3d67359da2116660e1571187 -SIZE (jetty-6.1.14.zip) = 24903728 +MD5 (jetty-6.1.19.zip) = a357873bd27ce3a1ab82bbcaf2047303 +SHA256 (jetty-6.1.19.zip) = 7c8f4c34fbbe8f72314b570444abcc080b480d07e235f17052c7339d4dafe22e +SIZE (jetty-6.1.19.zip) = 25217039 diff -urN jetty/files/jetty.in jetty.new/files/jetty.in --- jetty/files/jetty.in 2007-03-16 20:14:58.000000000 +0800 +++ jetty.new/files/jetty.in 2009-08-22 23:30:47.000000000 +0800 @@ -1,43 +1,41 @@ #!/bin/sh +# +# $FreeBSD$ # -# $FreeBSD: ports/www/jetty/files/jetty.in,v 1.1 2007/03/16 12:14:58 miwi Exp $ +# PROVIDE: jetty +# REQUIRE: NETWORKING # - -# PROVIDE: %%APP_NAME%% -# REQUIRE: LOGIN -# KEYWORD: shutdown - -# -# Add the following line to /etc/rc.conf to enable %%APP_NAME%%: -# -# %%APP_NAME%%_enable="YES" +# Add the following line to /etc/rc.conf[.local] to enable jetty # +# jetty_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable jetty. -. %%RC_SUBR%% -name=%%APP_NAME%% -rcvar=`set_rcvar` +. %%RC_SUBR%% -command="%%PREFIX%%/sbin/%%APP_NAME%%ctl" -command_args="start" -pidfile=%%PID_FILE%% - -# set defaults - -%%APP_NAME%%_enable=${%%APP_NAME%%_enable:-"NO"} -%%APP_NAME%%_user=${%%APP_NAME%%_user:-"www"} -%%APP_NAME%%_group=${%%APP_NAME%%_group:-"www"} +name="jetty" +rcvar=${name}_enable load_rc_config ${name} -if test -n "${%%APP_NAME%%_java_version}" ; then - JAVA_HOME=$(JAVA_VERSION="${%%APP_NAME%%_java_version}" JAVAVM_DRYRUN=1 %%LOCALBASE%%/bin/java | grep JAVA_HOME | cut -d= -f2) - procname=$(JAVA_VERSION="${%%APP_NAME%%_java_version}" JAVAVM_DRYRUN=1 %%LOCALBASE%%/bin/java | grep JAVAVM_PROG | cut -d= -f2) -else - JAVA_HOME=$(JAVAVM_DRYRUN=1 %%LOCALBASE%%/bin/java | grep JAVA_HOME | cut -d= -f2) - procname=$(JAVAVM_DRYRUN=1 %%LOCALBASE%%/bin/java | grep JAVAVM_PROG | cut -d= -f2) -fi - -export JAVA_HOME +: ${jetty_enable="NO"} +: ${jetty_stdout_log="/var/log/jetty_output.log"} +: ${jetty_stderr_log="/var/log/jetty_error.log"} +: ${jetty_user="root"} +: ${jetty_chdir="%%APP_HOME%%"} + +java_args="-jar start.jar" +log_args=">> ${jetty_stdout_log} 2>> ${jetty_stderr_log}" + +command="%%JAVA%%" +command_args="${java_args} ${log_args} &" + +start_precmd=logs_touch + +logs_touch() +{ + touch $jetty_stdout_log $jetty_stderr_log + chown $jetty_user $jetty_stdout_log $jetty_stderr_log +} run_rc_command "$1" diff -urN jetty/files/jettyctl.in jetty.new/files/jettyctl.in --- jetty/files/jettyctl.in 2007-03-16 20:14:58.000000000 +0800 +++ jetty.new/files/jettyctl.in 1970-01-01 08:00:00.000000000 +0800 @@ -1,177 +0,0 @@ -#! %%PYTHON_CMD%% - -################################################################################ -# Author: Jean-Baptiste Quenot <jb.quenot@caraldi.com> -# Purpose: Manage resin pid file and log files -# Date Created: 2005-01-21 15:43:19 -# Revision: $FreeBSD: ports/www/jetty/files/jettyctl.in,v 1.1 2007/03/16 12:14:58 miwi Exp $ -################################################################################ -# Copyright (c) 2004, Jean-Baptiste Quenot <jb.quenot@caraldi.com> -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# * The name of the contributors may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -################################################################################ -# -# Files handled by this script (pid file, log files) must reside in a writable -# directory, ie the directory must be owned by the user running the program. - -import sys, os, signal, time, stat, re - -# -socketwait 12345 -# -stdout $APP_HOME/log/stdout.log -# -stderr $APP_HOME/log/stderr.log - -def readProcessId(): - f = open(PID_FILE, 'r') - pid = int(f.readline()) - f.close() - return pid - -def isProgramRunning(pid): - # Send a dummy signal to the process. If it died, an exception is - # thrown - try: - os.kill(pid, signal.SIGCONT) - return 1 - except OSError: - return 0 - -def usage(): - print >> sys.stderr, "Usage: %s {start|stop|restart}" % sys.argv[0] - -def start(): - cwd = os.getcwd() - if os.path.exists(PID_FILE): - # Read the process id - pid = readProcessId() - - if isProgramRunning(pid): - print >> sys.stderr, '%s already started' % APP_NAME - sys.exit(3) - - if not(os.path.exists(COMMAND)): - print >> sys.stderr, '%s cannot be found' % COMMAND - sys.exit(3) - - # Append program output to a log file - l = open(LOG_FILE, 'a') - orig_stderr = os.dup(sys.stderr.fileno()) - os.dup2(l.fileno(), sys.stdout.fileno()) - os.dup2(l.fileno(), sys.stderr.fileno()) - - finfo = os.stat(COMMAND)[stat.ST_MODE] - executable = stat.S_IMODE(finfo) & 0111 - if not(executable): - sys.stderr = os.fdopen(orig_stderr, 'w') - print >> sys.stderr, 'Cannot run %s, execute bit is missing' % COMMAND - sys.exit(5) - - if APP_HOME: - # Change current directory to APP_HOME - os.chdir(APP_HOME) - - # Start program in the background - pid = os.spawnv(os.P_NOWAIT, COMMAND, ARGS) - - # Wait a little - time.sleep(.4) - (status_pid, status) = os.waitpid(pid, os.WNOHANG) - - # Check program exit status, if available - if status_pid != 0 and os.WIFEXITED(status): - sys.stderr = os.fdopen(orig_stderr, 'w') - print >> sys.stderr, 'Could not start %s. Check %s for errors.' % (APP_NAME, LOG_FILE) - sys.exit(2) - - # It's alive, so write down the process id - os.chdir(cwd) - f = open(PID_FILE, 'w') - print >> f, pid - f.close() - -def warnNotRunning(): - if sys.argv[1] == "stop": - print >> sys.stderr, '%s is not running' % APP_NAME - else: - print >> sys.stderr, 'Warning: %s was not running' % APP_NAME - -def cleanup(): - os.unlink(PID_FILE) - -def stop(): - if os.path.exists(PID_FILE): - # Read the process id - pid = readProcessId() - else: - warnNotRunning() - return - - if not(isProgramRunning(pid)): - warnNotRunning() - cleanup() - return - - # Terminate program - os.kill(pid, signal.SIGTERM) - - while isProgramRunning(pid): - time.sleep(.1) - - cleanup() - -if __name__ == '__main__': - LOG_FILE = "%%LOG_FILE%%" - APP_NAME = "%%APP_NAME%%" - APP_HOME = "%%APP_HOME%%" - PID_FILE = "%%PID_FILE%%" - COMMAND = "%%PREFIX%%/bin/java" - ARGS = [COMMAND] - - ARGS += sys.argv[1:-1] - - ARGS += [ - "-Djetty.home=%%APP_HOME%%", - "-jar", - "%%APP_HOME%%/start.jar", - "%%PREFIX%%/etc/%%APP_NAME%%.xml" - ] - - os.environ['PATH'] = "%%LOCALBASE%%/bin:/usr/bin:/bin" - - if len(sys.argv) < 2: - usage() - sys.exit(1) - - if sys.argv[-1] == "start": - start() - - elif sys.argv[-1] == "stop": - stop() - - elif sys.argv[-1] == "restart": - stop() - start() - - else: - usage() - sys.exit(1) diff -urN jetty/files/message-advanced.in jetty.new/files/message-advanced.in --- jetty/files/message-advanced.in 2007-03-16 20:14:58.000000000 +0800 +++ jetty.new/files/message-advanced.in 1970-01-01 08:00:00.000000000 +0800 @@ -1,23 +0,0 @@ - --------------------------------------------------------------------------------- -ADVANCED USAGE - -If you need to pass special options to Java, please set the -%%APP_NAME%%_flags option in /etc/rc.conf, see examples below: - - # Prevent Java from opening an X11 display - - %%APP_NAME%%_flags="-Djava.awt.headless=true" - - # Increase memory limit of the Java virtual machine - - %%APP_NAME%%_flags="-Xms32m -Xmx256m" - - # Run Java with remote debugging turned on on port 8000 - - %%APP_NAME%%_flags="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" - -To specify the java version to use, please use %%APP_NAME%%_java_version: - - %%APP_NAME%%_java_version="1.4" - diff -urN jetty/files/message.in jetty.new/files/message.in --- jetty/files/message.in 2007-03-16 20:14:58.000000000 +0800 +++ jetty.new/files/message.in 1970-01-01 08:00:00.000000000 +0800 @@ -1,36 +0,0 @@ -Jetty is now installed in %%APP_HOME%% - -You may want to activate it in /etc/rc.conf: - - # echo %%APP_NAME%%_enable="YES" >> /etc/rc.conf - -Then copy the sample configuration file to the proper location: - - # cp %%PREFIX%%/jetty/etc/jetty.xml %%PREFIX%%/etc/jetty.xml - -Now, start Jetty: - -env - %%PREFIX%%/etc/rc.d/%%APP_NAME%%.sh start - -For this control script to run seamlessly, it is recommended to increase the -maximum length of commands displayed by ps(1). Please append the following -setting to /etc/sysctl.conf: - - # Do not truncate command line arguments in ps(1) listing - kern.ps_arg_cache_limit=10000 - -This setting will take effect at next reboot, however it is possible to have -immediate effect with the following command as root: - - # sysctl kern.ps_arg_cache_limit=10000 - -If you wish to skip this setting, please note that the `stop', `restart' and -`status' will not function properly with %%APP_NAME%%.sh. - -Once Jetty is started, point your web browser to the default home page at -http://localhost:8080/test/ to read the documentation and test the samples. - -Jetty configuration is located at %%PREFIX%%/etc/%%APP_NAME%%.xml - - -Enjoy! diff -urN jetty/files/pkg-deinstall.in jetty.new/files/pkg-deinstall.in --- jetty/files/pkg-deinstall.in 2007-03-16 20:14:58.000000000 +0800 +++ jetty.new/files/pkg-deinstall.in 1970-01-01 08:00:00.000000000 +0800 @@ -1,63 +0,0 @@ -#!/bin/sh -# -# This script does the following. -# -# * Checks if the PID file exists. If it does, it kills the -# process and removes the PID file. -# -# * Checks if the 'www' user exists. If it does, then it displays -# a message. -# -# $FreeBSD: ports/www/jetty/files/pkg-deinstall.in,v 1.1 2007/03/16 12:14:58 miwi Exp $ -# -# Borrowed from the jakarta-tomcat port -# - -set -e - -PID_FILE=%%PID_FILE%% -RUNASUSER=%%RUNASUSER%% -APP_NAME=%%APP_NAME%% -LOG_FILE=%%LOG_FILE%% - -# Make sure we're in the right stage of the process -if [ "$2" = "DEINSTALL" ]; then - - # Kill the process if it is still running - if [ -s ${PID_FILE} ]; then - PID=`cat ${PID_FILE}` - echo -n ">> Killing ${APP_NAME} process (${PID})..." - - if /bin/kill ${PID} > /dev/null 2> /dev/null ; then - echo " [ DONE ]" - else - echo " [ FAILED ]" - fi - - echo -n ">> Removing PID file (${PID_FILE})..." - - if rm ${PID_FILE} > /dev/null 2> /dev/null ; then - echo " [ DONE ]" - else - echo " [ FAILED ]" - fi - fi - - if [ -e ${LOG_FILE} ] ; then - echo -n ">> Removing log file (${LOG_FILE})..." - if rm ${LOG_FILE} > /dev/null 2> /dev/null ; then - echo " [ DONE ]" - else - echo " [ FAILED ]" - fi - fi -fi - -if [ "$2" = "POST-DEINSTALL" ]; then - # If the user exists, then display a message - if pw usershow "$RUNASUSER" 2>/dev/null 1>&2; then - echo "To delete the $RUNASUSER user permanently, use 'pw userdel $RUNASUSER'" - fi -fi - -exit 0 diff -urN jetty/files/pkg-install.in jetty.new/files/pkg-install.in --- jetty/files/pkg-install.in 2007-03-16 20:14:58.000000000 +0800 +++ jetty.new/files/pkg-install.in 1970-01-01 08:00:00.000000000 +0800 @@ -1,49 +0,0 @@ -#!/bin/sh -# -# Checks if the requested user and group exist. If they don't, then -# an attempt is made to create both. -# -# $FreeBSD: ports/www/jetty/files/pkg-install.in,v 1.1 2007/03/16 12:14:58 miwi Exp $ -# -# Borrowed from the jakarta-tomcat port -# - -set -e - -RUNASUSER=%%RUNASUSER%% -RUNASUID=%%RUNASUID%% -GROUP=%%GROUP%% -GID=%%GID%% -APP_NAME=%%APP_NAME%% - -if [ "$2" = "POST-INSTALL" ]; then - # We're called after the 'make install' process - # See if the group already exists - if ! pw groupshow "${GROUP}" 2>/dev/null 1>&2; then - - # If not, try to create it - if pw groupadd ${GROUP} -g ${GID}; then - echo "Added group \"${GROUP}\"." - else - echo "Adding group \"${GROUP}\" failed..." - exit 1 - fi - fi - - # See if the user already exists - if ! pw usershow "${RUNASUSER}" 2>/dev/null 1>&2; then - - # If not, try to create it - if pw useradd ${RUNASUSER} -u ${RUNASUID} -g ${GROUP} -h - \ - -s "/sbin/nologin" -d "/nonexistent" \ - -c "World Wide Web Owner"; \ - then - echo "Added user \"${RUNASUSER}\"." - else - echo "Adding user \"${RUNASUSER}\" failed..." - exit 1 - fi - fi -fi - -exit 0 diff -urN jetty/files/pkg-message.in jetty.new/files/pkg-message.in --- jetty/files/pkg-message.in 1970-01-01 08:00:00.000000000 +0800 +++ jetty.new/files/pkg-message.in 2009-08-23 07:35:54.000000000 +0800 @@ -0,0 +1,18 @@ +=================================================== +Jetty is now installed in %%APP_HOME%% + +You may want to activate it in /etc/rc.conf: + + # echo %%APP_NAME%%_enable="YES" >> /etc/rc.conf + +Now, start Jetty: + +env - %%PREFIX%%/etc/rc.d/%%APP_NAME%%.sh start + +Once Jetty is started, point your web browser to the +default home page at http://localhost:8080/ to read +the documentation and test the samples. + +Enjoy! + +==================================================== diff -urN jetty/pkg-descr jetty.new/pkg-descr --- jetty/pkg-descr 2007-03-16 20:14:57.000000000 +0800 +++ jetty.new/pkg-descr 2009-08-23 07:27:16.000000000 +0800 @@ -3,31 +3,12 @@ free for commercial use and distribution. Jetty can be used as: - * a stand-alone traditional web server for static and dynamic content * a dynamic content server behind a dedicated HTTP server such as Apache using mod_proxy * an embedded component within a java application -Some of the defining features of Jetty are: - -Simplicity: The guiding principle of Jetty could be said to be "simplicity not -complexity". We want to make Jetty easy to understand and use: - -Efficiency: A lot of effort goes into optimizing Jetty's performance and -crafting the code so as to make the footprint as small as possible: - -Embeddability: Jetty is designed to be a good component. This means that it can -easily be embedded in an application without forcing the application to adapt to -it: - -Pluggability: Jetty is architected for pluggability. The API allows different -implementations of all of the principal Jetty components to be selected. At -least one, but sometimes more, implementations of a component are always -provided. However if these do not meet your needs, you are free to code your own -using the interfaces and abstract classes as a basis. This means that Jetty -can be easily customised to a particular application environment. This is -particularly useful when Jetty is acting as the web container in a J2EE server, -as Jetty's pluggability ensures a tight integration with a host container. +Some of the defining features of Jetty are: Simplicity, Efficiency, Embeddability +and Pluggability. WWW: http://jetty.mortbay.com/ diff -urN jetty/pkg-plist jetty.new/pkg-plist --- jetty/pkg-plist 2007-03-16 20:14:57.000000000 +0800 +++ jetty.new/pkg-plist 1970-01-01 08:00:00.000000000 +0800 @@ -1 +0,0 @@ -sbin/jettyctl >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908230344.n7N3iGHM011287>