Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Feb 2005 16:46:47 +0100 (CET)
From:      Jean-Baptiste Quenot <jb.quenot@caraldi.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/77988: Maintainer update: www/resin2 updated to 2.1.16
Message-ID:  <20050223154647.8539060F2@vision.anyware>
Resent-Message-ID: <200502231550.j1NFoLuf024642@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         77988
>Category:       ports
>Synopsis:       Maintainer update: www/resin2 updated to 2.1.16
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Wed Feb 23 15:50:20 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Jean-Baptiste Quenot
>Release:        FreeBSD 5.3-RELEASE i386
>Organization:
>Environment:
System: FreeBSD vision.anyware 5.3-RELEASE FreeBSD 5.3-RELEASE #0: Fri Nov 5 04:19:18 UTC 2004 root@harlow.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description:
This is an update of www/resin2 to version 2.1.16.  It also replaces Resin's
perl wrapper with a new python control script and an rc-ng startup script.
Note that a patch has been removed: files/patch-wrapper.
>How-To-Repeat:
>Fix:
diff --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/resin2/Makefile ./Makefile
--- /usr/ports/www/resin2/Makefile	Sat Jul  3 00:10:15 2004
+++ ./Makefile	Mon Feb 21 15:05:35 2005
@@ -2,59 +2,59 @@
 # Whom:                                Jean-Baptiste Quenot <jb.quenot@caraldi.com>
 # Date Created:                        2002-07-15 15:00:43
 #
-# ex:ts=20:sw=20
-#
 # $FreeBSD: ports/www/resin2/Makefile,v 1.4 2004/07/02 22:10:15 glewis Exp $
 #
 
-PORTNAME=	resin
-PORTVERSION=	2.1.14
-CATEGORIES=	www java
-MASTER_SITES=	http://www.caucho.com/download/
-
-MAINTAINER=	jb.quenot@caraldi.com
-COMMENT=	Resin, a Java-based Application Server, 2.x branch
-
-USE_JAVA=	1.2+
-HAS_CONFIGURE=	yes
-USE_PERL5=	yes
-USE_REINPLACE=	yes
+PORTNAME=		resin
+PORTVERSION=		2.1.16
+CATEGORIES=		www java
+MASTER_SITES=		http://www.caucho.com/download/
+
+MAINTAINER=		jb.quenot@caraldi.com
+COMMENT=		Resin, a Java-based Application Server, 2.x branch
+
+USE_JAVA=		1.2+
+HAS_CONFIGURE=		yes
+USE_PYTHON=		yes
+USE_REINPLACE=		yes
 
 # Customizable settings
-RUNASUSER?=	www
-RUNASUID?=	80
-GROUP?=	${RUNASUSER}
-GID?=	${RUNASUID}
-PORT?=	8080
+RUNASUSER?=		www
+RUNASUID?=		80
+GROUP?=			${RUNASUSER}
+GID?=			${RUNASUID}
+PORT?=			8080
 # Do not use PKGNAMESUFFIX here because version info is already in PORTVERSION
 # If we used PKGNAMESUFFIX, the package name would be resin2-2.1.11
 APP_NAME_SUFFIX=	${PORTVERSION:C/\..*$//}
-APP_NAME?=	${PORTNAME}${APP_NAME_SUFFIX}
-LATEST_LINK=	${APP_NAME}
-APP_HOME?=	${PREFIX}/${APP_NAME}
-WITH_APACHE?=	NO
-WITH_APACHE2?=	NO
-PID_FILE?=	/var/run/${APP_NAME}.pid
+APP_NAME?=		${PORTNAME}${APP_NAME_SUFFIX}
+LATEST_LINK=		${APP_NAME}
+APP_HOME?=		${PREFIX}/${APP_NAME}
+WITH_APACHE?=		NO
+WITH_APACHE2?=		NO
+PID_FILE?=		${APP_HOME}/${APP_NAME}.pid
+LOG_FILE?=		${APP_HOME}/${APP_NAME}.log
 
 # Other settings
-APXS?=	${LOCALBASE}/sbin/apxs
-MOD_DIR?=	`${APXS} -q LIBEXECDIR`
-PKGINSTALL=	${WRKDIR}/pkg-install
-PKGDEINSTALL=	${WRKDIR}/pkg-deinstall
-PKGMESSAGE=	${WRKDIR}/pkg-message
+APXS?=			${LOCALBASE}/sbin/apxs
+PKGINSTALL=		${WRKDIR}/pkg-install
+PKGDEINSTALL=		${WRKDIR}/pkg-deinstall
+PKGMESSAGE=		${WRKDIR}/pkg-message
 # We need WRKSRC and WRKDIR right now so define them "manually"
-WRKSRC=	${WRKDIR}/${PORTNAME}-${PORTVERSION}
-WRKDIR?=	${WRKDIRPREFIX}${.CURDIR}/work
+WRKSRC=			${WRKDIR}/${PORTNAME}-${PORTVERSION}
+WRKDIR?=		${WRKDIRPREFIX}${.CURDIR}/work
 REINPLACE_FILES=	${WRKSRC}/src/c/plugin/apache/Makefile.in \
-	${WRKSRC}/src/c/plugin/apache2/Makefile.in
-REPLACE_FILES=	${FILESDIR}/pkg-install \
-	${FILESDIR}/pkg-deinstall \
-	${FILESDIR}/install.sh \
-	${FILESDIR}/pkg-message.in \
-	${WRKSRC}/conf/resin.conf \
-	${WRKSRC}/bin/wrapper.pl.in \
-	${FILESDIR}/resin.sh.in
-COPYDIRS=	doc lib libexec xsl
+			${WRKSRC}/src/c/plugin/apache2/Makefile.in
+REPLACE_FILES=		${FILESDIR}/pkg-install \
+			${FILESDIR}/pkg-deinstall \
+			${FILESDIR}/install.sh \
+			${FILESDIR}/pkg-message.in \
+			${WRKSRC}/conf/resin.conf \
+			${FILESDIR}/resinctl \
+			${FILESDIR}/resin.sh.in
+COPYDIRS=		doc lib libexec xsl
+
+.include <bsd.port.pre.mk>
 
 # Pass JAVA_HOME as determined by bsd.java.mk
 CONFIGURE_ARGS+=	--with-java-home=${JAVA_HOME}
@@ -64,48 +64,48 @@
 #
 # Apache 1.3
 #
-BUILD_DEPENDS+=	${APXS}:${PORTSDIR}/www/apache13
+BUILD_DEPENDS+=		${APXS}:${PORTSDIR}/www/apache13
 CONFIGURE_ARGS+=	--with-apxs=${APXS}
-PLIST_SUB+=	MOD_DIR=libexec/apache
+PLIST_SUB+=		MOD_DIR=libexec/apache
 # Allow apxs invocations
-PLIST_SUB+=	APACHE=""
+PLIST_SUB+=		APACHE=""
 .elif defined(WITH_APACHE2) && (${WITH_APACHE2} == yes || ${WITH_APACHE2} == YES)
 #
 # Apache 2
 #
-BUILD_DEPENDS+=	${APXS}:${PORTSDIR}/www/apache2
+BUILD_DEPENDS+=		${APXS}:${PORTSDIR}/www/apache2
 CONFIGURE_ARGS+=	--with-apxs=${APXS}
-PLIST_SUB+=	MOD_DIR=libexec/apache2
+PLIST_SUB+=		MOD_DIR=libexec/apache2
 # Allow apxs invocations
-PLIST_SUB+=	APACHE=""
+PLIST_SUB+=		APACHE=""
 .else
-PLIST_SUB+=	MOD_DIR="@comment "
+PLIST_SUB+=		MOD_DIR="@comment "
 # Prevent apxs invocations
-PLIST_SUB+=	APACHE="@comment "
+PLIST_SUB+=		APACHE="@comment "
 .endif
 
-PLIST_SUB+=	APP_NAME=${APP_NAME}
-PLIST_SUB+=	APXS=${APXS}
+PLIST_SUB+=		APP_NAME=${APP_NAME}
+PLIST_SUB+=		APXS=${APXS}
 
-SUBSTITUTIONS=	-e "s|%%APP_HOME%%|${APP_HOME}|g" \
-	-e "s|%%APP_NAME%%|${APP_NAME}|g" \
-	-e "s|%%APXS%%|${APXS}|g" \
-	-e "s|%%COPYDIRS%%|${COPYDIRS}|g" \
-	-e "s|%%FILESDIR%%|${FILESDIR}|g" \
-	-e "s|%%GROUP%%|${GROUP}|g" \
-	-e "s|%%GID%%|${GID}|g" \
-	-e "s|%%JAVA_HOME%%|${JAVA_HOME}|g" \
-	-e "s|%%PERL%%|${PERL}|g" \
-	-e "s|%%PID_FILE%%|${PID_FILE}|g" \
-	-e "s|%%PORT%%|${PORT}|g" \
-	-e "s|%%PORTNAME%%|${PORTNAME}|g" \
-	-e "s|%%PREFIX%%|${PREFIX}|g" \
-	-e "s|%%RUNASUID%%|${RUNASUID}|g" \
-	-e "s|%%RUNASUSER%%|${RUNASUSER}|g" \
-	-e "s|%%WRKDIR%%|${WRKDIR}|g" \
-	-e "s|%%WRKSRC%%|${WRKSRC}|g"
-
-.include <bsd.port.pre.mk>
+SUBSTITUTIONS=		-e "s|%%APP_HOME%%|${APP_HOME}|g" \
+			-e "s|%%APP_NAME%%|${APP_NAME}|g" \
+			-e "s|%%APXS%%|${APXS}|g" \
+			-e "s|%%COPYDIRS%%|${COPYDIRS}|g" \
+			-e "s|%%FILESDIR%%|${FILESDIR}|g" \
+			-e "s|%%GROUP%%|${GROUP}|g" \
+			-e "s|%%GID%%|${GID}|g" \
+			-e "s|%%JAVA_HOME%%|${JAVA_HOME}|g" \
+			-e "s|%%JAVA%%|${JAVA}|g" \
+			-e "s|%%LOG_FILE%%|${LOG_FILE}|g" \
+			-e "s|%%PYTHON_CMD%%|${PYTHON_CMD}|g" \
+			-e "s|%%PID_FILE%%|${PID_FILE}|g" \
+			-e "s|%%PORT%%|${PORT}|g" \
+			-e "s|%%PORTNAME%%|${PORTNAME}|g" \
+			-e "s|%%PREFIX%%|${PREFIX}|g" \
+			-e "s|%%RUNASUID%%|${RUNASUID}|g" \
+			-e "s|%%RUNASUSER%%|${RUNASUSER}|g" \
+			-e "s|%%WRKDIR%%|${WRKDIR}|g" \
+			-e "s|%%WRKSRC%%|${WRKSRC}|g"
 
 post-patch:
 .for FILE in ${REINPLACE_FILES}
@@ -127,11 +127,10 @@
 	@${ECHO_CMD} "    CauchoConfigFile ${PREFIX}/etc/${APP_NAME}.xml" >> ${PKGMESSAGE}
 	@${ECHO_CMD} "</IfModule>" >> ${PKGMESSAGE}
 .endif
-	@${MV} ${WRKDIR}/wrapper.pl.in ${WRKSRC}/bin/wrapper.pl.in
 
 # Resin does not handle installation, so proceed now
 post-install:
-	@${SH} ${WRKDIR}/install.sh
+	@${SETENV} RUNASUSER=${RUNASUSER} GROUP=${GROUP} ${SH} ${WRKDIR}/install.sh
 	@${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
 	@${ECHO_CMD}
 	@${ECHO_CMD} "********************************************************************************"
diff --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/resin2/distinfo ./distinfo
--- /usr/ports/www/resin2/distinfo	Sat Jul  3 00:10:15 2004
+++ ./distinfo	Mon Feb 21 15:05:35 2005
@@ -1,2 +1,2 @@
-MD5 (resin-2.1.14.tar.gz) = 03d1ce8746ba3a5082298fd617929620
-SIZE (resin-2.1.14.tar.gz) = 3305648
+MD5 (resin-2.1.16.tar.gz) = 0651cfa42705397be714cee27556b028
+SIZE (resin-2.1.16.tar.gz) = 3312495
diff --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/resin2/files/install.sh ./files/install.sh
--- /usr/ports/www/resin2/files/install.sh	Tue Mar 16 07:59:28 2004
+++ ./files/install.sh	Wed Jan 26 10:55:38 2005
@@ -28,7 +28,7 @@
 chmod 755 %%PREFIX%%/etc/rc.d/%%APP_NAME%%.sh
 echo Installed %%PREFIX%%/etc/rc.d/%%APP_NAME%%.sh
 
-install %%WRKSRC%%/bin/wrapper.pl %%PREFIX%%/sbin/%%APP_NAME%%ctl
+install %%WRKDIR%%/resinctl %%PREFIX%%/sbin/%%APP_NAME%%ctl
 echo Installed %%PREFIX%%/sbin/%%APP_NAME%%ctl
 
 test -d %%APP_HOME%% || mkdir %%APP_HOME%%
@@ -45,4 +45,4 @@
 ( cd %%WRKSRC%% && find %%COPYDIRS%% -type d -empty -delete )
 
 echo Installing in %%APP_HOME%%
-list | xargs tar -C %%WRKSRC%% -cf- | tar -C %%APP_HOME%% -xpf-
+list | ( cd %%WRKSRC%% && cpio -pdm -L -R $RUNASUSER:$GROUP %%APP_HOME%% )
diff --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/resin2/files/patch-wrapper ./files/patch-wrapper
--- /usr/ports/www/resin2/files/patch-wrapper	Thu Nov 20 22:25:09 2003
+++ ./files/patch-wrapper	Thu Jan  1 01:00:00 1970
@@ -1,8 +0,0 @@
---- bin/wrapper.pl.in.orig	Sat Oct  4 09:45:23 2003
-+++ bin/wrapper.pl.in	Sat Oct  4 09:45:43 2003
-@@ -1,4 +1,4 @@
--#! @PERL@
-+#! %%PERL%%
- #
- # Copyright(c) 1998-2002 Caucho Technology
- #
diff --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/resin2/files/pkg-message.in ./files/pkg-message.in
--- /usr/ports/www/resin2/files/pkg-message.in	Thu Nov 20 22:25:09 2003
+++ ./files/pkg-message.in	Mon Feb 21 15:05:35 2005
@@ -1,4 +1,14 @@
-Resin is now installed in %%APP_HOME%%.  You may want to start it using the
-startup script installed as %%PREFIX%%/etc/rc.d/%%APP_NAME%%.sh, and then point
-your web browser to the default home page at http://localhost:%%PORT%%/ to read
-the doc.  Resin can be configured using %%PREFIX%%/etc/%%APP_NAME%%.xml.
+Resin is now installed in %%APP_HOME%%
+
+You may want to activate it in /etc/rc.conf:
+
+%%APP_NAME%%_enable="YES"
+
+Then start it:
+
+env - %%PREFIX%%/etc/rc.d/%%APP_NAME%%.sh start
+
+And point your web browser to the default home page at
+http://localhost:%%PORT%%/ to read the documentation and test the samples.
+
+Resin configuration is located at %%PREFIX%%/etc/%%APP_NAME%%.xml
diff --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/resin2/files/resin.sh.in ./files/resin.sh.in
--- /usr/ports/www/resin2/files/resin.sh.in	Sat Jul  3 00:10:15 2004
+++ ./files/resin.sh.in	Mon Feb 21 15:05:35 2005
@@ -1,54 +1,31 @@
 #!/bin/sh
 #
-# Resin startup script.
+# $FreeBSD: ports/www/resin2/files/resin.sh.in,v 1.2 2004/07/02 22:10:15 glewis Exp $
 #
-# Borrowed from jakarta-tomcat41
+
+# PROVIDE: %%APP_NAME%%
+
 #
-# $FreeBSD: ports/www/resin2/files/resin.sh.in,v 1.2 2004/07/02 22:10:15 glewis Exp $
+# Add the following line to /etc/rc.conf to enable %%APP_NAME%%:
+#
+# %%APP_NAME%%_enable="YES"
 #
 
-# Determine PREFIX
-if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/${0##*/}\$"); then
-    echo "$0: Cannot determine the PREFIX" >&2
-    exit 1
-fi
-
-# Set some variables
-MYSELF=`basename $0`
-ARGS="-conf $PREFIX/etc/%%APP_NAME%%.xml \
--chdir \
--name %%APP_NAME%% \
--class com.caucho.server.http.HttpServer \
--pid %%PID_FILE%%"
-PATH=/usr/sbin:/usr/bin:/bin
-
-unset CLASSPATH
-export JAVA_HOME=%%JAVA_HOME%%
-export RESIN_HOME=$PREFIX/%%APP_NAME%%
-
-set -e
-
-case "$1" in
-    start)
-        echo -n ' '
-        truncate -s 0 %%PID_FILE%%
-        chown %%RUNASUSER%%:%%GROUP%% %%PID_FILE%%
-        chmod 600 %%PID_FILE%%
-        su -f -m %%RUNASUSER%% -c "exec $PREFIX/sbin/%%APP_NAME%%ctl $ARGS start" \
-            >/dev/null && echo -n '%%APP_NAME%%'
-        ;;
-
-    stop)
-        echo -n ' '
-        chown %%RUNASUSER%%:%%GROUP%% %%PID_FILE%%
-        chmod 600 %%PID_FILE%%
-        su -f -m %%RUNASUSER%% -c "exec $PREFIX/sbin/%%APP_NAME%%ctl $ARGS stop" \
-            >/dev/null 2>&1 ; echo -n '%%APP_NAME%%'
-        ;;
-    *)
-        echo ""
-        echo "Usage: ${MYSELF} { start | stop }"
-        echo ""
-        exit 64
-        ;;
-esac
+. /etc/rc.subr
+
+name=%%APP_NAME%%
+rcvar=`set_rcvar`
+
+command=%%PREFIX%%/sbin/%%APP_NAME%%ctl
+command_args="$1"
+pidfile=%%PID_FILE%%
+procname=%%JAVA%%
+
+# set defaults
+
+%%APP_NAME%%_enable=${%%APP_NAME%%_enable:-"NO"}
+%%APP_NAME%%_user=${%%APP_NAME%%_user:-"www"}
+%%APP_NAME%%_group=${%%APP_NAME%%_group:-"www"}
+
+load_rc_config ${name}
+run_rc_command "$1"
diff --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/resin2/files/resinctl ./files/resinctl
--- /usr/ports/www/resin2/files/resinctl	Thu Jan  1 01:00:00 1970
+++ ./files/resinctl	Mon Feb 21 15:52:23 2005
@@ -0,0 +1,189 @@
+#! %%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/cocoon/files/cocoonctl,v 1.1 2004/07/01 22:30:19 glewis 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
+
+def classpath():
+    classpath = []
+    resin_libdir = APP_HOME + "/lib"
+    java_libdir = os.environ['JAVA_HOME'] + "/lib"
+    for libdir in [resin_libdir, java_libdir]:
+        for file in os.listdir(libdir):
+            if re.search("\.jar$", file):
+                classpath.append(libdir + "/" + file)
+    return ':'.join(classpath)
+
+#    -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)
+    (unused_pid, status) = os.waitpid(pid, os.WNOHANG)
+
+    # Check program exit status, if available
+    if unused_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%%"
+    CONTROL_PROGRAM = "%%APP_NAME%%ctl"
+    PID_FILE = "%%PID_FILE%%"
+    COMMAND = "%%JAVA%%"
+    ARGS = [COMMAND]
+
+    if os.environ.has_key('JAVA_OPTS'):
+        ARGS += os.environ['JAVA_OPTS'].split(" ")
+
+    ARGS += [
+        "-Dresin.home=%%APP_HOME%%",
+        "com.caucho.server.http.HttpServer",
+        "-conf", "%%PREFIX%%/etc/%%APP_NAME%%.xml"
+        ]
+
+    os.environ['JAVA_HOME'] = "%%JAVA_HOME%%"
+    os.environ['CLASSPATH'] = classpath()
+
+    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 --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/resin2/pkg-plist ./pkg-plist
--- /usr/ports/www/resin2/pkg-plist	Sat Jul  3 00:10:15 2004
+++ ./pkg-plist	Mon Feb 21 15:05:35 2005
@@ -195,6 +195,7 @@
 %%APP_NAME%%/doc/java_tut/javadoc/package-list
 %%APP_NAME%%/doc/java_tut/javadoc/resources/inherit.gif
 %%APP_NAME%%/doc/java_tut/javadoc/stylesheet.css
+%%APP_NAME%%/doc/java_tut/jndi-appconfig.xtp
 %%APP_NAME%%/doc/java_tut/linux-boot.xtp
 %%APP_NAME%%/doc/java_tut/linux-init.xtp
 %%APP_NAME%%/doc/java_tut/mail_form.xtp
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050223154647.8539060F2>