Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Jan 2002 14:58:40 +0100
From:      Ernst de Haan <znerd@FreeBSD.org>
To:        java@FreeBSD.org
Subject:   Update port: www/orion
Message-ID:  <200201291358.g0TDwfB79368@zaphod.euronet.nl>

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

[-- Attachment #1 --]
Please review this patch if you're using the Orion port. I intend to commit 
it in a few days if there are no big issues.

Ernst

-- 
Ernst de Haan
EuroNet Internet B.V.

    "Come to me all who are weary and burdened
        and I will give you rest" -- Jesus Christ

[-- Attachment #2 --]
diff -ruN --exclude=work --exclude=CVS --exclude=README.html /usr/ports/www/orion/Makefile /home/ernst/freebsd-ports/www/orion/Makefile
--- /usr/ports/www/orion/Makefile	Fri Nov 23 13:46:10 2001
+++ /home/ernst/freebsd-ports/www/orion/Makefile	Tue Jan 29 14:50:31 2002
@@ -7,30 +7,34 @@
 
 PORTNAME=	orion
 PORTVERSION=	1.4.5
-PORTREVISION=	7
+PORTREVISION=	8
 CATEGORIES=	www java
-MASTER_SITES=	ftp://ftp.sunet.se/pub/database/utils/orionserver/ \
+MASTER_SITES=	http://www.orionserver.com/distributions/ \
 		http://www.metaverse.nl/~ernst/ \
 		${MASTER_SITE_LOCAL}
-MASTER_SITE_SUBDIR=	sobomax
+MASTER_SITE_SUBDIR=	znerd
 DISTNAME=	${PORTNAME}${PORTVERSION}
 
 MAINTAINER=	znerd@FreeBSD.org
 
-BUILD_DEPENDS=	${JAVA_HOME}/bin/java:${PORTSDIR}/java/jdk13
-RUN_DEPENDS=	${JAVA_HOME}/bin/java:${PORTSDIR}/java/jdk13
+BUILD_DEPENDS=	${JAVA_HOME}/bin/javac:${JAVA_PORT}
+RUN_DEPENDS=	${JAVA_HOME}/bin/javac:${JAVA_PORT}
 
 USE_ZIP=	YES
 NO_BUILD=	YES
 
 WRKSRC=		${WRKDIR}/${PORTNAME}
-PLIST_SUB+=	T=${ORION_HOME:S/^${PREFIX}\///}
-ORION_HOME?=	${PREFIX}/${PKGBASE}${PORTVERSION}
-PORTTITLE=	Orion Server
-ORIONCTL_NAME=	orionctl
-ORIONCTL_DEST=	${PREFIX}/bin/${ORIONCTL_NAME}
-RC_SCRIPT=	${PREFIX}/etc/rc.d/${PORTNAME}.sh
+APP_HOME?=	${PREFIX}/${PKGBASE}${PORTVERSION}
+LOG_DIR=	${APP_HOME}/log
+PLIST_SUB+=	T=${APP_HOME:S/^${PREFIX}\///}
+APP_TITLE=	Orion Server
+APP_SHORTNAME=	${PORTNAME}
+APPCTL_NAME=	${APP_SHORTNAME}ctl
+CTL_SCRIPT=	${PREFIX}/bin/${APPCTL_NAME}
+STARTUP_ORDER?=	020
+RC_SCRIPT=	${PREFIX}/etc/rc.d/${STARTUP_ORDER}.${PORTNAME}.sh
 JAVA_HOME?=	${LOCALBASE}/jdk1.3.1
+JAVA_PORT?=	${PORTSDIR}/java/jdk13
 JIKES_LOCATION=	${LOCALBASE}/bin/jikes
 WITH_JIKES?=	YES
 .if ${WITH_JIKES} == "YES"
@@ -44,15 +48,13 @@
 LISTEN_PORT?=	8090
 AUTO_START?=	YES
 
-.include <bsd.port.pre.mk>
-
 pre-install:
 	@${ECHO} "Installation settings:"
-	@${ECHO} "   Destination directory:   ${ORION_HOME}"
-	@${ECHO} "   Control script location: ${ORIONCTL_DEST}"
-	@${ECHO} "   Startup script location: ${RC_SCRIPT}"
+	@${ECHO} "   Destination directory:   ${APP_HOME}"
+	@${ECHO} "   Control script location: ${CTL_SCRIPT}"
 	@${ECHO} "   Startup script location: ${RC_SCRIPT}"
 	@${ECHO} "   Location of JDK:         ${JAVA_HOME}"
+	@${ECHO} "   Location of Java port:   ${JAVA_PORT}"
 	@${ECHO} "   Using Jikes:             ${WITH_JIKES}"
 	@${ECHO} "   Running as (user/group): ${USER_NAME}/${GROUP_NAME} (${USER_ID}:${GROUP_ID})"
 	@${ECHO} "   Port to listen at:       ${LISTEN_PORT}"
@@ -61,73 +63,77 @@
 do-install:
 	@# Add the group and the user if they do not exist
 	${PW} groupadd -n ${GROUP_NAME} -g ${GROUP_ID} || true
-	${PW} useradd -n ${USER_NAME} -u ${USER_ID} -g ${GROUP_NAME} -c "Orion Server account" -d ${ORION_HOME} -s ${SH} -h - || true
+	${PW} useradd -n ${USER_NAME} -u ${USER_ID} -g ${GROUP_NAME} -c "${APP_TITLE} account" -d ${APP_HOME} -s ${SH} -h - || true
 
-	@# Create the destination directory for Orion
-	${MKDIR} ${ORION_HOME}
+	@# Create the destination directory
+	${MKDIR} ${APP_HOME}
 
-	@# Copy all files and make them rwxr-xr-x
-	${CP} -R ${WRKSRC}/* ${ORION_HOME}
-	${CHMOD} 755 `find ${ORION_HOME} -type d`
+	@# Copy all files except .bat and .orig files
+	${RM} -f `${FIND} ${WRKSRC} -name '*.bat'`
+	${RM} -f `${FIND} ${WRKSRC} -name '*.orig'`
+	${CP} -R ${WRKSRC}/* ${APP_HOME}
+	${CHMOD} 755 `find ${APP_HOME} -type d`
 
 	@# Configure for use of Jikes, if necessary
 .if ${WITH_JIKES} == "YES"
 	${CAT} ${WRKSRC}/config/server.xml \
 	| ${SED} "/\<!-- \<compiler executable=\"jikes\" classpath=\"\/myjdkdir\/jre\/lib\/rt.jar\" \/\> -->/s//\<compiler executable=\"${JIKES_LOCATION:S/\//\\\//g}\" classpath=\"${JAVA_HOME:S/\//\\\//g}\/jre\/lib\/rt.jar\"\/\>/" \
-	> ${ORION_HOME}/config/server.xml
+	> ${APP_HOME}/config/server.xml
 .endif
 
 	@# Configure the port to listen to
 	${CAT} ${WRKSRC}/config/default-web-site.xml \
 	| ${SED} "/port=\"80\"/s//port=\"${LISTEN_PORT}\"/" \
-	> ${ORION_HOME}/config/default-web-site.xml
+	> ${APP_HOME}/config/default-web-site.xml
 
-	@# Install the 'orionctl' script
-	${CAT} ${FILESDIR}/${ORIONCTL_NAME} \
+	@# Install the control script
+	${CAT} ${FILESDIR}/${APPCTL_NAME} \
 	| ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \
 	| ${SED} "/%%PORTVERSION%%/s//${PORTVERSION}/" \
-	| ${SED} "/%%ORION_HOME%%/s//${ORION_HOME:S/\//\\\//g}/" \
+	| ${SED} "/%%APP_TITLE%%/s//${APP_TITLE}/" \
+	| ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
+	| ${SED} "/%%APP_HOME%%/s//${APP_HOME:S/\//\\\//g}/" \
+	| ${SED} "/%%LOG_DIR%%/s//${LOG_DIR:S/\//\\\//g}/" \
 	| ${SED} "/%%RC_SCRIPT_NAME%%/s//${PORTNAME}.sh/" \
 	| ${SED} "/%%JAVA_HOME%%/s//${JAVA_HOME:S/\//\\\//g}/" \
 	| ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
-	> ${ORIONCTL_DEST}
-	${CHMOD} 755 ${ORIONCTL_DEST}
+	> ${CTL_SCRIPT}
+	${CHMOD} 755 ${CTL_SCRIPT}
+
+	@# Install the startup script
+	${LN} -sf ${CTL_SCRIPT} ${RC_SCRIPT}
+
+	@# Create the directories that the application will create it at the
+	@# first run
+	${MKDIR} ${APP_HOME}/application-deployments
 
 	@# Fix a small typo in the index.html served as the root
 	${CAT} ${WRKSRC}/default-web-app/index.html \
 	| ${SED} "/1\.4\.0/s//${PORTVERSION}/" \
-	> ${ORION_HOME}/default-web-app/index.html
-
-	@# Install the startup script
-	${LN} -sf ${ORIONCTL_DEST} ${RC_SCRIPT}
-
-	@# Create the 'application-deployments' directory, since Orion will
-	@# otherwise create it when it is first run
-	${MKDIR} ${ORION_HOME}/application-deployments
+	> ${APP_HOME}/default-web-app/index.html
 
 	@# Install the tools.jar file from the JDK, since it is needed by Orion
-	${LN} -sf ${JAVA_HOME}/lib/tools.jar ${ORION_HOME}/tools.jar
+	${LN} -sf ${JAVA_HOME}/lib/tools.jar ${APP_HOME}/tools.jar
 
 	@# Change ownership for the files
-	${CHOWN} -R ${USER_NAME}:${GROUP_NAME} ${ORION_HOME}
+	${CHOWN} -R ${USER_NAME}:${GROUP_NAME} ${APP_HOME}
 
 	@# Install the man page
 .if !defined(NOPORTDOCS)
-	${CAT} ${FILESDIR}/${ORIONCTL_NAME}.1 \
+	${CAT} ${FILESDIR}/${APPCTL_NAME}.1 \
 	| ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \
-	> ${WRKDIR}/${ORIONCTL_NAME}.1
-	${INSTALL_MAN} ${WRKDIR}/${ORIONCTL_NAME}.1 ${MANPREFIX}/man/man1
+	> ${WRKDIR}/${APPCTL_NAME}.1
+	${INSTALL_MAN} ${WRKDIR}/${APPCTL_NAME}.1 ${MANPREFIX}/man/man1
 .endif
 
 post-install:
-	@${ECHO} "${PORTTITLE} ${PORTVERSION} has been installed in ${ORION_HOME}."
+	@${ECHO} "${APP_TITLE} ${PORTVERSION} has been installed in ${APP_HOME}."
 .if !defined(NOPORTDOCS)
-	@${ECHO} "Use 'man orionctl' for information about starting and stopping Orion."
+	@${ECHO} "Use 'man ${APPCTL_NAME}' for information about starting and stopping ${APP_TITLE}."
 .endif
 .if ${AUTO_START} == "YES"
-	@${ECHO} -n "Starting..."
-	@${RC_SCRIPT} start
-	@${ECHO} ""
+	@${ECHO} "Starting ${APP_TITLE}..."
+	@${CTL_SCRIPT} start || true
 .endif
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff -ruN --exclude=work --exclude=CVS --exclude=README.html /usr/ports/www/orion/files/orionctl /home/ernst/freebsd-ports/www/orion/files/orionctl
--- /usr/ports/www/orion/files/orionctl	Tue Oct  9 16:43:07 2001
+++ /home/ernst/freebsd-ports/www/orion/files/orionctl	Tue Jan 29 13:55:49 2002
@@ -1,13 +1,12 @@
 #!/bin/sh
 
 # Set some variables
-NAME=%%PORTNAME%%
 VERSION=%%PORTVERSION%%
-ORION_HOME=%%ORION_HOME%%
+APP_HOME=%%APP_HOME%%
 USER_NAME=%%USER_NAME%%
-LOG=${ORION_HOME}/log/${NAME}.log
-PID_FILE=/var/run/${NAME}.pid
-JAR_FILE=${ORION_HOME}/${NAME}.jar
+LOG=%%LOG_DIR%%/%%APP_SHORTNAME%%.log
+PID_FILE=/var/run/%%PORTNAME%%.pid
+JAR_FILE=${APP_HOME}/%%APP_SHORTNAME%%.jar
 MYSELF=`basename $0`
 
 # Check if we're being run as a shell script or as an rc script
@@ -24,82 +23,95 @@
 fi
 JAVA_CMD=${JAVA_HOME}/bin/java
 
-case "$1" in
-	start)
-		# Make sure Orion is not started previously
-		if [ -e ${PID_FILE} ]; then
-			if [ "${AS_RC_SCRIPT}" = "yes" ]; then
-				echo ""
-			fi
-			echo "${NAME}: ERROR: Found Orion PID file at ${PID_FILE}. Orion is probably already running."
-			exit 1
-		fi
-
-		# Make sure the Orion directory does exist
-		if [ ! -d ${ORION_HOME} ]; then
-			if [ "${AS_RC_SCRIPT}" = "yes" ]; then
-				echo ""
-			fi
-			echo "${NAME}: ERROR: Unable to find Orion home directory at ${ORION_HOME}."
-			exit 2
-		fi
-
-		# Make sure the Orion JAR file exists
-		if [ ! -r ${JAR_FILE} ]; then
-			if [ "${AS_RC_SCRIPT}" = "yes" ]; then
-				echo ""
-			fi
-			echo "${NAME}: ERROR: Unable to find Orion JAR file at ${JAR_FILE}."
-			exit 3
-		fi
-
-		# Make sure the Java VM can be found
-		if [ ! -x ${JAVA_CMD} ]; then
-			if [ "${AS_RC_SCRIPT}" = "yes" ]; then
-				echo ""
-			fi
-			echo "${NAME}: ERROR: Unable to find Java VM at ${JAVA_HOME}."
-			exit 4
+# Function that starts the application
+start() {
+	# Make sure the application is not started previously
+	if [ -e ${PID_FILE} ]; then
+		if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+			echo ""
 		fi
+		echo "%%APP_SHORTNAME%%: ERROR: Found %%APP_TITLE%% PID file at ${PID_FILE}. It is probably already running."
+		exit 1
+	fi
 
-		# Create the process ID file
-		rm -f ${PID_FILE}
-		touch ${PID_FILE}
-		chown ${USER_NAME} ${PID_FILE}
-		chmod 600 ${PID_FILE}
+	# Make sure the application directory does exist
+	if [ ! -d ${APP_HOME} ]; then
+		if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+			echo ""
+		fi
+		echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
+		exit 2
+	fi
 
+	# Make sure the application JAR file exists
+	if [ ! -r ${JAR_FILE} ]; then
 		if [ "${AS_RC_SCRIPT}" = "yes" ]; then
-			echo -n " ${NAME}"
+			echo ""
 		fi
-		touch ${PID_FILE}
-		chown ${USER_NAME} ${PID_FILE}
-		chmod 600 ${PID_FILE}
-		su - ${USER_NAME} -c "(cd ${ORION_HOME} && ${JAVA_CMD} -jar orion.jar & echo \$! > ${PID_FILE}) > ${LOG} 2>&1"
-		;;
-	stop)
-		if [ ! -e ${PID_FILE} ]; then
+		echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
+		exit 3
+	fi
+
+	# Make sure the Java VM can be found
+	if [ ! -x ${JAVA_CMD} ]; then
+		if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+			echo ""
+		fi
+		echo "%%APP_SHORTNAME%%: ERROR: Unable to find Java VM at ${JAVA_HOME}."
+		exit 4
+	fi
+
+	# Create the process ID file
+	rm -f ${PID_FILE}
+	touch ${PID_FILE}
+	chown ${USER_NAME} ${PID_FILE}
+	chmod 600 ${PID_FILE}
+
+	if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+		echo -n " %%APP_SHORTNAME%%"
+	fi
+	touch ${PID_FILE}
+	chown ${USER_NAME} ${PID_FILE}
+	chmod 600 ${PID_FILE}
+	su - ${USER_NAME} -c "(cd ${APP_HOME} && ${JAVA_CMD} -jar ${JAR_FILE} & echo \$! > ${PID_FILE}) > ${LOG} 2>&1"
+}
+
+# Function that stops the application
+stop() {
+	if [ ! -e ${PID_FILE} ]; then
 
-			# If run as an rc script, die silently...
-			if [ "${AS_RC_SCRIPT}" = "yes" ]; then
-				exit 0
-
-			# ...otherwise complain
-			else
-				echo "${NAME}: ERROR: Unable to find Orion PID file at ${PID_FILE}. Orion is probably not running."
-				exit 16
-			fi
+		# If run as an rc script, die silently...
+		if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+			exit 0
+
+		# ...otherwise complain
 		else
-			if [ "${AS_RC_SCRIPT}" = "yes" ]; then
-				echo -n " ${NAME}"
-			fi
-			/bin/kill `cat ${PID_FILE}`
-			rm -f ${PID_FILE}
+			echo "%%APP_SHORTNAME%%: ERROR: Unable to find %%APP_TITLE%% PID file at ${PID_FILE}. It is probably not running."
+			exit 16
 		fi
+	else
+		if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+			echo -n " %%APP_SHORTNAME%%"
+		fi
+		/bin/kill `cat ${PID_FILE}`
+		rm -f ${PID_FILE}
+	fi
+}
 
+case "$1" in
+	start)
+		start
+		;;
+	stop)
+		stop
+		;;
+	restart)
+		stop
+		start
 		;;
 	*)
 		echo ""
-		echo "Usage: ${MYSELF} { start | stop }"
+		echo "Usage: ${MYSELF} { start | stop | restart }"
 		echo ""
 		exit 64
 		;;
diff -ruN --exclude=work --exclude=CVS --exclude=README.html /usr/ports/www/orion/pkg-deinstall /home/ernst/freebsd-ports/www/orion/pkg-deinstall
--- /usr/ports/www/orion/pkg-deinstall	Tue Jun 12 12:20:47 2001
+++ /home/ernst/freebsd-ports/www/orion/pkg-deinstall	Tue Jan 29 13:34:29 2002
@@ -1,7 +1,7 @@
 #!/bin/sh
 PID_FILE=/var/run/orion.pid
 if [ -e ${PID_FILE} ]; then
-	echo -n "Orion is still running."
+	echo -n "Orion Server is still running."
 	/bin/kill `cat ${PID_FILE}`
 	rm -f ${PID_FILE}
 	echo " Stopped."
diff -ruN --exclude=work --exclude=CVS --exclude=README.html /usr/ports/www/orion/pkg-descr /home/ernst/freebsd-ports/www/orion/pkg-descr
--- /usr/ports/www/orion/pkg-descr	Tue Jun 12 12:20:47 2001
+++ /home/ernst/freebsd-ports/www/orion/pkg-descr	Tue Jan 29 14:54:15 2002
@@ -1,16 +1,20 @@
-Orion is a J2EE (Java 2 Enterprise Edition) compliant Application Server. It
-supports all major standards including HTTP/1.1, JSP 1.1, EJB 1.1, Servlet
-2.2, JNDI 1.2 and others. It also offers clustering support and some unique
-auto-deployment features.
+Orion, a J2EE (Java 2 Enterprise Edition) compliant
+Application Server (stable version). It supports all major
+standards including HTTP 1.1, JSP 1.1, EJB 1.1, Servlet 2.2,
+JNDI 1.2 and others. It also offers clustering support and
+some unique auto-deployment features.
 
-This version is only for development use or for non-commercial
-use. You need to purchase a license from http://www.orionserver.com/
-if you would like to use this server commercially.
+This version is only for development use or for
+non-commercial use.  You need to purchase a license from
+http://www.orionserver.com/ if you would like to use this
+server commercially.
 
-This port will install an 'orionctl' script in ${PREFIX}/bin that can be used
-to start and stop the server. A man page for this script is installed.
+This port will install an 'orionctl' script in ${PREFIX}/bin
+that can be used to start and stop the server. A man page
+for this script is installed.
 
-A script in ${PREFIX}/etc/rc.d/orion.sh typically causes Orion to be started
-at boot time. This script is in fact a symlink to the orionctl script.
+A script in ${PREFIX}/etc/rc.d typically causes Orion to be
+started at boot time. This script is in fact a symlink to
+the orionctl script.
 
 WWW: http://www.orionserver.com/

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