From ernst@heinz.jollem.com  Fri May 25 10:14:18 2001
Return-Path: <ernst@heinz.jollem.com>
Received: from heinz.jollem.com (c104187.upc-c.chello.nl [212.187.104.187])
	by hub.freebsd.org (Postfix) with ESMTP
	id C746837B424; Fri, 25 May 2001 10:13:41 -0700 (PDT)
	(envelope-from ernst@heinz.jollem.com)
Received: (from ernst@localhost)
	by heinz.jollem.com (8.11.3/8.11.3) id f4PHC0933190;
	Fri, 25 May 2001 19:12:00 +0200 (CEST)
	(envelope-from ernst)
Message-Id: <200105251712.f4PHC0933190@heinz.jollem.com>
Date: Fri, 25 May 2001 19:12:00 +0200 (CEST)
From: ernst@jollem.com
Reply-To: ernst@heinz.jollem.com
To: FreeBSD-gnats-submit@freebsd.org
Cc: java@freebsd.org, K.J.Koster@kpn.com
Subject: Update port: java/orion
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         27643
>Category:       ports
>Synopsis:       Update port: java/orion
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Fri May 25 10:20:00 PDT 2001
>Closed-Date:    Tue May 29 10:10:29 PDT 2001
>Last-Modified:  Tue May 29 10:10:55 PDT 2001
>Originator:     Ernst de Haan
>Release:        FreeBSD 4.3-RELEASE i386
>Organization:
Jollem Information Technology
>Environment:
System: FreeBSD heinz.jollem.com 4.3-RELEASE FreeBSD 4.3-RELEASE #5: Mon May 14 16:08:56 CEST 2001 root@heinz.jollem.com:/usr/src/sys/compile/HEINZ i386
>Description:
Summary: Update that introduces extra flexibility for the installation process
and other improvements in the Makefile. It also introduces quite a few
improvements in the `orionctl' script.

Thanks go to Kees Jan Koster for testing, bug hunting and tons of great
suggestions!!!

Note that the version of this port is still 1.4.5, since newer versions
(1.4.8, 1.5.0 and 1.5.1) still seem to expose serious problems, at least
according to the orion-interest mailing list.

List of changes:

[1] Portrevision up from 3 to 4

[2] JAVA_HOME can be overridden by setting it as an env. var. when installing.
    For example (with bash):

       bash-2.05# echo $JAVA_HOME
       /usr/local/linux-jdk1.3.1
       bash-2.05# make install
       ===>  Extracting for orion-1.4.5_4
       >> Checksum OK for orion1.4.5.zip.
       ===>   orion-1.4.5_4 depends on executable: unzip - found
       ===>  Patching for orion-1.4.5_4
       ===>  Configuring for orion-1.4.5_4
       ===>  Installing for orion-1.4.5_4
       ===>   orion-1.4.5_4 depends on file: /usr/local/linux-jdk1.3.1/bin/java - found

[3] Using PLIST_SUB in Makefile and pkg-plist files

[4] Not aborting the installation if the Orion home directory already exists.
    This means that:

       # make install ; orionctl start ; orionctl stop ; \
         make deinstall ; make install

    will not fail. The deinstall will not delete the `log' and
    `application-deployments' directories, and the new install will leave them
    as they are. Thus it is possible to deinstall/reinstall without losing
    logs and application deployments.

[5] Customizing the `orionctl' script at install-time to use the correct
    JAVA_HOME, ORION_HOME, PORTNAME, PORTVERSION and RC_SCRIPT_NAME.

[6] Creating a symlink from ${ORION_HOME}/tools.jar to
    ${JAVA_HOME}/lib/tools.jar. This is needed so that Orion can automatically
    compile JSP files at runtime.

[7] Removed orion.sh.zip from the distinfo file.

[8] The `orionctl' script now correctly determines if it is run as an rc
    script or as a shell script.

[9] Improved error handling and output in the `orionctl' script.

TODO: When calling `orionctl start' detect the situation where the process is
      no longer running, although there is still a PID file.

TODO: Create a separate user and user group for Orion.

>How-To-Repeat:
N/A
>Fix:

diff -ruN --exclude=CVS /usr/ports/java/orion/Makefile /home/ernst/freebsd-ports/java/orion/Makefile
--- /usr/ports/java/orion/Makefile	Mon May 21 21:47:35 2001
+++ /home/ernst/freebsd-ports/java/orion/Makefile	Fri May 25 19:02:02 2001
@@ -7,7 +7,7 @@
 
 PORTNAME=	orion
 PORTVERSION=	1.4.5
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	java www
 MASTER_SITES=	ftp://ftp.sunet.se/pub/database/utils/orionserver/ \
 		http://www.jollem.com/ \
@@ -16,34 +16,40 @@
 
 MAINTAINER=	ernst@jollem.com
 
-RUN_DEPENDS=	${LOCALBASE}/linux-jdk1.3.0/bin/java:${PORTSDIR}/java/linux-jdk13
+RUN_DEPENDS=	${JAVA_HOME}/bin/java:${PORTSDIR}/java/linux-jdk13
 
 USE_ZIP=	YES
 NO_BUILD=	YES
 
 WRKSRC=		${WRKDIR}/${PORTNAME}
-ORION_DESTDIR=	${PREFIX}/${DISTNAME}
+PLIST_SUB+=	TARGET_PREFIX=${TARGET_PREFIX:S/^${PREFIX}\///}
+ORION_HOME=	${PREFIX}/${DISTNAME}
 PORTTITLE=	Orion Server
 ORIONCTL_NAME=	orionctl
 ORIONCTL_DEST=	${PREFIX}/bin/${ORIONCTL_NAME}
 RC_SCRIPT=	${PREFIX}/etc/rc.d/${PORTNAME}.sh
+JAVA_HOME?=	${LOCALBASE}/linux-jdk1.3.0
+TARGET_PREFIX?=	${PREFIX}/${PKGBASE}${PORTVERSION}
 
 .include <bsd.port.pre.mk>
 
 do-install:
-	@if [ -d ${ORION_DESTDIR} ]; then \
-		${ECHO} "ERROR: The destination directory ${ORION_DESTDIR} already exists. Cancelling."; \
-		exit 65; \
-	fi
-	@${MKDIR} ${ORION_DESTDIR}
-	@${CP} -R ${WRKSRC}/* ${ORION_DESTDIR}
-	@${CHMOD} 755 `find ${ORION_DESTDIR} -type d`
-	@${CP} ${FILESDIR}/${ORIONCTL_NAME}  ${ORIONCTL_DEST}
+	@${MKDIR} ${ORION_HOME}
+	@${CP} -R ${WRKSRC}/* ${ORION_HOME}
+	@${CHMOD} 755 `find ${ORION_HOME} -type d`
+	@${CAT} ${FILESDIR}/${ORIONCTL_NAME} \
+	| ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \
+	| ${SED} "/%%PORTVERSION%%/s//${PORTVERSION}/" \
+	| ${SED} "/%%ORION_HOME%%/s//${ORION_HOME:S/\//\\\//g}/" \
+	| ${SED} "/%%RC_SCRIPT_NAME%%/s//${PORTNAME}.sh/" \
+	| ${SED} "/%%JAVA_HOME%%/s//${JAVA_HOME:S/\//\\\//g}/" \
+	> ${ORIONCTL_DEST}
 	@${CHMOD} 755 ${ORIONCTL_DEST}
-	@${LN} -s ${ORIONCTL_DEST} ${RC_SCRIPT}
-	@${MKDIR} ${ORION_DESTDIR}/application-deployments
+	@${LN} -sf ${ORIONCTL_DEST} ${RC_SCRIPT}
+	@${MKDIR} ${ORION_HOME}/application-deployments
+	@${LN} -sf ${JAVA_HOME}/jre/tools.jar ${ORION_HOME}/tools.jar
 
 post-install:
-	@echo "${PORTTITLE} ${PORTVERSION} has been installed in ${ORION_DESTDIR}."
+	@echo "${PORTTITLE} ${PORTVERSION} has been installed in ${ORION_HOME}."
 
 .include <bsd.port.post.mk>
diff -ruN --exclude=CVS /usr/ports/java/orion/distinfo /home/ernst/freebsd-ports/java/orion/distinfo
--- /usr/ports/java/orion/distinfo	Wed May  9 12:09:46 2001
+++ /home/ernst/freebsd-ports/java/orion/distinfo	Wed May 23 17:29:24 2001
@@ -1,2 +1 @@
 MD5 (orion1.4.5.zip) = efdcae8bdcdf6a8bc94ab4982a8192a2
-MD5 (orion.sh.zip) = e362e17c6bfd5c300ca3896a06a94bca
diff -ruN --exclude=CVS /usr/ports/java/orion/files/orionctl /home/ernst/freebsd-ports/java/orion/files/orionctl
--- /usr/ports/java/orion/files/orionctl	Mon May 21 21:47:35 2001
+++ /home/ernst/freebsd-ports/java/orion/files/orionctl	Fri May 25 17:52:20 2001
@@ -1,68 +1,102 @@
 #!/bin/sh
 
-if [ "${LOCALBASE}a" = "a" ]; then
-	LOCALBASE=/usr/local
+# Set some more variables
+NAME=%%PORTNAME%%
+VERSION=%%PORTVERSION%%
+ORION_HOME=%%ORION_HOME%%
+LOG=${ORION_HOME}/log/${NAME}.log
+PID_FILE=/var/run/${NAME}.pid
+JAR_FILE=${ORION_HOME}/${NAME}.jar
+MYSELF=`basename $0`
+
+# Check if we're being run as a shell script or as an rc script
+if [ ${MYSELF} = "%%RC_SCRIPT_NAME%%" ]; then
+	AS_RC_SCRIPT=yes
+else
+	AS_RC_SCRIPT=no
 fi
 
-NAME=orion
-ORION_HOME=${LOCALBASE}/orion1.4.5
-LOG=${ORION_HOME}/log/orion.log
-PID_FILE=/var/run/orion.pid
-JAR_FILE=${ORION_HOME}/orion.jar
-
+# Check if the JAVA_HOME directory is defined, otherwise set it to the
+# fallback default
 if [ "${JAVA_HOME}a" = "a" ]; then
-	JAVA_HOME=${LOCALBASE}/linux-jdk1.3.0
+	JAVA_HOME=%%JAVA_HOME%%
 fi
 JAVA_CMD=${JAVA_HOME}/bin/java
 
-# TODO: Check if we are being run at boot time right now
-
-
 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: Orion has already been started."
+			echo "${NAME}: ERROR: Found Orion PID file at ${PID_FILE}. Orion is probably already running."
+			exit 64
+		fi
+
 		# Make sure the Orion directory does exist
 		if [ ! -d ${ORION_HOME} ]; then
-			echo ""
+			if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+				echo ""
+			fi
 			echo "${NAME}: ERROR: Unable to find Orion home directory at ${ORION_HOME}."
 			exit 64
 		fi
 
 		# Make sure the Orion JAR file exists
 		if [ ! -r ${JAR_FILE} ]; then
-			echo ""
+			if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+				echo ""
+			fi
 			echo "${NAME}: ERROR: Unable to find Orion JAR file at ${JAR_FILE}."
 			exit 64
 		fi
 
 		# Make sure the Java VM can be found
 		if [ ! -x ${JAVA_CMD} ]; then
-			echo ""
+			if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+				echo ""
+			fi
 			echo "${NAME}: ERROR: Unable to find Java VM at ${JAVA_HOME}."
 			exit 64
 		fi
 
 		# Create the process ID file
-		rm -rf ${PID_FILE}
+		rm -f ${PID_FILE}
 		touch ${PID_FILE}
 		chown root:wheel ${PID_FILE}
 		chmod 600 ${PID_FILE}
 
-		echo -n ' orion'
+		if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+			echo -n " ${NAME}"
+		fi
 		( cd ${ORION_HOME} && ${JAVA_CMD} -jar orion.jar & echo $! > ${PID_FILE} ) > ${LOG} 2>&1
 		;;
 	stop)
 		if [ ! -e ${PID_FILE} ]; then
-			echo ""
-			echo "${NAME}: ERROR: Unable to find Orion PID file at ${PID_FILE}."
-			exit 64
+
+			# 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 64
+			fi
+		else
+			if [ "${AS_RC_SCRIPT}" = "yes" ]; then
+				echo -n " ${NAME}"
+			fi
+			/bin/kill `cat ${PID_FILE}`
+			rm ${PID_FILE}
 		fi
 
-		/bin/kill `cat ${PID_FILE}`
-		echo -n ' orion'
 		;;
 	*)
 		echo ""
-		echo "Usage: `basename $0` { start | stop }"
+		echo "Usage: ${MYSELF} { start | stop }"
 		echo ""
 		exit 64
 		;;
diff -ruN --exclude=CVS /usr/ports/java/orion/pkg-plist /home/ernst/freebsd-ports/java/orion/pkg-plist
--- /usr/ports/java/orion/pkg-plist	Mon May 21 21:47:35 2001
+++ /home/ernst/freebsd-ports/java/orion/pkg-plist	Fri May 25 17:48:39 2001
@@ -1,395 +1,396 @@
 etc/rc.d/orion.sh
 bin/orionctl
-orion1.4.5/config/database-schemas/hypersonic.xml
-orion1.4.5/config/database-schemas/ms-access.xml
-orion1.4.5/config/database-schemas/ms-sql.xml
-orion1.4.5/config/database-schemas/oracle.xml
-orion1.4.5/config/database-schemas/postgresql.xml
-orion1.4.5/config/database-schemas/sybase.xml
-orion1.4.5/config/data-sources.xml
-orion1.4.5/config/default-web-site.xml
-orion1.4.5/config/global-web-application.xml
-orion1.4.5/config/jms.xml
-orion1.4.5/config/mime.types
-orion1.4.5/config/principals.xml
-orion1.4.5/config/rmi.xml
-orion1.4.5/config/application.xml
-orion1.4.5/config/server.xml
-orion1.4.5/default-web-app/examples/cal/TableBean.txt
-orion1.4.5/default-web-app/examples/cal/cal1.txt
-orion1.4.5/default-web-app/examples/cal/cal2.jsp
-orion1.4.5/default-web-app/examples/cal/cal2.txt
-orion1.4.5/default-web-app/examples/cal/calendar.html
-orion1.4.5/default-web-app/examples/cal/Entries.txt
-orion1.4.5/default-web-app/examples/cal/Entry.txt
-orion1.4.5/default-web-app/examples/cal/JspCalendar.txt
-orion1.4.5/default-web-app/examples/cal/login.html
-orion1.4.5/default-web-app/examples/cal/cal1.jsp
-orion1.4.5/default-web-app/examples/images/code.gif
-orion1.4.5/default-web-app/examples/images/execute.gif
-orion1.4.5/default-web-app/examples/images/return.gif
-orion1.4.5/default-web-app/examples/jsp/include/foo.html
-orion1.4.5/default-web-app/examples/jsp/include/foo.jsp
-orion1.4.5/default-web-app/examples/jsp/include/inc.html
-orion1.4.5/default-web-app/examples/jsp/include/include.jsp
-orion1.4.5/default-web-app/examples/jsp/include/include.txt
-orion1.4.5/default-web-app/examples/jsp/checkbox/check.html
-orion1.4.5/default-web-app/examples/jsp/checkbox/checkresult.jsp
-orion1.4.5/default-web-app/examples/jsp/checkbox/checkresult.txt
-orion1.4.5/default-web-app/examples/jsp/checkbox/CheckTest.html
-orion1.4.5/default-web-app/examples/jsp/checkbox/cresult.html
-orion1.4.5/default-web-app/examples/jsp/colors/clr.html
-orion1.4.5/default-web-app/examples/jsp/colors/ColorGameBean.html
-orion1.4.5/default-web-app/examples/jsp/colors/colors.html
-orion1.4.5/default-web-app/examples/jsp/colors/colors.txt
-orion1.4.5/default-web-app/examples/jsp/colors/colrs.jsp
-orion1.4.5/default-web-app/examples/jsp/dates/date.html
-orion1.4.5/default-web-app/examples/jsp/dates/date.jsp
-orion1.4.5/default-web-app/examples/jsp/dates/date.txt
-orion1.4.5/default-web-app/examples/jsp/error/er.html
-orion1.4.5/default-web-app/examples/jsp/error/err.jsp
-orion1.4.5/default-web-app/examples/jsp/error/err.txt
-orion1.4.5/default-web-app/examples/jsp/error/error.html
-orion1.4.5/default-web-app/examples/jsp/error/errorpge.jsp
-orion1.4.5/default-web-app/examples/jsp/forward/forward.jsp
-orion1.4.5/default-web-app/examples/jsp/forward/forward.txt
-orion1.4.5/default-web-app/examples/jsp/forward/fwd.html
-orion1.4.5/default-web-app/examples/jsp/forward/one.jsp
-orion1.4.5/default-web-app/examples/jsp/forward/two.html
-orion1.4.5/default-web-app/examples/jsp/snp/snoop.html
-orion1.4.5/default-web-app/examples/jsp/snp/snoop.jsp
-orion1.4.5/default-web-app/examples/jsp/snp/snoop.txt
-orion1.4.5/default-web-app/examples/jsp/cal/TableBean.txt
-orion1.4.5/default-web-app/examples/jsp/cal/cal1.txt
-orion1.4.5/default-web-app/examples/jsp/cal/cal2.jsp
-orion1.4.5/default-web-app/examples/jsp/cal/cal2.txt
-orion1.4.5/default-web-app/examples/jsp/cal/calendar.html
-orion1.4.5/default-web-app/examples/jsp/cal/Entries.txt
-orion1.4.5/default-web-app/examples/jsp/cal/Entry.txt
-orion1.4.5/default-web-app/examples/jsp/cal/JspCalendar.txt
-orion1.4.5/default-web-app/examples/jsp/cal/login.html
-orion1.4.5/default-web-app/examples/jsp/cal/cal1.jsp
-orion1.4.5/default-web-app/examples/jsp/jsptoserv/hello.jsp
-orion1.4.5/default-web-app/examples/jsp/jsptoserv/jsptoservlet.jsp
-orion1.4.5/default-web-app/examples/jsp/jsptoserv/jts.html
-orion1.4.5/default-web-app/examples/jsp/jsptoserv/jts.txt
-orion1.4.5/default-web-app/examples/jsp/jsptoserv/stj.txt
-orion1.4.5/default-web-app/examples/jsp/num/numguess.html
-orion1.4.5/default-web-app/examples/jsp/num/numguess.jsp
-orion1.4.5/default-web-app/examples/jsp/num/numguess.txt
-orion1.4.5/default-web-app/examples/jsp/plugin/applet/Clock2.class
-orion1.4.5/default-web-app/examples/jsp/plugin/applet/Clock2.java
-orion1.4.5/default-web-app/examples/jsp/plugin/plugin.html
-orion1.4.5/default-web-app/examples/jsp/plugin/plugin.jsp
-orion1.4.5/default-web-app/examples/jsp/plugin/plugin.txt
-orion1.4.5/default-web-app/examples/jsp/sessions/carts.html
-orion1.4.5/default-web-app/examples/jsp/sessions/carts.jsp
-orion1.4.5/default-web-app/examples/jsp/sessions/carts.txt
-orion1.4.5/default-web-app/examples/jsp/sessions/crt.html
-orion1.4.5/default-web-app/examples/jsp/sessions/DummyCart.html
-orion1.4.5/default-web-app/examples/jsp/taglib/loop/META-INF/taglib.tld
-orion1.4.5/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.class
-orion1.4.5/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.java
-orion1.4.5/default-web-app/examples/jsp/taglib/loop/index.html
-orion1.4.5/default-web-app/examples/jsp/taglib/loop/looptag.jsp
-orion1.4.5/default-web-app/examples/jsp/taglib/loop/looptag.jsp.txt
-orion1.4.5/default-web-app/examples/jsp/taglib/loop/looptags.jar
-orion1.4.5/default-web-app/examples/jsp/index.html
-orion1.4.5/default-web-app/examples/perl/helloworld.pl
-orion1.4.5/default-web-app/examples/perl/post.html
-orion1.4.5/default-web-app/examples/perl/post.pl
-orion1.4.5/default-web-app/examples/ssi/other.txt
-orion1.4.5/default-web-app/examples/ssi/real.txt
-orion1.4.5/default-web-app/examples/ssi/ssi.shtml
-orion1.4.5/default-web-app/examples/xsl/data.xml
-orion1.4.5/default-web-app/examples/xsl/data.xsl
-orion1.4.5/default-web-app/examples/xsl/doc.dtd
-orion1.4.5/default-web-app/examples/xsl/doc.jsp
-orion1.4.5/default-web-app/examples/xsl/doc.xml
-orion1.4.5/default-web-app/examples/xsl/doc.xsl
-orion1.4.5/default-web-app/WEB-INF/classes/colors/ColorGameBean.class
-orion1.4.5/default-web-app/WEB-INF/classes/colors/ColorGameBean.java
-orion1.4.5/default-web-app/WEB-INF/classes/num/NumberGuessBean.class
-orion1.4.5/default-web-app/WEB-INF/classes/num/NumberGuessBean.java
-orion1.4.5/default-web-app/WEB-INF/classes/error/Smart.class
-orion1.4.5/default-web-app/WEB-INF/classes/error/Smart.java
-orion1.4.5/default-web-app/WEB-INF/classes/sessions/DummyCart.class
-orion1.4.5/default-web-app/WEB-INF/classes/sessions/DummyCart.java
-orion1.4.5/default-web-app/WEB-INF/classes/dates/JspCalendar.class
-orion1.4.5/default-web-app/WEB-INF/classes/dates/JspCalendar.java
-orion1.4.5/default-web-app/WEB-INF/classes/cal/TableBean.java
-orion1.4.5/default-web-app/WEB-INF/classes/cal/Entries.java
-orion1.4.5/default-web-app/WEB-INF/classes/cal/Entry.class
-orion1.4.5/default-web-app/WEB-INF/classes/cal/Entry.java
-orion1.4.5/default-web-app/WEB-INF/classes/cal/JspCalendar.class
-orion1.4.5/default-web-app/WEB-INF/classes/cal/JspCalendar.java
-orion1.4.5/default-web-app/WEB-INF/classes/cal/TableBean.class
-orion1.4.5/default-web-app/WEB-INF/classes/cal/Entries.class
-orion1.4.5/default-web-app/WEB-INF/classes/checkbox/CheckTest.class
-orion1.4.5/default-web-app/WEB-INF/classes/checkbox/CheckTest.java
-orion1.4.5/default-web-app/WEB-INF/classes/Counter.java
-orion1.4.5/default-web-app/WEB-INF/classes/DateServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/DateServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/FingerServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/FingerServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/HelloWorldExample.class
-orion1.4.5/default-web-app/WEB-INF/classes/HelloWorldExample.java
-orion1.4.5/default-web-app/WEB-INF/classes/HelloWorldServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/HelloWorldServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/LinkCheckerServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/LinkCheckerServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/LocalStrings.properties
-orion1.4.5/default-web-app/WEB-INF/classes/ParameterBean.class
-orion1.4.5/default-web-app/WEB-INF/classes/ParameterBean.java
-orion1.4.5/default-web-app/WEB-INF/classes/RedirectServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/RedirectServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/RequestHeaderExample.class
-orion1.4.5/default-web-app/WEB-INF/classes/RequestHeaderExample.java
-orion1.4.5/default-web-app/WEB-INF/classes/RequestInfoExample.class
-orion1.4.5/default-web-app/WEB-INF/classes/RequestInfoExample.java
-orion1.4.5/default-web-app/WEB-INF/classes/RequestParamExample.class
-orion1.4.5/default-web-app/WEB-INF/classes/RequestParamExample.java
-orion1.4.5/default-web-app/WEB-INF/classes/SessionExample.class
-orion1.4.5/default-web-app/WEB-INF/classes/SessionExample.java
-orion1.4.5/default-web-app/WEB-INF/classes/SessionServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/SessionServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/SimpleServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/SimpleServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/SnoopServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/SnoopServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/SurveyServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/SurveyServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/ToJSPServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/ToJSPServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/UpperCaseFilter.class
-orion1.4.5/default-web-app/WEB-INF/classes/UpperCaseFilter.java
-orion1.4.5/default-web-app/WEB-INF/classes/BBoardServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/URLInfo.class
-orion1.4.5/default-web-app/WEB-INF/classes/BBoardServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/ConfigServlet.class
-orion1.4.5/default-web-app/WEB-INF/classes/ConfigServlet.java
-orion1.4.5/default-web-app/WEB-INF/classes/CookieExample.class
-orion1.4.5/default-web-app/WEB-INF/classes/CookieExample.java
-orion1.4.5/default-web-app/WEB-INF/classes/Counter.class
-orion1.4.5/default-web-app/WEB-INF/web.xml
-orion1.4.5/default-web-app/index.html
-orion1.4.5/applications/news.ear
-orion1.4.5/applications/atm.ear
-orion1.4.5/applications/estore-bugs.txt
-orion1.4.5/applications/estore-install.txt
-orion1.4.5/applications/estore-orionadapter.jar
-orion1.4.5/applications/estore-patched.ear
-orion1.4.5/applications/news-install.txt
-orion1.4.5/applications/atm-install.txt
-orion1.4.5/demo/ejb/cart/META-INF/application-client.xml
-orion1.4.5/demo/ejb/cart/META-INF/ejb-jar.xml
-orion1.4.5/demo/ejb/cart/META-INF/MANIFEST.MF
-orion1.4.5/demo/ejb/cart/Cart.java
-orion1.4.5/demo/ejb/cart/CartClient.class
-orion1.4.5/demo/ejb/cart/CartClient.java
-orion1.4.5/demo/ejb/cart/CartEJB.class
-orion1.4.5/demo/ejb/cart/CartEJB.java
-orion1.4.5/demo/ejb/cart/CartHome.class
-orion1.4.5/demo/ejb/cart/CartHome.java
-orion1.4.5/demo/ejb/cart/jndi.properties
-orion1.4.5/demo/ejb/cart/NotInCartException.class
-orion1.4.5/demo/ejb/cart/NotInCartException.java
-orion1.4.5/demo/ejb/cart/Cart.class
-orion1.4.5/demo/ejb/cart/orion-cart.jar
-orion1.4.5/demo/ejb/META-INF/application.xml
-orion1.4.5/demo/ejb/product/META-INF/application-client.xml
-orion1.4.5/demo/ejb/product/META-INF/ejb-jar.xml
-orion1.4.5/demo/ejb/product/META-INF/MANIFEST.MF
-orion1.4.5/demo/ejb/product/orion-product.jar
-orion1.4.5/demo/ejb/product/Product.class
-orion1.4.5/demo/ejb/product/Product.java
-orion1.4.5/demo/ejb/product/product.skeleton
-orion1.4.5/demo/ejb/product/ProductClient.class
-orion1.4.5/demo/ejb/product/ProductClient.java
-orion1.4.5/demo/ejb/product/ProductEJB.class
-orion1.4.5/demo/ejb/product/ProductEJB.java
-orion1.4.5/demo/ejb/product/ProductHome.class
-orion1.4.5/demo/ejb/product/ProductHome.java
-orion1.4.5/demo/ejb/product/ProductServlet.class
-orion1.4.5/demo/ejb/product/jndi.properties
-orion1.4.5/demo/ejb/product/ProductServlet.java
-orion1.4.5/demo/ejb/usermanager/META-INF/ejb-jar.xml
-orion1.4.5/demo/ejb/install.txt
-orion1.4.5/demo/jms/coffeemaker/META-INF/application-client.xml
-orion1.4.5/demo/jms/coffeemaker/META-INF/MANIFEST.MF
-orion1.4.5/demo/jms/coffeemaker/META-INF/orion-application-client.xml
-orion1.4.5/demo/jms/coffeemaker/CoffeeMachine.class
-orion1.4.5/demo/jms/coffeemaker/CoffeeMachine.java
-orion1.4.5/demo/jms/coffeemaker/CoffeeMaker.class
-orion1.4.5/demo/jms/coffeemaker/CoffeeMaker.java
-orion1.4.5/demo/jms/coffeemaker/jndi.properties
-orion1.4.5/demo/jms/jmschat/META-INF/application-client.xml
-orion1.4.5/demo/jms/jmschat/META-INF/MANIFEST.MF
-orion1.4.5/demo/jms/jmschat/META-INF/orion-application-client.xml
-orion1.4.5/demo/jms/jmschat/JMSChat$1.class
-orion1.4.5/demo/jms/jmschat/JMSChat.class
-orion1.4.5/demo/jms/jmschat/JMSChat.java
-orion1.4.5/demo/jms/jmschat/jndi.properties
-orion1.4.5/demo/jms/coffeemaker.jar
-orion1.4.5/demo/jms/jmschat.jar
-orion1.4.5/demo/jms/jmsdemo-readme.txt
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.java
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.java
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemClient.class
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.class
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.java
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.class
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.java
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.class
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.java
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.class
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.java
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.class
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.java
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.class
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.java
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.class
-orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.class
-orion1.4.5/demo/news-app/news-ejb-source/META-INF/ejb-jar.xml
-orion1.4.5/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.class
-orion1.4.5/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.java
-orion1.4.5/demo/news-app/news-client-source/com/evermind/ejb/NewsItemClient.class
-orion1.4.5/demo/news-app/news-client-source/META-INF/application-client.xml
-orion1.4.5/demo/news-app/news-client-source/META-INF/MANIFEST.MF
-orion1.4.5/demo/news-app/news-web/admin/editnews.jsp
-orion1.4.5/demo/news-app/news-web/admin/editnews_done.jsp
-orion1.4.5/demo/news-app/news-web/WEB-INF/lib/ejbtags.jar
-orion1.4.5/demo/news-app/news-web/WEB-INF/lib/utiltags.jar
-orion1.4.5/demo/news-app/news-web/WEB-INF/web.xml
-orion1.4.5/demo/news-app/news-web/border.html
-orion1.4.5/demo/news-app/news-web/checks.jsp
-orion1.4.5/demo/news-app/news-web/index.html
-orion1.4.5/demo/news-app/news-web/initviews.jsp
-orion1.4.5/demo/news-app/news-web/login-error.html
-orion1.4.5/demo/news-app/news-web/addnews.jsp
-orion1.4.5/demo/news-app/news-web/loginbox.jsp
-orion1.4.5/demo/news-app/news-web/logout.jsp
-orion1.4.5/demo/news-app/news-web/news-body.jsp
-orion1.4.5/demo/news-app/news-web/news.jsp
-orion1.4.5/demo/news-app/news-web/newsdetail.jsp
-orion1.4.5/demo/news-app/news-web/newssearch.jsp
-orion1.4.5/demo/news-app/news-web/usertest.jsp
-orion1.4.5/demo/news-app/news-web/login.html
-orion1.4.5/demo/news-app/news-web/addnews_done.jsp
-orion1.4.5/demo/news-app/META-INF/application.xml
-orion1.4.5/demo/news-app/news-web.war
-orion1.4.5/demo/news-app/news-client.jar
-orion1.4.5/demo/news-app/news-ejb.jar
-orion1.4.5/demo/news-app/counter.jar
-orion1.4.5/demo/rmi/RMIApp.class
-orion1.4.5/demo/rmi/RMIApp.java
-orion1.4.5/demo/ssl/ssl-user-registration.jsp
-orion1.4.5/demo/messagelogger.ear
-orion1.4.5/lib/hsql.jar
-orion1.4.5/loadbalancer.jar
-orion1.4.5/jta.jar
-orion1.4.5/jsse.jar
-orion1.4.5/jnet.jar
-orion1.4.5/jndi.jar
-orion1.4.5/jdbc.jar
-orion1.4.5/jcert.jar
-orion1.4.5/jaxp.jar
-orion1.4.5/ejbmaker.jar
-orion1.4.5/ejbassembler.jar
-orion1.4.5/ejb.jar
-orion1.4.5/earassembler.jar
-orion1.4.5/clientassembler.jar
-orion1.4.5/changes.txt
-orion1.4.5/autoupdate.properties
-orion1.4.5/autoupdate.jar
-orion1.4.5/assemblerlauncher.jar
-orion1.4.5/applicationlauncher.jar
-orion1.4.5/admin.jar
-orion1.4.5/activation.jar
-orion1.4.5/Readme.txt
-orion1.4.5/xerces.jar
-orion1.4.5/Copyright.txt
-orion1.4.5/xalan.jar
-orion1.4.5/webappassembler.jar
-orion1.4.5/taglibassembler.jar
-orion1.4.5/parser.jar
-orion1.4.5/orionconsole.jar
-orion1.4.5/orion.jar
-orion1.4.5/mail.jar
-@dirrm orion1.4.5/application-deployments
-@dirrm orion1.4.5/config/database-schemas
-@dirrm orion1.4.5/config
-@dirrm orion1.4.5/default-web-app/examples/cal
-@dirrm orion1.4.5/default-web-app/examples/images
-@dirrm orion1.4.5/default-web-app/examples/jsp/include
-@dirrm orion1.4.5/default-web-app/examples/jsp/checkbox
-@dirrm orion1.4.5/default-web-app/examples/jsp/colors
-@dirrm orion1.4.5/default-web-app/examples/jsp/dates
-@dirrm orion1.4.5/default-web-app/examples/jsp/error
-@dirrm orion1.4.5/default-web-app/examples/jsp/forward
-@dirrm orion1.4.5/default-web-app/examples/jsp/snp
-@dirrm orion1.4.5/default-web-app/examples/jsp/cal
-@dirrm orion1.4.5/default-web-app/examples/jsp/jsptoserv
-@dirrm orion1.4.5/default-web-app/examples/jsp/num
-@dirrm orion1.4.5/default-web-app/examples/jsp/plugin/applet
-@dirrm orion1.4.5/default-web-app/examples/jsp/plugin
-@dirrm orion1.4.5/default-web-app/examples/jsp/sessions
-@dirrm orion1.4.5/default-web-app/examples/jsp/taglib/loop/META-INF
-@dirrm orion1.4.5/default-web-app/examples/jsp/taglib/loop/taglib
-@dirrm orion1.4.5/default-web-app/examples/jsp/taglib/loop
-@dirrm orion1.4.5/default-web-app/examples/jsp/taglib
-@dirrm orion1.4.5/default-web-app/examples/jsp
-@dirrm orion1.4.5/default-web-app/examples/perl
-@dirrm orion1.4.5/default-web-app/examples/ssi
-@dirrm orion1.4.5/default-web-app/examples/xsl
-@dirrm orion1.4.5/default-web-app/examples
-@dirrm orion1.4.5/default-web-app/WEB-INF/classes/colors
-@dirrm orion1.4.5/default-web-app/WEB-INF/classes/num
-@dirrm orion1.4.5/default-web-app/WEB-INF/classes/error
-@dirrm orion1.4.5/default-web-app/WEB-INF/classes/sessions
-@dirrm orion1.4.5/default-web-app/WEB-INF/classes/dates
-@dirrm orion1.4.5/default-web-app/WEB-INF/classes/cal
-@dirrm orion1.4.5/default-web-app/WEB-INF/classes/checkbox
-@dirrm orion1.4.5/default-web-app/WEB-INF/classes
-@dirrm orion1.4.5/default-web-app/WEB-INF
-@dirrm orion1.4.5/default-web-app
-@dirrm orion1.4.5/applications
-@dirrm orion1.4.5/database
-@dirrm orion1.4.5/demo/ejb/cart/META-INF
-@dirrm orion1.4.5/demo/ejb/cart
-@dirrm orion1.4.5/demo/ejb/META-INF
-@dirrm orion1.4.5/demo/ejb/product/META-INF
-@dirrm orion1.4.5/demo/ejb/product
-@dirrm orion1.4.5/demo/ejb/usermanager/META-INF
-@dirrm orion1.4.5/demo/ejb/usermanager
-@dirrm orion1.4.5/demo/ejb
-@dirrm orion1.4.5/demo/jms/coffeemaker/META-INF
-@dirrm orion1.4.5/demo/jms/coffeemaker
-@dirrm orion1.4.5/demo/jms/jmschat/META-INF
-@dirrm orion1.4.5/demo/jms/jmschat
-@dirrm orion1.4.5/demo/jms
-@dirrm orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb
-@dirrm orion1.4.5/demo/news-app/news-ejb-source/com/evermind
-@dirrm orion1.4.5/demo/news-app/news-ejb-source/com
-@dirrm orion1.4.5/demo/news-app/news-ejb-source/META-INF
-@dirrm orion1.4.5/demo/news-app/news-ejb-source
-@dirrm orion1.4.5/demo/news-app/news-client-source/com/evermind/ejb
-@dirrm orion1.4.5/demo/news-app/news-client-source/com/evermind
-@dirrm orion1.4.5/demo/news-app/news-client-source/com
-@dirrm orion1.4.5/demo/news-app/news-client-source/META-INF
-@dirrm orion1.4.5/demo/news-app/news-client-source
-@dirrm orion1.4.5/demo/news-app/news-web/admin
-@dirrm orion1.4.5/demo/news-app/news-web/WEB-INF/classes
-@dirrm orion1.4.5/demo/news-app/news-web/WEB-INF/lib
-@dirrm orion1.4.5/demo/news-app/news-web/WEB-INF
-@dirrm orion1.4.5/demo/news-app/news-web
-@dirrm orion1.4.5/demo/news-app/META-INF
-@dirrm orion1.4.5/demo/news-app
-@dirrm orion1.4.5/demo/rmi
-@dirrm orion1.4.5/demo/ssl
-@dirrm orion1.4.5/demo
-@dirrm orion1.4.5/lib
-@dirrm orion1.4.5/log
-@dirrm orion1.4.5/persistence/ejb
-@dirrm orion1.4.5/persistence
-@dirrm orion1.4.5
+%%TARGET_PREFIX%%/config/database-schemas/hypersonic.xml
+%%TARGET_PREFIX%%/config/database-schemas/ms-access.xml
+%%TARGET_PREFIX%%/config/database-schemas/ms-sql.xml
+%%TARGET_PREFIX%%/config/database-schemas/oracle.xml
+%%TARGET_PREFIX%%/config/database-schemas/postgresql.xml
+%%TARGET_PREFIX%%/config/database-schemas/sybase.xml
+%%TARGET_PREFIX%%/config/data-sources.xml
+%%TARGET_PREFIX%%/config/default-web-site.xml
+%%TARGET_PREFIX%%/config/global-web-application.xml
+%%TARGET_PREFIX%%/config/jms.xml
+%%TARGET_PREFIX%%/config/mime.types
+%%TARGET_PREFIX%%/config/principals.xml
+%%TARGET_PREFIX%%/config/rmi.xml
+%%TARGET_PREFIX%%/config/application.xml
+%%TARGET_PREFIX%%/config/server.xml
+%%TARGET_PREFIX%%/default-web-app/examples/cal/TableBean.txt
+%%TARGET_PREFIX%%/default-web-app/examples/cal/cal1.txt
+%%TARGET_PREFIX%%/default-web-app/examples/cal/cal2.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/cal/cal2.txt
+%%TARGET_PREFIX%%/default-web-app/examples/cal/calendar.html
+%%TARGET_PREFIX%%/default-web-app/examples/cal/Entries.txt
+%%TARGET_PREFIX%%/default-web-app/examples/cal/Entry.txt
+%%TARGET_PREFIX%%/default-web-app/examples/cal/JspCalendar.txt
+%%TARGET_PREFIX%%/default-web-app/examples/cal/login.html
+%%TARGET_PREFIX%%/default-web-app/examples/cal/cal1.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/images/code.gif
+%%TARGET_PREFIX%%/default-web-app/examples/images/execute.gif
+%%TARGET_PREFIX%%/default-web-app/examples/images/return.gif
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/include/foo.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/include/foo.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/include/inc.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/include/include.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/include/include.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/checkbox/check.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/checkbox/checkresult.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/checkbox/checkresult.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/checkbox/CheckTest.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/checkbox/cresult.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/colors/clr.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/colors/ColorGameBean.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/colors/colors.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/colors/colors.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/colors/colrs.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/dates/date.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/dates/date.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/dates/date.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/error/er.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/error/err.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/error/err.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/error/error.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/error/errorpge.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/forward/forward.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/forward/forward.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/forward/fwd.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/forward/one.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/forward/two.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/snp/snoop.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/snp/snoop.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/snp/snoop.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/cal/TableBean.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/cal/cal1.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/cal/cal2.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/cal/cal2.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/cal/calendar.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/cal/Entries.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/cal/Entry.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/cal/JspCalendar.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/cal/login.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/cal/cal1.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/jsptoserv/hello.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/jsptoserv/jsptoservlet.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/jsptoserv/jts.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/jsptoserv/jts.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/jsptoserv/stj.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/num/numguess.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/num/numguess.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/num/numguess.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/plugin/applet/Clock2.class
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/plugin/applet/Clock2.java
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/plugin/plugin.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/plugin/plugin.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/plugin/plugin.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/sessions/carts.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/sessions/carts.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/sessions/carts.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/sessions/crt.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/sessions/DummyCart.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib/loop/META-INF/taglib.tld
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.class
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.java
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib/loop/index.html
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib/loop/looptag.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib/loop/looptag.jsp.txt
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib/loop/looptags.jar
+%%TARGET_PREFIX%%/default-web-app/examples/jsp/index.html
+%%TARGET_PREFIX%%/default-web-app/examples/perl/helloworld.pl
+%%TARGET_PREFIX%%/default-web-app/examples/perl/post.html
+%%TARGET_PREFIX%%/default-web-app/examples/perl/post.pl
+%%TARGET_PREFIX%%/default-web-app/examples/ssi/other.txt
+%%TARGET_PREFIX%%/default-web-app/examples/ssi/real.txt
+%%TARGET_PREFIX%%/default-web-app/examples/ssi/ssi.shtml
+%%TARGET_PREFIX%%/default-web-app/examples/xsl/data.xml
+%%TARGET_PREFIX%%/default-web-app/examples/xsl/data.xsl
+%%TARGET_PREFIX%%/default-web-app/examples/xsl/doc.dtd
+%%TARGET_PREFIX%%/default-web-app/examples/xsl/doc.jsp
+%%TARGET_PREFIX%%/default-web-app/examples/xsl/doc.xml
+%%TARGET_PREFIX%%/default-web-app/examples/xsl/doc.xsl
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/colors/ColorGameBean.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/colors/ColorGameBean.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/num/NumberGuessBean.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/num/NumberGuessBean.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/error/Smart.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/error/Smart.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/sessions/DummyCart.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/sessions/DummyCart.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/dates/JspCalendar.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/dates/JspCalendar.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/cal/TableBean.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/cal/Entries.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/cal/Entry.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/cal/Entry.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/cal/JspCalendar.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/cal/JspCalendar.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/cal/TableBean.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/cal/Entries.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/checkbox/CheckTest.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/checkbox/CheckTest.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/Counter.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/DateServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/DateServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/FingerServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/FingerServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/HelloWorldExample.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/HelloWorldExample.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/HelloWorldServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/HelloWorldServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/LinkCheckerServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/LinkCheckerServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/LocalStrings.properties
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/ParameterBean.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/ParameterBean.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/RedirectServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/RedirectServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/RequestHeaderExample.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/RequestHeaderExample.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/RequestInfoExample.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/RequestInfoExample.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/RequestParamExample.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/RequestParamExample.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/SessionExample.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/SessionExample.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/SessionServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/SessionServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/SimpleServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/SimpleServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/SnoopServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/SnoopServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/SurveyServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/SurveyServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/ToJSPServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/ToJSPServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/UpperCaseFilter.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/UpperCaseFilter.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/BBoardServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/URLInfo.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/BBoardServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/ConfigServlet.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/ConfigServlet.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/CookieExample.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/CookieExample.java
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/Counter.class
+%%TARGET_PREFIX%%/default-web-app/WEB-INF/web.xml
+%%TARGET_PREFIX%%/default-web-app/index.html
+%%TARGET_PREFIX%%/applications/news.ear
+%%TARGET_PREFIX%%/applications/atm.ear
+%%TARGET_PREFIX%%/applications/estore-bugs.txt
+%%TARGET_PREFIX%%/applications/estore-install.txt
+%%TARGET_PREFIX%%/applications/estore-orionadapter.jar
+%%TARGET_PREFIX%%/applications/estore-patched.ear
+%%TARGET_PREFIX%%/applications/news-install.txt
+%%TARGET_PREFIX%%/applications/atm-install.txt
+%%TARGET_PREFIX%%/demo/ejb/cart/META-INF/application-client.xml
+%%TARGET_PREFIX%%/demo/ejb/cart/META-INF/ejb-jar.xml
+%%TARGET_PREFIX%%/demo/ejb/cart/META-INF/MANIFEST.MF
+%%TARGET_PREFIX%%/demo/ejb/cart/Cart.java
+%%TARGET_PREFIX%%/demo/ejb/cart/CartClient.class
+%%TARGET_PREFIX%%/demo/ejb/cart/CartClient.java
+%%TARGET_PREFIX%%/demo/ejb/cart/CartEJB.class
+%%TARGET_PREFIX%%/demo/ejb/cart/CartEJB.java
+%%TARGET_PREFIX%%/demo/ejb/cart/CartHome.class
+%%TARGET_PREFIX%%/demo/ejb/cart/CartHome.java
+%%TARGET_PREFIX%%/demo/ejb/cart/jndi.properties
+%%TARGET_PREFIX%%/demo/ejb/cart/NotInCartException.class
+%%TARGET_PREFIX%%/demo/ejb/cart/NotInCartException.java
+%%TARGET_PREFIX%%/demo/ejb/cart/Cart.class
+%%TARGET_PREFIX%%/demo/ejb/cart/orion-cart.jar
+%%TARGET_PREFIX%%/demo/ejb/META-INF/application.xml
+%%TARGET_PREFIX%%/demo/ejb/product/META-INF/application-client.xml
+%%TARGET_PREFIX%%/demo/ejb/product/META-INF/ejb-jar.xml
+%%TARGET_PREFIX%%/demo/ejb/product/META-INF/MANIFEST.MF
+%%TARGET_PREFIX%%/demo/ejb/product/orion-product.jar
+%%TARGET_PREFIX%%/demo/ejb/product/Product.class
+%%TARGET_PREFIX%%/demo/ejb/product/Product.java
+%%TARGET_PREFIX%%/demo/ejb/product/product.skeleton
+%%TARGET_PREFIX%%/demo/ejb/product/ProductClient.class
+%%TARGET_PREFIX%%/demo/ejb/product/ProductClient.java
+%%TARGET_PREFIX%%/demo/ejb/product/ProductEJB.class
+%%TARGET_PREFIX%%/demo/ejb/product/ProductEJB.java
+%%TARGET_PREFIX%%/demo/ejb/product/ProductHome.class
+%%TARGET_PREFIX%%/demo/ejb/product/ProductHome.java
+%%TARGET_PREFIX%%/demo/ejb/product/ProductServlet.class
+%%TARGET_PREFIX%%/demo/ejb/product/jndi.properties
+%%TARGET_PREFIX%%/demo/ejb/product/ProductServlet.java
+%%TARGET_PREFIX%%/demo/ejb/usermanager/META-INF/ejb-jar.xml
+%%TARGET_PREFIX%%/demo/ejb/install.txt
+%%TARGET_PREFIX%%/demo/jms/coffeemaker/META-INF/application-client.xml
+%%TARGET_PREFIX%%/demo/jms/coffeemaker/META-INF/MANIFEST.MF
+%%TARGET_PREFIX%%/demo/jms/coffeemaker/META-INF/orion-application-client.xml
+%%TARGET_PREFIX%%/demo/jms/coffeemaker/CoffeeMachine.class
+%%TARGET_PREFIX%%/demo/jms/coffeemaker/CoffeeMachine.java
+%%TARGET_PREFIX%%/demo/jms/coffeemaker/CoffeeMaker.class
+%%TARGET_PREFIX%%/demo/jms/coffeemaker/CoffeeMaker.java
+%%TARGET_PREFIX%%/demo/jms/coffeemaker/jndi.properties
+%%TARGET_PREFIX%%/demo/jms/jmschat/META-INF/application-client.xml
+%%TARGET_PREFIX%%/demo/jms/jmschat/META-INF/MANIFEST.MF
+%%TARGET_PREFIX%%/demo/jms/jmschat/META-INF/orion-application-client.xml
+%%TARGET_PREFIX%%/demo/jms/jmschat/JMSChat$1.class
+%%TARGET_PREFIX%%/demo/jms/jmschat/JMSChat.class
+%%TARGET_PREFIX%%/demo/jms/jmschat/JMSChat.java
+%%TARGET_PREFIX%%/demo/jms/jmschat/jndi.properties
+%%TARGET_PREFIX%%/demo/jms/coffeemaker.jar
+%%TARGET_PREFIX%%/demo/jms/jmschat.jar
+%%TARGET_PREFIX%%/demo/jms/jmsdemo-readme.txt
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.java
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.java
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemClient.class
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.class
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.java
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.class
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.java
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.class
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.java
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.class
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.java
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.class
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.java
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.class
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.java
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.class
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.class
+%%TARGET_PREFIX%%/demo/news-app/news-ejb-source/META-INF/ejb-jar.xml
+%%TARGET_PREFIX%%/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.class
+%%TARGET_PREFIX%%/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.java
+%%TARGET_PREFIX%%/demo/news-app/news-client-source/com/evermind/ejb/NewsItemClient.class
+%%TARGET_PREFIX%%/demo/news-app/news-client-source/META-INF/application-client.xml
+%%TARGET_PREFIX%%/demo/news-app/news-client-source/META-INF/MANIFEST.MF
+%%TARGET_PREFIX%%/demo/news-app/news-web/admin/editnews.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/admin/editnews_done.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/WEB-INF/lib/ejbtags.jar
+%%TARGET_PREFIX%%/demo/news-app/news-web/WEB-INF/lib/utiltags.jar
+%%TARGET_PREFIX%%/demo/news-app/news-web/WEB-INF/web.xml
+%%TARGET_PREFIX%%/demo/news-app/news-web/border.html
+%%TARGET_PREFIX%%/demo/news-app/news-web/checks.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/index.html
+%%TARGET_PREFIX%%/demo/news-app/news-web/initviews.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/login-error.html
+%%TARGET_PREFIX%%/demo/news-app/news-web/addnews.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/loginbox.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/logout.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/news-body.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/news.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/newsdetail.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/newssearch.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/usertest.jsp
+%%TARGET_PREFIX%%/demo/news-app/news-web/login.html
+%%TARGET_PREFIX%%/demo/news-app/news-web/addnews_done.jsp
+%%TARGET_PREFIX%%/demo/news-app/META-INF/application.xml
+%%TARGET_PREFIX%%/demo/news-app/news-web.war
+%%TARGET_PREFIX%%/demo/news-app/news-client.jar
+%%TARGET_PREFIX%%/demo/news-app/news-ejb.jar
+%%TARGET_PREFIX%%/demo/news-app/counter.jar
+%%TARGET_PREFIX%%/demo/rmi/RMIApp.class
+%%TARGET_PREFIX%%/demo/rmi/RMIApp.java
+%%TARGET_PREFIX%%/demo/ssl/ssl-user-registration.jsp
+%%TARGET_PREFIX%%/demo/messagelogger.ear
+%%TARGET_PREFIX%%/lib/hsql.jar
+%%TARGET_PREFIX%%/loadbalancer.jar
+%%TARGET_PREFIX%%/jta.jar
+%%TARGET_PREFIX%%/jsse.jar
+%%TARGET_PREFIX%%/jnet.jar
+%%TARGET_PREFIX%%/jndi.jar
+%%TARGET_PREFIX%%/jdbc.jar
+%%TARGET_PREFIX%%/jcert.jar
+%%TARGET_PREFIX%%/jaxp.jar
+%%TARGET_PREFIX%%/ejbmaker.jar
+%%TARGET_PREFIX%%/ejbassembler.jar
+%%TARGET_PREFIX%%/ejb.jar
+%%TARGET_PREFIX%%/earassembler.jar
+%%TARGET_PREFIX%%/clientassembler.jar
+%%TARGET_PREFIX%%/changes.txt
+%%TARGET_PREFIX%%/autoupdate.properties
+%%TARGET_PREFIX%%/autoupdate.jar
+%%TARGET_PREFIX%%/assemblerlauncher.jar
+%%TARGET_PREFIX%%/applicationlauncher.jar
+%%TARGET_PREFIX%%/admin.jar
+%%TARGET_PREFIX%%/activation.jar
+%%TARGET_PREFIX%%/Readme.txt
+%%TARGET_PREFIX%%/xerces.jar
+%%TARGET_PREFIX%%/Copyright.txt
+%%TARGET_PREFIX%%/xalan.jar
+%%TARGET_PREFIX%%/webappassembler.jar
+%%TARGET_PREFIX%%/taglibassembler.jar
+%%TARGET_PREFIX%%/parser.jar
+%%TARGET_PREFIX%%/orionconsole.jar
+%%TARGET_PREFIX%%/orion.jar
+%%TARGET_PREFIX%%/tools.jar
+%%TARGET_PREFIX%%/mail.jar
+@dirrm %%TARGET_PREFIX%%/application-deployments
+@dirrm %%TARGET_PREFIX%%/config/database-schemas
+@dirrm %%TARGET_PREFIX%%/config
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/cal
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/images
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/include
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/checkbox
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/colors
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/dates
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/error
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/forward
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/snp
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/cal
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/jsptoserv
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/num
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/plugin/applet
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/plugin
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/sessions
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib/loop/META-INF
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib/loop/taglib
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib/loop
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp/taglib
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/jsp
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/perl
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/ssi
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples/xsl
+@dirrm %%TARGET_PREFIX%%/default-web-app/examples
+@dirrm %%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/colors
+@dirrm %%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/num
+@dirrm %%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/error
+@dirrm %%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/sessions
+@dirrm %%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/dates
+@dirrm %%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/cal
+@dirrm %%TARGET_PREFIX%%/default-web-app/WEB-INF/classes/checkbox
+@dirrm %%TARGET_PREFIX%%/default-web-app/WEB-INF/classes
+@dirrm %%TARGET_PREFIX%%/default-web-app/WEB-INF
+@dirrm %%TARGET_PREFIX%%/default-web-app
+@dirrm %%TARGET_PREFIX%%/applications
+@dirrm %%TARGET_PREFIX%%/database
+@dirrm %%TARGET_PREFIX%%/demo/ejb/cart/META-INF
+@dirrm %%TARGET_PREFIX%%/demo/ejb/cart
+@dirrm %%TARGET_PREFIX%%/demo/ejb/META-INF
+@dirrm %%TARGET_PREFIX%%/demo/ejb/product/META-INF
+@dirrm %%TARGET_PREFIX%%/demo/ejb/product
+@dirrm %%TARGET_PREFIX%%/demo/ejb/usermanager/META-INF
+@dirrm %%TARGET_PREFIX%%/demo/ejb/usermanager
+@dirrm %%TARGET_PREFIX%%/demo/ejb
+@dirrm %%TARGET_PREFIX%%/demo/jms/coffeemaker/META-INF
+@dirrm %%TARGET_PREFIX%%/demo/jms/coffeemaker
+@dirrm %%TARGET_PREFIX%%/demo/jms/jmschat/META-INF
+@dirrm %%TARGET_PREFIX%%/demo/jms/jmschat
+@dirrm %%TARGET_PREFIX%%/demo/jms
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind/ejb
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com/evermind
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-ejb-source/com
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-ejb-source/META-INF
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-ejb-source
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-client-source/com/evermind/ejb
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-client-source/com/evermind
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-client-source/com
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-client-source/META-INF
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-client-source
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-web/admin
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-web/WEB-INF/classes
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-web/WEB-INF/lib
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-web/WEB-INF
+@dirrm %%TARGET_PREFIX%%/demo/news-app/news-web
+@dirrm %%TARGET_PREFIX%%/demo/news-app/META-INF
+@dirrm %%TARGET_PREFIX%%/demo/news-app
+@dirrm %%TARGET_PREFIX%%/demo/rmi
+@dirrm %%TARGET_PREFIX%%/demo/ssl
+@dirrm %%TARGET_PREFIX%%/demo
+@dirrm %%TARGET_PREFIX%%/lib
+@dirrm %%TARGET_PREFIX%%/log
+@dirrm %%TARGET_PREFIX%%/persistence/ejb
+@dirrm %%TARGET_PREFIX%%/persistence
+@dirrm %%TARGET_PREFIX%%
diff -ruN --exclude=CVS /usr/ports/java/orion/work/.PLIST.mktmp /home/ernst/freebsd-ports/java/orion/work/.PLIST.mktmp
--- /usr/ports/java/orion/work/.PLIST.mktmp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/.PLIST.mktmp	Fri May 25 18:56:55 2001
@@ -0,0 +1,397 @@
+etc/rc.d/orion.sh
+bin/orionctl
+orion1.4.5/config/database-schemas/hypersonic.xml
+orion1.4.5/config/database-schemas/ms-access.xml
+orion1.4.5/config/database-schemas/ms-sql.xml
+orion1.4.5/config/database-schemas/oracle.xml
+orion1.4.5/config/database-schemas/postgresql.xml
+orion1.4.5/config/database-schemas/sybase.xml
+orion1.4.5/config/data-sources.xml
+orion1.4.5/config/default-web-site.xml
+orion1.4.5/config/global-web-application.xml
+orion1.4.5/config/jms.xml
+orion1.4.5/config/mime.types
+orion1.4.5/config/principals.xml
+orion1.4.5/config/rmi.xml
+orion1.4.5/config/application.xml
+orion1.4.5/config/server.xml
+orion1.4.5/default-web-app/examples/cal/TableBean.txt
+orion1.4.5/default-web-app/examples/cal/cal1.txt
+orion1.4.5/default-web-app/examples/cal/cal2.jsp
+orion1.4.5/default-web-app/examples/cal/cal2.txt
+orion1.4.5/default-web-app/examples/cal/calendar.html
+orion1.4.5/default-web-app/examples/cal/Entries.txt
+orion1.4.5/default-web-app/examples/cal/Entry.txt
+orion1.4.5/default-web-app/examples/cal/JspCalendar.txt
+orion1.4.5/default-web-app/examples/cal/login.html
+orion1.4.5/default-web-app/examples/cal/cal1.jsp
+orion1.4.5/default-web-app/examples/images/code.gif
+orion1.4.5/default-web-app/examples/images/execute.gif
+orion1.4.5/default-web-app/examples/images/return.gif
+orion1.4.5/default-web-app/examples/jsp/include/foo.html
+orion1.4.5/default-web-app/examples/jsp/include/foo.jsp
+orion1.4.5/default-web-app/examples/jsp/include/inc.html
+orion1.4.5/default-web-app/examples/jsp/include/include.jsp
+orion1.4.5/default-web-app/examples/jsp/include/include.txt
+orion1.4.5/default-web-app/examples/jsp/checkbox/check.html
+orion1.4.5/default-web-app/examples/jsp/checkbox/checkresult.jsp
+orion1.4.5/default-web-app/examples/jsp/checkbox/checkresult.txt
+orion1.4.5/default-web-app/examples/jsp/checkbox/CheckTest.html
+orion1.4.5/default-web-app/examples/jsp/checkbox/cresult.html
+orion1.4.5/default-web-app/examples/jsp/colors/clr.html
+orion1.4.5/default-web-app/examples/jsp/colors/ColorGameBean.html
+orion1.4.5/default-web-app/examples/jsp/colors/colors.html
+orion1.4.5/default-web-app/examples/jsp/colors/colors.txt
+orion1.4.5/default-web-app/examples/jsp/colors/colrs.jsp
+orion1.4.5/default-web-app/examples/jsp/dates/date.html
+orion1.4.5/default-web-app/examples/jsp/dates/date.jsp
+orion1.4.5/default-web-app/examples/jsp/dates/date.txt
+orion1.4.5/default-web-app/examples/jsp/error/er.html
+orion1.4.5/default-web-app/examples/jsp/error/err.jsp
+orion1.4.5/default-web-app/examples/jsp/error/err.txt
+orion1.4.5/default-web-app/examples/jsp/error/error.html
+orion1.4.5/default-web-app/examples/jsp/error/errorpge.jsp
+orion1.4.5/default-web-app/examples/jsp/forward/forward.jsp
+orion1.4.5/default-web-app/examples/jsp/forward/forward.txt
+orion1.4.5/default-web-app/examples/jsp/forward/fwd.html
+orion1.4.5/default-web-app/examples/jsp/forward/one.jsp
+orion1.4.5/default-web-app/examples/jsp/forward/two.html
+orion1.4.5/default-web-app/examples/jsp/snp/snoop.html
+orion1.4.5/default-web-app/examples/jsp/snp/snoop.jsp
+orion1.4.5/default-web-app/examples/jsp/snp/snoop.txt
+orion1.4.5/default-web-app/examples/jsp/cal/TableBean.txt
+orion1.4.5/default-web-app/examples/jsp/cal/cal1.txt
+orion1.4.5/default-web-app/examples/jsp/cal/cal2.jsp
+orion1.4.5/default-web-app/examples/jsp/cal/cal2.txt
+orion1.4.5/default-web-app/examples/jsp/cal/calendar.html
+orion1.4.5/default-web-app/examples/jsp/cal/Entries.txt
+orion1.4.5/default-web-app/examples/jsp/cal/Entry.txt
+orion1.4.5/default-web-app/examples/jsp/cal/JspCalendar.txt
+orion1.4.5/default-web-app/examples/jsp/cal/login.html
+orion1.4.5/default-web-app/examples/jsp/cal/cal1.jsp
+orion1.4.5/default-web-app/examples/jsp/jsptoserv/hello.jsp
+orion1.4.5/default-web-app/examples/jsp/jsptoserv/jsptoservlet.jsp
+orion1.4.5/default-web-app/examples/jsp/jsptoserv/jts.html
+orion1.4.5/default-web-app/examples/jsp/jsptoserv/jts.txt
+orion1.4.5/default-web-app/examples/jsp/jsptoserv/stj.txt
+orion1.4.5/default-web-app/examples/jsp/num/numguess.html
+orion1.4.5/default-web-app/examples/jsp/num/numguess.jsp
+orion1.4.5/default-web-app/examples/jsp/num/numguess.txt
+orion1.4.5/default-web-app/examples/jsp/plugin/applet/Clock2.class
+orion1.4.5/default-web-app/examples/jsp/plugin/applet/Clock2.java
+orion1.4.5/default-web-app/examples/jsp/plugin/plugin.html
+orion1.4.5/default-web-app/examples/jsp/plugin/plugin.jsp
+orion1.4.5/default-web-app/examples/jsp/plugin/plugin.txt
+orion1.4.5/default-web-app/examples/jsp/sessions/carts.html
+orion1.4.5/default-web-app/examples/jsp/sessions/carts.jsp
+orion1.4.5/default-web-app/examples/jsp/sessions/carts.txt
+orion1.4.5/default-web-app/examples/jsp/sessions/crt.html
+orion1.4.5/default-web-app/examples/jsp/sessions/DummyCart.html
+orion1.4.5/default-web-app/examples/jsp/taglib/loop/META-INF/taglib.tld
+orion1.4.5/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.class
+orion1.4.5/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.java
+orion1.4.5/default-web-app/examples/jsp/taglib/loop/index.html
+orion1.4.5/default-web-app/examples/jsp/taglib/loop/looptag.jsp
+orion1.4.5/default-web-app/examples/jsp/taglib/loop/looptag.jsp.txt
+orion1.4.5/default-web-app/examples/jsp/taglib/loop/looptags.jar
+orion1.4.5/default-web-app/examples/jsp/index.html
+orion1.4.5/default-web-app/examples/perl/helloworld.pl
+orion1.4.5/default-web-app/examples/perl/post.html
+orion1.4.5/default-web-app/examples/perl/post.pl
+orion1.4.5/default-web-app/examples/ssi/other.txt
+orion1.4.5/default-web-app/examples/ssi/real.txt
+orion1.4.5/default-web-app/examples/ssi/ssi.shtml
+orion1.4.5/default-web-app/examples/xsl/data.xml
+orion1.4.5/default-web-app/examples/xsl/data.xsl
+orion1.4.5/default-web-app/examples/xsl/doc.dtd
+orion1.4.5/default-web-app/examples/xsl/doc.jsp
+orion1.4.5/default-web-app/examples/xsl/doc.xml
+orion1.4.5/default-web-app/examples/xsl/doc.xsl
+orion1.4.5/default-web-app/WEB-INF/classes/colors/ColorGameBean.class
+orion1.4.5/default-web-app/WEB-INF/classes/colors/ColorGameBean.java
+orion1.4.5/default-web-app/WEB-INF/classes/num/NumberGuessBean.class
+orion1.4.5/default-web-app/WEB-INF/classes/num/NumberGuessBean.java
+orion1.4.5/default-web-app/WEB-INF/classes/error/Smart.class
+orion1.4.5/default-web-app/WEB-INF/classes/error/Smart.java
+orion1.4.5/default-web-app/WEB-INF/classes/sessions/DummyCart.class
+orion1.4.5/default-web-app/WEB-INF/classes/sessions/DummyCart.java
+orion1.4.5/default-web-app/WEB-INF/classes/dates/JspCalendar.class
+orion1.4.5/default-web-app/WEB-INF/classes/dates/JspCalendar.java
+orion1.4.5/default-web-app/WEB-INF/classes/cal/TableBean.java
+orion1.4.5/default-web-app/WEB-INF/classes/cal/Entries.java
+orion1.4.5/default-web-app/WEB-INF/classes/cal/Entry.class
+orion1.4.5/default-web-app/WEB-INF/classes/cal/Entry.java
+orion1.4.5/default-web-app/WEB-INF/classes/cal/JspCalendar.class
+orion1.4.5/default-web-app/WEB-INF/classes/cal/JspCalendar.java
+orion1.4.5/default-web-app/WEB-INF/classes/cal/TableBean.class
+orion1.4.5/default-web-app/WEB-INF/classes/cal/Entries.class
+orion1.4.5/default-web-app/WEB-INF/classes/checkbox/CheckTest.class
+orion1.4.5/default-web-app/WEB-INF/classes/checkbox/CheckTest.java
+orion1.4.5/default-web-app/WEB-INF/classes/Counter.java
+orion1.4.5/default-web-app/WEB-INF/classes/DateServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/DateServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/FingerServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/FingerServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/HelloWorldExample.class
+orion1.4.5/default-web-app/WEB-INF/classes/HelloWorldExample.java
+orion1.4.5/default-web-app/WEB-INF/classes/HelloWorldServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/HelloWorldServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/LinkCheckerServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/LinkCheckerServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/LocalStrings.properties
+orion1.4.5/default-web-app/WEB-INF/classes/ParameterBean.class
+orion1.4.5/default-web-app/WEB-INF/classes/ParameterBean.java
+orion1.4.5/default-web-app/WEB-INF/classes/RedirectServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/RedirectServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/RequestHeaderExample.class
+orion1.4.5/default-web-app/WEB-INF/classes/RequestHeaderExample.java
+orion1.4.5/default-web-app/WEB-INF/classes/RequestInfoExample.class
+orion1.4.5/default-web-app/WEB-INF/classes/RequestInfoExample.java
+orion1.4.5/default-web-app/WEB-INF/classes/RequestParamExample.class
+orion1.4.5/default-web-app/WEB-INF/classes/RequestParamExample.java
+orion1.4.5/default-web-app/WEB-INF/classes/SessionExample.class
+orion1.4.5/default-web-app/WEB-INF/classes/SessionExample.java
+orion1.4.5/default-web-app/WEB-INF/classes/SessionServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/SessionServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/SimpleServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/SimpleServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/SnoopServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/SnoopServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/SurveyServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/SurveyServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/ToJSPServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/ToJSPServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/UpperCaseFilter.class
+orion1.4.5/default-web-app/WEB-INF/classes/UpperCaseFilter.java
+orion1.4.5/default-web-app/WEB-INF/classes/BBoardServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/URLInfo.class
+orion1.4.5/default-web-app/WEB-INF/classes/BBoardServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/ConfigServlet.class
+orion1.4.5/default-web-app/WEB-INF/classes/ConfigServlet.java
+orion1.4.5/default-web-app/WEB-INF/classes/CookieExample.class
+orion1.4.5/default-web-app/WEB-INF/classes/CookieExample.java
+orion1.4.5/default-web-app/WEB-INF/classes/Counter.class
+orion1.4.5/default-web-app/WEB-INF/web.xml
+orion1.4.5/default-web-app/index.html
+orion1.4.5/applications/news.ear
+orion1.4.5/applications/atm.ear
+orion1.4.5/applications/estore-bugs.txt
+orion1.4.5/applications/estore-install.txt
+orion1.4.5/applications/estore-orionadapter.jar
+orion1.4.5/applications/estore-patched.ear
+orion1.4.5/applications/news-install.txt
+orion1.4.5/applications/atm-install.txt
+orion1.4.5/demo/ejb/cart/META-INF/application-client.xml
+orion1.4.5/demo/ejb/cart/META-INF/ejb-jar.xml
+orion1.4.5/demo/ejb/cart/META-INF/MANIFEST.MF
+orion1.4.5/demo/ejb/cart/Cart.java
+orion1.4.5/demo/ejb/cart/CartClient.class
+orion1.4.5/demo/ejb/cart/CartClient.java
+orion1.4.5/demo/ejb/cart/CartEJB.class
+orion1.4.5/demo/ejb/cart/CartEJB.java
+orion1.4.5/demo/ejb/cart/CartHome.class
+orion1.4.5/demo/ejb/cart/CartHome.java
+orion1.4.5/demo/ejb/cart/jndi.properties
+orion1.4.5/demo/ejb/cart/NotInCartException.class
+orion1.4.5/demo/ejb/cart/NotInCartException.java
+orion1.4.5/demo/ejb/cart/Cart.class
+orion1.4.5/demo/ejb/cart/orion-cart.jar
+orion1.4.5/demo/ejb/META-INF/application.xml
+orion1.4.5/demo/ejb/product/META-INF/application-client.xml
+orion1.4.5/demo/ejb/product/META-INF/ejb-jar.xml
+orion1.4.5/demo/ejb/product/META-INF/MANIFEST.MF
+orion1.4.5/demo/ejb/product/orion-product.jar
+orion1.4.5/demo/ejb/product/Product.class
+orion1.4.5/demo/ejb/product/Product.java
+orion1.4.5/demo/ejb/product/product.skeleton
+orion1.4.5/demo/ejb/product/ProductClient.class
+orion1.4.5/demo/ejb/product/ProductClient.java
+orion1.4.5/demo/ejb/product/ProductEJB.class
+orion1.4.5/demo/ejb/product/ProductEJB.java
+orion1.4.5/demo/ejb/product/ProductHome.class
+orion1.4.5/demo/ejb/product/ProductHome.java
+orion1.4.5/demo/ejb/product/ProductServlet.class
+orion1.4.5/demo/ejb/product/jndi.properties
+orion1.4.5/demo/ejb/product/ProductServlet.java
+orion1.4.5/demo/ejb/usermanager/META-INF/ejb-jar.xml
+orion1.4.5/demo/ejb/install.txt
+orion1.4.5/demo/jms/coffeemaker/META-INF/application-client.xml
+orion1.4.5/demo/jms/coffeemaker/META-INF/MANIFEST.MF
+orion1.4.5/demo/jms/coffeemaker/META-INF/orion-application-client.xml
+orion1.4.5/demo/jms/coffeemaker/CoffeeMachine.class
+orion1.4.5/demo/jms/coffeemaker/CoffeeMachine.java
+orion1.4.5/demo/jms/coffeemaker/CoffeeMaker.class
+orion1.4.5/demo/jms/coffeemaker/CoffeeMaker.java
+orion1.4.5/demo/jms/coffeemaker/jndi.properties
+orion1.4.5/demo/jms/jmschat/META-INF/application-client.xml
+orion1.4.5/demo/jms/jmschat/META-INF/MANIFEST.MF
+orion1.4.5/demo/jms/jmschat/META-INF/orion-application-client.xml
+orion1.4.5/demo/jms/jmschat/JMSChat$1.class
+orion1.4.5/demo/jms/jmschat/JMSChat.class
+orion1.4.5/demo/jms/jmschat/JMSChat.java
+orion1.4.5/demo/jms/jmschat/jndi.properties
+orion1.4.5/demo/jms/coffeemaker.jar
+orion1.4.5/demo/jms/jmschat.jar
+orion1.4.5/demo/jms/jmsdemo-readme.txt
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.java
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.java
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemClient.class
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.class
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.java
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.class
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.java
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.class
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.java
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.class
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.java
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.class
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.java
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.class
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.java
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.class
+orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.class
+orion1.4.5/demo/news-app/news-ejb-source/META-INF/ejb-jar.xml
+orion1.4.5/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.class
+orion1.4.5/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.java
+orion1.4.5/demo/news-app/news-client-source/com/evermind/ejb/NewsItemClient.class
+orion1.4.5/demo/news-app/news-client-source/META-INF/application-client.xml
+orion1.4.5/demo/news-app/news-client-source/META-INF/MANIFEST.MF
+orion1.4.5/demo/news-app/news-web/admin/editnews.jsp
+orion1.4.5/demo/news-app/news-web/admin/editnews_done.jsp
+orion1.4.5/demo/news-app/news-web/WEB-INF/lib/ejbtags.jar
+orion1.4.5/demo/news-app/news-web/WEB-INF/lib/utiltags.jar
+orion1.4.5/demo/news-app/news-web/WEB-INF/web.xml
+orion1.4.5/demo/news-app/news-web/border.html
+orion1.4.5/demo/news-app/news-web/checks.jsp
+orion1.4.5/demo/news-app/news-web/index.html
+orion1.4.5/demo/news-app/news-web/initviews.jsp
+orion1.4.5/demo/news-app/news-web/login-error.html
+orion1.4.5/demo/news-app/news-web/addnews.jsp
+orion1.4.5/demo/news-app/news-web/loginbox.jsp
+orion1.4.5/demo/news-app/news-web/logout.jsp
+orion1.4.5/demo/news-app/news-web/news-body.jsp
+orion1.4.5/demo/news-app/news-web/news.jsp
+orion1.4.5/demo/news-app/news-web/newsdetail.jsp
+orion1.4.5/demo/news-app/news-web/newssearch.jsp
+orion1.4.5/demo/news-app/news-web/usertest.jsp
+orion1.4.5/demo/news-app/news-web/login.html
+orion1.4.5/demo/news-app/news-web/addnews_done.jsp
+orion1.4.5/demo/news-app/META-INF/application.xml
+orion1.4.5/demo/news-app/news-web.war
+orion1.4.5/demo/news-app/news-client.jar
+orion1.4.5/demo/news-app/news-ejb.jar
+orion1.4.5/demo/news-app/counter.jar
+orion1.4.5/demo/rmi/RMIApp.class
+orion1.4.5/demo/rmi/RMIApp.java
+orion1.4.5/demo/ssl/ssl-user-registration.jsp
+orion1.4.5/demo/messagelogger.ear
+orion1.4.5/lib/hsql.jar
+orion1.4.5/loadbalancer.jar
+orion1.4.5/jta.jar
+orion1.4.5/jsse.jar
+orion1.4.5/jnet.jar
+orion1.4.5/jndi.jar
+orion1.4.5/jdbc.jar
+orion1.4.5/jcert.jar
+orion1.4.5/jaxp.jar
+orion1.4.5/ejbmaker.jar
+orion1.4.5/ejbassembler.jar
+orion1.4.5/ejb.jar
+orion1.4.5/earassembler.jar
+orion1.4.5/clientassembler.jar
+orion1.4.5/changes.txt
+orion1.4.5/autoupdate.properties
+orion1.4.5/autoupdate.jar
+orion1.4.5/assemblerlauncher.jar
+orion1.4.5/applicationlauncher.jar
+orion1.4.5/admin.jar
+orion1.4.5/activation.jar
+orion1.4.5/Readme.txt
+orion1.4.5/xerces.jar
+orion1.4.5/Copyright.txt
+orion1.4.5/xalan.jar
+orion1.4.5/webappassembler.jar
+orion1.4.5/taglibassembler.jar
+orion1.4.5/parser.jar
+orion1.4.5/orionconsole.jar
+orion1.4.5/orion.jar
+orion1.4.5/tools.jar
+orion1.4.5/mail.jar
+@dirrm orion1.4.5/application-deployments
+@dirrm orion1.4.5/config/database-schemas
+@dirrm orion1.4.5/config
+@dirrm orion1.4.5/default-web-app/examples/cal
+@dirrm orion1.4.5/default-web-app/examples/images
+@dirrm orion1.4.5/default-web-app/examples/jsp/include
+@dirrm orion1.4.5/default-web-app/examples/jsp/checkbox
+@dirrm orion1.4.5/default-web-app/examples/jsp/colors
+@dirrm orion1.4.5/default-web-app/examples/jsp/dates
+@dirrm orion1.4.5/default-web-app/examples/jsp/error
+@dirrm orion1.4.5/default-web-app/examples/jsp/forward
+@dirrm orion1.4.5/default-web-app/examples/jsp/snp
+@dirrm orion1.4.5/default-web-app/examples/jsp/cal
+@dirrm orion1.4.5/default-web-app/examples/jsp/jsptoserv
+@dirrm orion1.4.5/default-web-app/examples/jsp/num
+@dirrm orion1.4.5/default-web-app/examples/jsp/plugin/applet
+@dirrm orion1.4.5/default-web-app/examples/jsp/plugin
+@dirrm orion1.4.5/default-web-app/examples/jsp/sessions
+@dirrm orion1.4.5/default-web-app/examples/jsp/taglib/loop/META-INF
+@dirrm orion1.4.5/default-web-app/examples/jsp/taglib/loop/taglib
+@dirrm orion1.4.5/default-web-app/examples/jsp/taglib/loop
+@dirrm orion1.4.5/default-web-app/examples/jsp/taglib
+@dirrm orion1.4.5/default-web-app/examples/jsp
+@dirrm orion1.4.5/default-web-app/examples/perl
+@dirrm orion1.4.5/default-web-app/examples/ssi
+@dirrm orion1.4.5/default-web-app/examples/xsl
+@dirrm orion1.4.5/default-web-app/examples
+@dirrm orion1.4.5/default-web-app/WEB-INF/classes/colors
+@dirrm orion1.4.5/default-web-app/WEB-INF/classes/num
+@dirrm orion1.4.5/default-web-app/WEB-INF/classes/error
+@dirrm orion1.4.5/default-web-app/WEB-INF/classes/sessions
+@dirrm orion1.4.5/default-web-app/WEB-INF/classes/dates
+@dirrm orion1.4.5/default-web-app/WEB-INF/classes/cal
+@dirrm orion1.4.5/default-web-app/WEB-INF/classes/checkbox
+@dirrm orion1.4.5/default-web-app/WEB-INF/classes
+@dirrm orion1.4.5/default-web-app/WEB-INF
+@dirrm orion1.4.5/default-web-app
+@dirrm orion1.4.5/applications
+@dirrm orion1.4.5/database
+@dirrm orion1.4.5/demo/ejb/cart/META-INF
+@dirrm orion1.4.5/demo/ejb/cart
+@dirrm orion1.4.5/demo/ejb/META-INF
+@dirrm orion1.4.5/demo/ejb/product/META-INF
+@dirrm orion1.4.5/demo/ejb/product
+@dirrm orion1.4.5/demo/ejb/usermanager/META-INF
+@dirrm orion1.4.5/demo/ejb/usermanager
+@dirrm orion1.4.5/demo/ejb
+@dirrm orion1.4.5/demo/jms/coffeemaker/META-INF
+@dirrm orion1.4.5/demo/jms/coffeemaker
+@dirrm orion1.4.5/demo/jms/jmschat/META-INF
+@dirrm orion1.4.5/demo/jms/jmschat
+@dirrm orion1.4.5/demo/jms
+@dirrm orion1.4.5/demo/news-app/news-ejb-source/com/evermind/ejb
+@dirrm orion1.4.5/demo/news-app/news-ejb-source/com/evermind
+@dirrm orion1.4.5/demo/news-app/news-ejb-source/com
+@dirrm orion1.4.5/demo/news-app/news-ejb-source/META-INF
+@dirrm orion1.4.5/demo/news-app/news-ejb-source
+@dirrm orion1.4.5/demo/news-app/news-client-source/com/evermind/ejb
+@dirrm orion1.4.5/demo/news-app/news-client-source/com/evermind
+@dirrm orion1.4.5/demo/news-app/news-client-source/com
+@dirrm orion1.4.5/demo/news-app/news-client-source/META-INF
+@dirrm orion1.4.5/demo/news-app/news-client-source
+@dirrm orion1.4.5/demo/news-app/news-web/admin
+@dirrm orion1.4.5/demo/news-app/news-web/WEB-INF/classes
+@dirrm orion1.4.5/demo/news-app/news-web/WEB-INF/lib
+@dirrm orion1.4.5/demo/news-app/news-web/WEB-INF
+@dirrm orion1.4.5/demo/news-app/news-web
+@dirrm orion1.4.5/demo/news-app/META-INF
+@dirrm orion1.4.5/demo/news-app
+@dirrm orion1.4.5/demo/rmi
+@dirrm orion1.4.5/demo/ssl
+@dirrm orion1.4.5/demo
+@dirrm orion1.4.5/lib
+@dirrm orion1.4.5/log
+@dirrm orion1.4.5/persistence/ejb
+@dirrm orion1.4.5/persistence
+@dirrm orion1.4.5
+@unexec if [ -f %D/info/dir ]; then if sed -e '1,/Menu:/d' %D/info/dir | grep -q '^[*] '; then true; else rm %D/info/dir; fi; fi
diff -ruN --exclude=CVS /usr/ports/java/orion/work/.PLIST.startup /home/ernst/freebsd-ports/java/orion/work/.PLIST.startup
--- /usr/ports/java/orion/work/.PLIST.startup	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/.PLIST.startup	Fri May 25 18:57:00 2001
@@ -0,0 +1 @@
+etc/rc.d/orion.sh
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/Copyright.txt /home/ernst/freebsd-ports/java/orion/work/orion/Copyright.txt
--- /usr/ports/java/orion/work/orion/Copyright.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/Copyright.txt	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,7 @@
+Copyright 1998-2000 Evermind Data, Sweden.
+
+ALL RIGHTS RESERVED. REVERSE ENGINEERING OF
+THIS PRODUCT IS STRICTLY FORBIDDEN.
+
+This product can not be used commercially without purchasing a license
+from http://www.orionserver.com
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/Readme.txt /home/ernst/freebsd-ports/java/orion/work/orion/Readme.txt
--- /usr/ports/java/orion/work/orion/Readme.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/Readme.txt	Thu Jun 29 14:10:00 2000
@@ -0,0 +1,21 @@
+Please visit http://www.orionserver.com or send an email to 
+info@orionserver.com for information about this product.
+
+This version is only for development use or for non-commercial
+use. You need to purchase a license from http://www.orionserver.com
+to be able to use this server commercially.
+
+To install the server:
+java -jar orion.jar -install
+<follow the instructions>
+
+To start the server:
+java -jar orion.jar
+or
+java -jar orion.jar -config my/path/to/server.xml
+
+Good luck!
+The Orion team
+
+This product uses Hypersonic SQL as an example database, more info about
+Hypersonic SQL can be found at http://hsql.oron.ch/.
Binary files /usr/ports/java/orion/work/orion/activation.jar and /home/ernst/freebsd-ports/java/orion/work/orion/activation.jar differ
Binary files /usr/ports/java/orion/work/orion/admin.jar and /home/ernst/freebsd-ports/java/orion/work/orion/admin.jar differ
Binary files /usr/ports/java/orion/work/orion/applicationlauncher.jar and /home/ernst/freebsd-ports/java/orion/work/orion/applicationlauncher.jar differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/applications/atm-install.txt /home/ernst/freebsd-ports/java/orion/work/orion/applications/atm-install.txt
--- /usr/ports/java/orion/work/orion/applications/atm-install.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/applications/atm-install.txt	Fri Jun  2 01:00:00 2000
@@ -0,0 +1,42 @@
+Quick setup steps for the atm application:
+
+1) Add a valid data-source to data-sources.xml and uncomment
+the helper datasources in the same file. For instance if using
+HypersonicSQL the datasource could look like this:
+<data-source 
+		name="Default data-source"
+		class="com.evermind.sql.ConnectionDataSource"
+		location="jdbc/DefaultCoreDS"
+		pooled-location="jdbc/DefaultPooledDS"
+		xa-location="jdbc/xa/DefaultXADS"
+		ejb-location="jdbc/DefaultDS"
+		url="jdbc:HypersonicSQL:defaultdb"
+		connection-driver="org.hsql.jdbcDriver"
+		username="sa"
+		password=""	/>
+
+2) Add a valid mail configuration to config/application.xml below the
+<library ../> tag. It should look like the following:
+<mail-session location="mail/MailSession" smtp-host="mail.mycompany.com">
+	<property name="mail.transport.protocol" value="smtp" />
+	<property name="mail.smtp.from" value="admin@mycompany.com" />
+	<property name="mail.from" value="sales@mycompany.com" />
+</mail-session>
+
+3) Install the application, this is done by adding the following to
+config/server.xml below the <global-application ../> tag:
+<application name="atm" path="../applications/atm.ear" />
+
+4) Bind the web-app to the default site, this is done by adding the following to
+config/default-web-site.xml:
+<web-app application="atm" name="atm-web" root="/atm" /> 
+
+5) [optional] Bind the second web-app to the default site, this is done by adding
+the following to config/default-web-site.xml:
+<web-app application="atm" name="atm-wap" root="/atmwap" />
+
+6) Start Orion up, this should auto-deploy the application.
+
+7) Access http://localhost/atm/ using a normal browser and verify that the html web-app works.
+
+8) Access http://localhost/atmwap/ using a wap emulator and verify that the wml web-app works.
Binary files /usr/ports/java/orion/work/orion/applications/atm.ear and /home/ernst/freebsd-ports/java/orion/work/orion/applications/atm.ear differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/applications/estore-bugs.txt /home/ernst/freebsd-ports/java/orion/work/orion/applications/estore-bugs.txt
--- /usr/ports/java/orion/work/orion/applications/estore-bugs.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/applications/estore-bugs.txt	Mon May 15 01:00:00 2000
@@ -0,0 +1,27 @@
+Bugs (found so far):
+1. errorpage.jsp does not import java.io (but implicitly uses it).
+2. The web.xml for the web-app has an ejb-ref by the name of ejb/inventory which lists inventory as a session while it in fact is an entity.
+3. Internal errors are not logged (swallowed by errorpage and not logged from there either). Severe bug for paranoid admins (disables the containers logging, ie alerting the admin etc).
+4. Internal errors sometimes lead to a simple "the user id is already taken" without any hint regarding the real error.
+5. JSP Tags are used to store state outside of their own scope (ScreenDefinitions.jsp) - This is a programmer error since tags are usually reused once they're out of scope (after doEndTag()) so the state will get corrupted.
+6. enteruserdata.jsp:18 com.sun.estore.account.web.AccountWebImpl does not have a no-arg constructor, this isnt needed sinec it's a preexisting bean but then the attribute type shoul be used, not class (invalid "class" type since it is not a valid bean).
+7. The real error is not displayed in the errorpage in most cases, add this to the page to fix:
+<%if(exception instanceof javax.ejb.EJBException) { %>
+<b><em>
+<% ((javax.ejb.EJBException)exception).getCausedByException().printStackTrace(new PrintWriter(out)); %>
+</em></b>
+<% } %>
+8. The beans stored in the sessions are not serializable, while this isnt an error it prohibits fault tolerance thru session clustering and persisting sessions across restarts properly.
+9. The <shortname> attribute is missing in the TLD XML (mandatory attribute defined in the TLD DTD).
+10. The DAOs return null if the DB isnt cloudscape, sybase or oracle which in turn leads to crashes when using them.
+11. loginpage.jsp assumes it is executed in the directory it resides in which might not be the case depending on form-auth implementation (the implementation details are being further specified in the errata and expert groups for JSP and Servlets right now).
+To fix,
+change src="images/..." to src="<%=request.getContextPath()%>/images/...".
+12. The code catches IOExceptions without rethrowing them (instead it prints them, IOExceptions occur whenever there's a HTTP-layer error like a client disconnecting etc, should only be propagated).
+13. The login-page is specified as "/estore/login.jsp" while in fact it should be "/login.jsp", same goes for the error-page.
+
+Design questions:
+1. Use of BMP? This is a big topic, we'd suggest CMP but that's personal preference.
+2. Since it uses BMP - Lack of CMP baseclass (CMP baseclass should then be overriden by the BMP impl to keep it clean and keep your options open).
+3. The "screen" JSP should not iterate over the body of each of the screens, it should only process the body of the "selected" screen and from
+there directly set the values in the screen tag (not it's parent, it's parent's parent).
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/applications/estore-install.txt /home/ernst/freebsd-ports/java/orion/work/orion/applications/estore-install.txt
--- /usr/ports/java/orion/work/orion/applications/estore-install.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/applications/estore-install.txt	Mon May 15 01:00:00 2000
@@ -0,0 +1,53 @@
+Quick setup steps for the news application:
+First off, whenever you start orion during this setup you need to use -Djsp.reuse.tags=false.
+This is very important since the JPS has a bug when it comes to tags being reused.
+For a complete list of bugs found (the critical ones have been patched but not all) in the original JPS
+look at estore-bugs.txt in the same directory as this document.
+
+1) Download the JPS release from http://java.sun.com/j2ee/blueprints/
+
+2) Add a valid data-source to data-sources.xml. For instance if using
+HypersonicSQL the datasource could look like this:
+<data-source 
+		name="Default data-source"
+		class="com.evermind.sql.ConnectionDataSource"
+		location="jdbc/DefaultCoreDS"
+		pooled-location="jdbc/DefaultPooledDS"
+		xa-location="jdbc/xa/DefaultXADS"
+		ejb-location="jdbc/DefaultDS"
+		url="jdbc:HypersonicSQL:defaultdb"
+		connection-driver="org.hsql.jdbcDriver"
+		username="sa"
+		password=""	/>
+
+3) Add a valid mail configuration to config/application.xml. It should look like the following:
+<mail-session location="mail/MailSession" smtp-host="mail.mycompany.com">
+	<property name="mail.transport.protocol" value="smtp" />
+	<property name="mail.smtp.from" value="admin@mycompany.com" />
+	<property name="mail.from" value="sales@mycompany.com" />
+</mail-session>
+
+4) Run the .sql script found in the JPS distro for your particular db in order to create the tables.
+
+5) Install the application, this is done by adding the following to config/server.xml:
+<application name="petstore" path="../applications/estore-patched.ear" />
+
+6) Start Orion up, this should auto-deploy the application.
+
+7) Move the estore-orionadapter.jar to the orion/application-deployments/petstore/ directory and link it
+with a <library path="estore-orionadapter.jar" /> in orion-application.xml in that directory. This contains
+the Orion-specific code for that app (the SecurityAdapter), look inside the jar for source.
+
+8) Open orion/application-deployments/petstore/estoreEjb.jar/orion-ejb-jar.xml.
+Find the <session-deployment name="TheShoppingClientController" ...> tag and add the following subtag:
+<env-entry-mapping name="securityAdapterClassName" value="OrionSecurityAdapter" />
+This specifies for the app to use the OrionSecurityAdapter instead of the default J2EE-RI adapter.
+
+9) Open orion/application-deployments/petstore/estore/orion-web.xml and add the same tag as to the previous file:
+<env-entry-mapping name="securityAdapterClassName" value="OrionSecurityAdapter" />.
+
+10) Bind the web-app to the default site, this is done by adding the following to
+config/default-web-site.xml:
+<web-app application="petstore" name="estore" root="/petstore" />
+
+11) Access http://localhost/petstore/ and verify that it works.
Binary files /usr/ports/java/orion/work/orion/applications/estore-orionadapter.jar and /home/ernst/freebsd-ports/java/orion/work/orion/applications/estore-orionadapter.jar differ
Binary files /usr/ports/java/orion/work/orion/applications/estore-patched.ear and /home/ernst/freebsd-ports/java/orion/work/orion/applications/estore-patched.ear differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/applications/news-install.txt /home/ernst/freebsd-ports/java/orion/work/orion/applications/news-install.txt
--- /usr/ports/java/orion/work/orion/applications/news-install.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/applications/news-install.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,26 @@
+Quick setup steps for the news application:
+1) Add a valid data-source to data-sources.xml and uncomment
+the helper datasources in the same file. For instance if using
+HypersonicSQL the datasource could look like this:
+
+<data-source class="com.evermind.sql.ConnectionDataSource" location="jdbc/HypersonicDS">
+	<name>Default data-source</name>
+	<description>
+		Hypersonic SQL source.
+	</description>
+	<url>jdbc:HypersonicSQL:defaultdb</url>
+	<connection-driver>hSql.hDriver</connection-driver>
+	<username>sa</username>
+	<password></password>
+</data-source>
+
+2) Install the application, this is done by adding the following to config/server.xml:
+<application name="news" path="../applications/news.ear" />
+
+3) Bind the web-app to the default site, this is done by adding the following to
+config/default-web-site.xml:
+<web-app application="news" name="news-web" root="/news" />
+
+4) Start Orion up, this should auto-deploy the application.
+
+5) Access http://localhost/news/ and verify that it works.
Binary files /usr/ports/java/orion/work/orion/applications/news.ear and /home/ernst/freebsd-ports/java/orion/work/orion/applications/news.ear differ
Binary files /usr/ports/java/orion/work/orion/assemblerlauncher.jar and /home/ernst/freebsd-ports/java/orion/work/orion/assemblerlauncher.jar differ
Binary files /usr/ports/java/orion/work/orion/autoupdate.jar and /home/ernst/freebsd-ports/java/orion/work/orion/autoupdate.jar differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/autoupdate.properties /home/ernst/freebsd-ports/java/orion/work/orion/autoupdate.properties
--- /usr/ports/java/orion/work/orion/autoupdate.properties	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/autoupdate.properties	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,4 @@
+url=http://www.orionserver.com/servlet/update
+root=.
+promptTypes=xml, config, types
+skipTypes=log, ser
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/changes.txt /home/ernst/freebsd-ports/java/orion/work/orion/changes.txt
--- /usr/ports/java/orion/work/orion/changes.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/changes.txt	Sat Jan 20 22:39:20 2001
@@ -0,0 +1,328 @@
+-- 1.4.5 --
+Fixed 'bad serialization returns null' and added a copy-by-value attribute in *-deployment in order to deactivate copy-by-value semantics (increases performance).
+Fixed #120 'Exception thrown from requests exceeding 2K'
+Fixed #204 'Loadbalancer seems to truncate large pages'
+Fixed #207 'CGIServlet fails with multiple inputs of the same name'
+Fixed #210 'RMI connections not going into Time-Wait state'
+Fixed #215 'bug when creating InitialContext'
+Fixed #224 'EJBUserBean.getGroups() returns a null collection'
+Fixed #104 'ejbobject returned by create for cmp entity doesn't load state'
+Fixed #111 'POST method does not work when using the loadbalancer'
+Fixed #119 'Internal server error 500 when using bugzilla'
+Fixed #155 '"immutable"-attribute disappears after deployment'
+Fixed #162 '"http://www.orionserver.com/dtds/database-schemas.dtd" not found'
+Fixed #181 'non-serializable remote interface return values are not detected'  
+Fixed #182 'byte[] cmp'
+Fixed #231 'Cannot declare inner class and taglib in one JSP'
+Fixed #238 'getServletConfig().getServletName() is hideously broken'
+Fixed #201 'default server.xml fails when specifying -validateXML'
+
+-- 1.4.4 --
+Fixed not persisting OR instances and dependent instance field changes under certain conditions.
+Fixed #140 maintaining a bidirectional 1-n relation (m-n is still in the works).
+Added FieldPersistenceManager to the API and documentation.
+
+-- 1.4.3 --
+Fixed composite key EJB deployment compilation error created in 1.4.1.
+Changed sendRedirect("/somepath") to be site-relative and not application-relative to conform with the Servlet 2.3 specification clarification.
+
+-- 1.4.2 --
+Updated Servlet support to 2.3PFD.
+
+-- 1.4.1 --
+Added $cookie:name and $header:name to the custom HTTP log format syntax.
+Fixed #48 'Context.listBindings returns NameClassPair instead of Binding'
+Fixed #53 '<xsl:param> causes Error while being parsed at runtime'
+Fixed #90 'Several problems with provided HyperSonic database schema'
+Fixed #92 'session.removeValue() causes infinite recursion'
+Fixed #93 'Context.list() returns invalid NamingEnumeration'
+Fixed #103 'Boolean bean properties fail'
+Fixed #105 'Orion Server object reference problem'
+Fixed #109 'Does orion support unicode strings in format %uxxxx?'
+Fixed #110 'webroot revealed'
+Fixed #121 'Odd text is sent to client around http page'
+Fixed #122 'setMaxAge(0) does expire the cookie as it should.'
+Fixed #124 'JMS queue session fails to rollback in a standaone app.'
+Fixed #125 'I get null pointer exception after calling create on an EB...'  
+Fixed #131 'EJB2.0 home methods misnamed (and don't seem to work)'
+Fixed #134 'Code generation error at deployment stage : !created'
+Fixed #138 'Wrong ejbPostCreate method used'
+Fixed #141 'UnsupportedEncodingException in the servlet runner'
+Fixed #147 'Can't specify disallowed TABLE names'
+Fixed #149 'Calling rollback on a non-transacted queuesession throws null...'
+Fixed #151 'Receiving a message with CLIENT_ACKNOWLEDGE acts like AUTO_ACKNOWLEDGE'  
+Fixed #152 'orion-ejb-jar.xml documentation lacks default value for "isolation' 
+Fixed #155 '"immutable"-attribute disappears after deployment'
+Fixed #157 'noLocal parameter does not work in TopicSession.createSubscriber'
+
+--- 1.4.0 ---
+Optimized CMP entity stores to only store updated fields.
+Added min-connections to the data-source tag.
+#37 Fixed persisting OR fields in CMP entities remove() method.
+Fixed DuplicateKeyException when using validity-timeout and an invalid instance (validity had timed out) existing in the cache. It now checks the datasource.
+#77 Disabled session tracking inside <script> tags.
+
+--- 1.3.9 ---
+Added support for EJB 2.0 run-as-specified-identity.
+Added support for EJB 2.0 home methods.
+Added allowed-hostmask="x.x.x.x" to session-tracking in orion-web.xml.
+Fixed problem with multiple custom JSP tag attributes and TagExtraInfo.isValid(...).
+Fixed not honouring max-connections for datasources at times and hanging at times when calling .getConnection() and the pool was full.
+
+--- 1.3.8 ---
+Fixed trace being thrown at clean shutdown under 1.2.
+Optimized server instance local queue and topic JMS usage not to go thru socket loopback (added in memory message distribution).
+Fixed sendRedirect(...) not throwing IllegalStateException if the response had already been committed.
+Fixed emptying retrieved writer (HttpServletResponse.getWriter()) when using response.reset().
+
+--- 1.3.7 ---
+Fixed Cookie.setDomain(...).
+Fixed recursive calls not working properly with exclusive-write-access="false".
+
+--- 1.3.6 ---
+Fixed EJBHome.findByPrimaryKey(...) returning null in some cases with exclusive-write-access="false".
+Tuned the load balancer to scale better and fixed an AIOOB bug when using IP based routing.
+Fixed lingering thread bug when restarting the server via -restart in the admin tool.
+
+--- 1.3.5 ---
+Fixed the behaviour of RequestDispatcher.include(...) (to not update the path variables) and the .include.* request attributes (to contain the include paths).
+Fixed filter include appearance order in rerouted output.
+Added auto-copying of data-sources.xml and principals.xml from a .ear to the deployment-directory.
+Added setting of working directory for CGI's if using the 1.3 or above Java 2 platform.
+Fixed loadbalancer AIOOB exception error for certain IP ranges.
+Fixed DataSourceUserManager membership table name settings.
+
+--- 1.3.3 ---
+Fixed XSLServlet's handling of XSL stylesheet's media-type.
+Fixed POST bug that effected NS from 1.3.0.
+Added -dontusekeepalives option to the loadbalancer.
+Fixed loadbalancer's handling of chunked content.
+
+--- 1.3.1 ---
+Fixed <filter-class> being improperly rewritten.
+Added <frontend /> tag to web-site.xml for sites behind firewalls and/or load-balancers.
+Fixed encoding of JSP source \'s in development mode (went bad in 1.3.0).
+Fixed finders outside of transactions with exclusive-write-access="false".
+Fixed recursion problem when including JSPs using filtered request/responses (Servlet 2.3 filters).
+
+--- 1.3.0 ---
+Fixed i18n issues when posting/querying using %xx.
+Fixed TX error when removing entities with exclusive-write-access="false" in transactions.
+Added missing ServletRequest.setCharacterEncoding(String charset) from the Servlet 2.3 API.
+
+--- 1.2.9 ---
+Fixed CCE when calling RoleManager.isPrincipalInRole(...) with a <security-role-mapping> containing a <user ... /> tag.
+Fixed EJB exclusive-write-access="false" bug where post-TX entities were sometimes cached even if they shouldnt.
+
+--- 1.2.8 ---
+Fixed servlet and JSP i18n issues.
+Added missing ServletRequest.getParameterMap() method from the Servlet 2.3 specification.
+Fixed https:ormi and HTTPS + netscape x.x + POST lock-up problem.
+Fixed jspInit() being called more than once.
+Added usage to loadbalancer.jar.
+
+--- 1.2.7 ---
+Added loadbalancer.jar to the distribution.
+Added cluster-island="x" attribute to <web-site>.
+Fixed Servlet API inconsistencies, methods altered/removed after Servlet 2.2 PD1.
+Added Servlet 2.3 support.
+Fixed application-client auto-start that broke in 1.2.4.
+
+-- 1.2.3 ---
+Added parent="parentApp" to the <application /> tag in server.xml.
+Fixed getVariableInfo() not being called on the TEI of zero-attribute tags.
+Fixed bug where ejbPassivate() was called at a passive state bean when using EJB references.
+Fixed bug where load-on-startup web-applications could be loaded twice.
+Added hSQL as the default installed datasource in the distribution.
+Changed the default session cookie path from "" to "/".
+Added settable cookie-path to the session-tracking tag in orion-web.xml.
+Fixed bug with SSL and POSTs from Netscape Navigator 4.x.
+Added use-keep-alives to web-site.xml to make it possible to disable HTTP 1.1 keep-alives.
+Added wait-timeout for data-sources to make it possible to specify the time to wait if all the sources are used up (ie reached max-connections), the default is 60 seconds.
+Speeded up EJB deployment.
+Added support for HTTPS (https:ormi:...) for RMI clients.
+Fixed bug where a servlets <description> tag was not saved in webappassembler.
+
+-- 1.1.16 --
+Fixed HTTP security hole appearing in 1.0RC2 resulting in viewing of JSP
+source.
+GUI tool improvements.
+General JSP/Servlet/EJB fixes.
+Partial support for EJB 2.0 OR and CMP.
+Fixed DataSource persistence inside HttpSession and EJBs.
+
+-- 1.0 final --
+General cleanup
+Added copying deployment files from the archive if they're there when deploying
+Removed servlets/ and beans/ dir since they were confusing to many.
+Minor fixes
+
+-- 1.0rc2 --
+Fixed SSL + J2SE v1.2 bug.
+Fixed OR-Map bugs.
+Added default-charset to orion-web.xml.
+HTTP performance increase.
+Made .ext servlet-mappings apply even when there is no file by that name.
+Added -Dnative.user.
+Included JPS
+
+-- 1.0rc1 --
+Made deployment-directory and application-directory default attributes in
+the distro.
+JSP i18n fixes.
+Changed the values of JSP API final variables to match those of the RI
+(change needed due to underspecified spec). Tag-libraries will need to be
+recompiled.
+Assembly tool improvements.
+EJB and JSP implementation bug fixes.
+Fixed the context classloader to work more efficiently.
+
+-- 0.9.4 --
+Classpath bug where JSPs could not see the library paths fixed.
+Multiple JSP bugfixes.
+"Collection" OR-type storage fix.
+Added automatic TX retries (optional) on system-level errors.
+Added call timeout for EJBs (optional).
+Added instant deadlock detection for EJBs.
+Added -install switch for initial setup.
+
+-- 0.9.1 --
+Fixed orion-web.xml configuration bug.
+
+-- 0.9.0 --
+Full EJB 1.1 support.
+Advanced Obect<->Relational mapping support including support for the
+types Collection, Set, List, Map and the legacy types Vector, Hashtable,
+Properties and Type[]. See docs/OR-howto.txt for instructions.
+RMI HTTP-tunneling support (See docs/rmi-http-tunneling-howto.txt for
+instructions).
+Native SSL and cert-based client-auth support.
+Full J2EE support (including .ear file format support etc).
+Application hot-swap support, ability to redeploy applications without a
+server restart.
+Numerous EJB bugfixes.
+Improved application-client support.
+
+-- 0.8.1 --
+Fixed NPE bug when optional tag attributes werent defined for a taglib
+tag.
+Fixed error in EJB SELECT syntax for composite primary-keys.
+Added missing <taglib> tag from the JSP 1.1 PR2 specification.
+Increased granularity for entity-bean passivisation sweeps.
+Fixed bug where ejbStore would not be called properly under certain
+transactional modes.
+Fixed DataSourceUserManager to include users from it's parent UserManager.
+Fixed "Add bean" bug in EJB-assembler.
+Fixed bug where drivers for databases had to reside in the core classpath.
+Added ejb-howto.txt and data-sources-howto.txt to the docs directory.
+Added library version check (JSP & Servlet) in order to provide friendlier
+error messages in case of library shadowing.
+Fixed NPE in pageContext.setAttribute(key, value, PageContxt.PAGE_SCOPE).
+Fixed returned result of Enumeration finder method not being properly
+serializable.
+Fixed bug in <%@ page import="x" %> tags including linefeeds.
+
+-- 0.8.0 --
+Added HTTP-session persistence across server restarts.
+Added EJB-session perstistence across server restarts.
+Added generated JSP-code caching between restarts.
+Added ability to plug in an external compiler for
+JSP/EJB compilation (Jikes etc).
+Fixed bean-managed transactions bugs.
+Added missing getAttributes() method in javax.servlet.jsp.tagext.TagData.
+Improved the EJB-assembler tool.
+Fixed broken link in the Client-assembler tool.
+Added timeout and max-connections setting to the pooled DataSources.
+Fixed bug where EJB methods couldnt throw RemoteException.
+Added 'development' mode for web-apps where more readable (but slower) JSP
+source is generated and stored into the persistence directory for
+debugging if activated.
+
+-- 0.7.9 --
+Upgraded JSP support to JSP 1.1 PR2.
+Added ejbassembler & clientassembler alpha's to the distro.
+Added a simple news-site demo to show EJB <-> JMS integration.
+Added util shutdown tool (RMI needs to be activated).
+Fixed EJB finder method bugs.
+Fixed EJB RequiresNew transactional support.
+Fixed double inclusion of tag bodycontent in JSP
+when specifying tagdependant bodycontent.
+Fixed JSP page bufer and autoFlush attributes.
+Fixed "bug in fix" regarding jsp:forward.
+Fixed spontanous recompilation (without any updates)
+of JSPs bug.
+Fixed error-page directive.
+
+-- 0.7.8b --
+Fixed JSP 'DOS' bug when parsing invalid HTML source.
+Fixed jsp:include/jsp:forward's jsp:param support.
+
+-- 0.7.8 --
+Numerous EJB bugfixes.
+Added two EJB examples.
+Added public UserManager interface for user management.
+JSP <!-- --> and <%-- --%> handling fixes.
+JSP resource retrieval fixed (lack of this resulted in
+.ser files not being found etc).
+Fixed PageContext.getRequest()/getResponse() to conform
+to the JSP 1.1 API.
+
+-- 0.7.7 --
+Internal version, never publically released.
+
+-- 0.7.6b --
+Fixed JSP problems with lacking "" and the use of '' around attributes.
+Fixed runtime type bug in JSP in jsp:setProperty when the parameter
+was an arbitary object instead of a core type.
+
+-- 0.7.6 --
+Fixed user delegation problem where global users where not
+valid for web-site instances.
+RMI Proxy implementation bugs fixed.
+
+-- 0.7.5b --
+Added missing files from the distro causing JSP to malfunction.
+
+-- 0.7.5 --
+Servlet 2.2 support.
+JSP 1.1 (taglib) support.
+Fixed cookie persistence bug for version 0 cookies.
+
+-- 0.7.4 --
+Added 1.2 support for the RMI-implementation (1.3 is no longer required).
+
+-- 0.7.3b --
+Fixed RMI-implementation bug, number of requests per sec handled
+has now improved by 500x.
+Fixed HTTP "bug" affecting some old browsers (namely old versions of
+lynx) which sent very long request headers (hit the "DOS-barrier", the
+barrier has now been raised to handle these browsers).
+
+-- 0.7.3 --
+First release of the RMI/EMD implementation, still alpha status.
+Fixed 0.7.2-specific http-session management bug.
+Added LotusXSL from the distro - XSL parsing of dynamic output
+(for instance JSPs) are now possible.
+Removed Cocoon from the distro.
+
+-- 0.7.2 --
+Updated the Servlet impl to 2.2 final.
+Updated the EJB impl to 1.1 final.
+Numerous EJB fixes.
+Directory-browsing bug removed.
+Lazy loading and unloading of inactive web-apps added.
+
+-- 0.7.1b --
+Form-based authentication added.
+Netscape POST bug fixed.
+Filter url-pattern option added.
+Fixed URLClassLoader related bug in Java 2 v1.3.
+
+-- 0.7.0 --
+Updates:
+Changed configuration-file formats to XML.
+Added user-app support (user web-dirs/servlets/etc).
+
+Bugfixes:
+Fixed bug where init() was called twice for some servlets.
+Fixed post bug.
Binary files /usr/ports/java/orion/work/orion/clientassembler.jar and /home/ernst/freebsd-ports/java/orion/work/orion/clientassembler.jar differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/application.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/application.xml
--- /usr/ports/java/orion/work/orion/config/application.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/application.xml	Mon May 15 01:00:00 2000
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!DOCTYPE orion-application PUBLIC "-//Evermind//DTD J2EE Application runtime 1.2//EN" "http://www.orionserver.com/dtds/orion-application.dtd">
+
+<!-- The global application config that is the parent of all the other
+	applications in this server. -->
+<orion-application>
+	<web-module id="defaultWebApp" path="../default-web-app" />
+
+	<persistence path="../persistence" />
+	
+        <!-- Path to the libraries that are installed on this server.
+	These will accesible for the servlets, EJBs etc -->
+	<library path="../lib" />
+
+	<log>
+		<file path="../log/global-application.log" />
+	</log>
+
+	<data-sources path="data-sources.xml" />
+	
+	<namespace-access>
+		<read-access>
+			<namespace-resource root="">
+				<security-role-mapping>
+					<group name="administrators" />
+				</security-role-mapping>
+			</namespace-resource>
+		</read-access>
+		<write-access>
+			<namespace-resource root="">
+				<security-role-mapping>
+					<group name="administrators" />
+				</security-role-mapping>
+			</namespace-resource>
+		</write-access>
+	</namespace-access>
+</orion-application>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/data-sources.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/data-sources.xml
--- /usr/ports/java/orion/work/orion/config/data-sources.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/data-sources.xml	Thu Jun 29 14:06:00 2000
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!DOCTYPE data-sources PUBLIC "Orion data-sources" "http://www.orionserver.com/dtds/data-sources.dtd">
+
+<data-sources>
+	<!--
+		An example/default DataSource that uses an ordinary
+		JDBC-driver (in this case hsql) to create the connections. 
+		This tag creates all the needed kinds
+		of data-sources, transactional, pooled and EJB-aware sources.
+		The source generally used in application code is the "EJB"
+		one - it provides transactional safety and connection pooling.
+	-->
+	<data-source
+		class="com.evermind.sql.DriverManagerDataSource"
+		name="Hypersonic"
+		location="jdbc/HypersonicCoreDS"
+		xa-location="jdbc/xa/HypersonicXADS"
+		ejb-location="jdbc/HypersonicDS"
+		connection-driver="org.hsql.jdbcDriver"
+		username="sa"
+		password=""
+		url="jdbc:HypersonicSQL:./database/defaultdb"
+		inactivity-timeout="30"
+	/>
+</data-sources>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/database-schemas/hypersonic.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/hypersonic.xml
--- /usr/ports/java/orion/work/orion/config/database-schemas/hypersonic.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/hypersonic.xml	Tue Jan  9 13:02:56 2001
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!DOCTYPE database-schema PUBLIC "-//Evermind//- Database schema" "http://www.orionserver.com/dtds/database-schema.dtd">
+
+<database-schema name="Hypersonic SQL" not-null="not null" null="" primary-key="primary key">
+	<type-mapping type="java.lang.String" name="char (255)" />
+	<type-mapping type="int" name="int" />
+	<type-mapping type="long" name="bigint" />
+	<type-mapping type="float" name="float" />
+	<type-mapping type="double" name="double" />
+	<type-mapping type="byte" name="tinyint" />
+	<type-mapping type="char" name="char" />
+	<type-mapping type="short" name="tinyint" />
+	<type-mapping type="boolean" name="bit" />
+	<type-mapping type="java.util.Date" name="timestamp" />
+	
+	<disallowed-field name="password" />
+	<disallowed-field name="username" />
+	<disallowed-field name="date" />
+	<disallowed-field name="order" />
+</database-schema>
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/database-schemas/ms-access.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/ms-access.xml
--- /usr/ports/java/orion/work/orion/config/database-schemas/ms-access.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/ms-access.xml	Tue Jan  9 13:04:14 2001
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!DOCTYPE database-schema PUBLIC "-//Evermind//- Database schema" "http://www.orionserver.com/dtds/database-schema.dtd">
+
+<database-schema name="Microsoft Access" not-null="not null" null="" primary-key="primary key">
+	<type-mapping type="java.lang.String" name="char (255)" />
+	<type-mapping type="int" name="integer" />
+	<type-mapping type="float" name="float" />
+	<type-mapping type="double" name="double" />
+	<type-mapping type="byte" name="smallint" />
+	<type-mapping type="char" name="char" />
+	<type-mapping type="short" name="integer" />
+	<type-mapping type="boolean" name="bit" />
+	<type-mapping type="java.util.Date" name="datetime" />
+
+	<!-- Unsupported types, at least via the JDBC-ODBC bridge -->
+	<type-mapping type="long" name="[none]" />
+	<type-mapping type="java.io.Serializable" name="[none]" />
+	
+	<disallowed-field name="password" />
+	<disallowed-field name="username" />
+	<disallowed-field name="date" />
+	<disallowed-field name="text" />
+</database-schema>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/database-schemas/ms-sql.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/ms-sql.xml
--- /usr/ports/java/orion/work/orion/config/database-schemas/ms-sql.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/ms-sql.xml	Tue Jan  9 13:04:32 2001
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE database-schema PUBLIC "-//Evermind//- Database schema" "http://www.orionserver.com/dtds/database-schema.dtd">
+
+<database-schema name="Microsoft SQL Server" not-null="not null" null="" primary-key="primary key">
+	<type-mapping type="java.lang.String" name="nvarchar(50)" />
+	<type-mapping type="float" name="float" />
+	<type-mapping type="double" name="float" />
+	<type-mapping type="byte" name="smallint" />
+	<type-mapping type="char" name="char" />
+	<type-mapping type="short" name="int" />
+	<type-mapping type="boolean" name="bit" />
+	<type-mapping type="long" name="int" />
+	<type-mapping type="java.io.Serializable" name="varbinary" />
+	
+	<disallowed-field name="password" />
+	<disallowed-field name="username" />
+	<disallowed-field name="date" />
+	<disallowed-field name="text" />
+</database-schema>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/database-schemas/oracle.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/oracle.xml
--- /usr/ports/java/orion/work/orion/config/database-schemas/oracle.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/oracle.xml	Tue Jan  9 13:04:38 2001
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!DOCTYPE database-schema PUBLIC "-//Evermind//- Database schema" "http://www.orionserver.com/dtds/database-schema.dtd">
+
+<database-schema name="Oracle" not-null="not null" null="null"
+primary-key="primary key" max-table-name-length="30">
+	<type-mapping type="java.lang.String" name="varchar2(255)" />
+	<type-mapping type="int" name="number(20,0)" />
+	<type-mapping type="long" name="number(20,0)" />
+	<type-mapping type="float" name="number(20,5)" />
+	<type-mapping type="double" name="number(30,0)" />
+	<type-mapping type="byte" name="number(10,0)" />
+	<type-mapping type="char" name="char(1)" />
+	<type-mapping type="short" name="number(10,0)" />
+	<type-mapping type="boolean" name="number(1,0)" />
+	<type-mapping type="java.util.Date" name="date" />
+	<type-mapping type="java.io.Serializable" name="blob" />
+
+	<disallowed-field name="password" />
+	<disallowed-field name="date" />
+</database-schema>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/database-schemas/postgresql.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/postgresql.xml
--- /usr/ports/java/orion/work/orion/config/database-schemas/postgresql.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/postgresql.xml	Thu Jan 18 17:16:58 2001
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<!DOCTYPE database-schema PUBLIC "-//Evermind//- Database schema" "http://www.orionserver.com/dtds/database-schema.dtd">
+
+<database-scheme name="PostGreSQL" not-null="not null" null="null" primary-key="primary key">
+	<type-mapping type="java.lang.String" name="varchar(255)" />
+	<type-mapping type="int" name="integer" />
+	<type-mapping type="long" name="integer" />
+	<type-mapping type="float" name="float" />
+	<type-mapping type="double" name="double precision" />
+	<type-mapping type="byte" name="smallint" />
+	<type-mapping type="char" name="char" />
+	<type-mapping type="short" name="integer" />
+	<type-mapping type="boolean" name="bool" />
+	<type-mapping type="java.util.Date" name="timestamp" />
+	<type-mapping type="java.io.Serializable" name="oid" />
+
+	<disallowed-field name="position" />
+	<disallowed-field name="parent" />
+	<disallowed-field name="password" />
+	<disallowed-field name="username" />
+	<disallowed-field name="date" />
+	<disallowed-field name="order" />
+	<disallowed-field named="abort" />
+    <disallowed-field named="analyze" /> 
+    <disallowed-field named="binary" /> 
+    <disallowed-field named="cluster" />
+    <disallowed-field named="constraint" />
+    <disallowed-field named="copy" />
+    <disallowed-field named="do" /> 
+    <disallowed-field named="explain" />
+    <disallowed-field named="extend" />
+    <disallowed-field named="listen" />
+    <disallowed-field named="load" />
+    <disallowed-field named="lock" /> 
+    <disallowed-field named="move" /> 
+    <disallowed-field named="new" />
+    <disallowed-field named="none" />
+    <disallowed-field named="notify" /> 
+    <disallowed-field named="offset" /> 
+    <disallowed-field named="reset" /> 
+    <disallowed-field named="setof" />
+    <disallowed-field named="show" />
+    <disallowed-field named="unlisten" />
+    <disallowed-field named="until" /> 
+    <disallowed-field named="vacuum" />
+    <disallowed-field named="verbose" />
+</database-scheme>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/database-schemas/sybase.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/sybase.xml
--- /usr/ports/java/orion/work/orion/config/database-schemas/sybase.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/database-schemas/sybase.xml	Thu May 18 01:00:00 2000
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!DOCTYPE database-schemea PUBLIC "-//Evermind//- Database scheme" "http://www.orionserver.com/dtds/database-schemes.dtd">
+
+<database-schema name="Sybase" not-null="not null" null="null" primary-key="primary key" max-table-name-length="30">
+	<type-mapping type="java.lang.String" name="char (255)" />
+	<type-mapping type="int" name="integer" />
+	<type-mapping type="long" name="integer" />
+	<type-mapping type="float" name="float" />
+	<type-mapping type="double" name="double precision" />
+	<type-mapping type="byte" name="smallint" />
+	<type-mapping type="char" name="char" />
+	<type-mapping type="short" name="integer" />
+	<type-mapping type="boolean" name="bit" />
+	<type-mapping type="java.util.Date" name="datetime" />
+	
+	<disallowed-field name="parent" />
+	<disallowed-field name="password" />
+	<disallowed-field name="username" />
+	<disallowed-field name="date" />
+</database-schema>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/default-web-site.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/default-web-site.xml
--- /usr/ports/java/orion/work/orion/config/default-web-site.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/default-web-site.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!DOCTYPE web-site PUBLIC "Orion Web-site" "http://www.orionserver.com/dtds/web-site.dtd">
+
+<web-site host="[ALL]" port="80" display-name="Default Orion WebSite">
+	<!-- The default web-app for this site, bound to the root -->
+	<default-web-app application="default" name="defaultWebApp" />
+
+	<!-- Uncomment this to activate the news app -->
+	<!-- <web-app application="news" name="news-web" root="/news" /> -->
+
	<!-- Access Log, where requests are logged to -->
+	<access-log path="../log/default-web-access.log" />
+</web-site>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/global-web-application.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/global-web-application.xml
--- /usr/ports/java/orion/work/orion/config/global-web-application.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/global-web-application.xml	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,98 @@
+<?xml version="1.0"?>
+<!DOCTYPE orion-web-app PUBLIC '//Evermind//Orion web-application' 'http://www.orionserver.com/dtds/orion-web.dtd'>
+
+<!-- Set development="true" to enabvle development, enable this if you
+want to debug JSP sources etc -->
+
+<orion-web-app
+	jsp-cache-directory="./persistence"
+	servlet-webdir="/servlet"
+	development="false"
+>
+
+	<!-- The mime-mappings for this server -->
+	<mime-mappings path="./mime.types" />
+	<servlet-chaining servlet-name="xsl" mime-type="text/xml" />
+
+	<web-app>
+		<servlet>
+			<servlet-name>xsl</servlet-name>
+			<servlet-class>com.evermind.servlet.XSLServlet</servlet-class>
+			<init-param>
+				<param-name>defaultContentType</param-name>
+				<param-value>text/html</param-value>
+			</init-param>
+		</servlet>
+	
+		<servlet>
+			<servlet-name>jsp</servlet-name>
+			<servlet-class>com.evermind.server.http.JSPServlet</servlet-class>
+		</servlet>
+
+		<servlet>
+			<servlet-name>ssi</servlet-name>
+			<servlet-class>com.evermind.server.http.SSIServlet</servlet-class>
+		</servlet>
+
+		<servlet>
+			<servlet-name>cgi</servlet-name>
+			<servlet-class>com.evermind.server.http.CGIServlet</servlet-class>
+		</servlet>
+
+		<servlet>
+			<servlet-name>perl</servlet-name>
+			<servlet-class>com.evermind.server.http.CGIServlet</servlet-class>
+			<init-param>
+				<param-name>interpreter</param-name>
+				<param-value>perl</param-value>
+			</init-param>
+		</servlet>
+
+		<servlet>
+			<servlet-name>php</servlet-name>
+			<servlet-class>com.evermind.server.http.CGIServlet</servlet-class>
+			<init-param>
+			<param-name>interpreter</param-name>
+				<param-value>php</param-value>
+			</init-param>
+		</servlet>
+		<servlet-mapping>
+			<servlet-name>jsp</servlet-name>
+			<url-pattern>/*.jsp</url-pattern>
+		</servlet-mapping>
+
+		<servlet-mapping>
+			<servlet-name>cgi</servlet-name>
+			<url-pattern>/*.cgi</url-pattern>
+		</servlet-mapping>
+
+		<servlet-mapping>
+			<servlet-name>perl</servlet-name>
+			<url-pattern>/*.pl</url-pattern>
+		</servlet-mapping>
+
+		<servlet-mapping>
+			<servlet-name>php</servlet-name>
+			<url-pattern>/*.php</url-pattern>
+		</servlet-mapping>
+
+		<servlet-mapping>
+			<servlet-name>php</servlet-name>
+			<url-pattern>/*.php3</url-pattern>
+		</servlet-mapping>
+
+		<servlet-mapping>
+			<servlet-name>php</servlet-name>
+			<url-pattern>/*.phtml</url-pattern>
+		</servlet-mapping>
+
+		<servlet-mapping>
+			<servlet-name>ssi</servlet-name>
+			<url-pattern>/*.shtml</url-pattern>
+		</servlet-mapping>
+		<welcome-file-list>
+			<welcome-file>index.html</welcome-file>
+			<welcome-file>default.jsp</welcome-file>
+		</welcome-file-list>
+	</web-app>
+</orion-web-app>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/jms.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/jms.xml
--- /usr/ports/java/orion/work/orion/config/jms.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/jms.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!DOCTYPE jms-server PUBLIC "Orion JMS server" "http://www.orionserver.com/dtds/jms-server.dtd">
+
+<jms-server port="9127">
+	<!--	Queue bindings, these queues will be bound to their respective JNDI path for
+		later retrieval -->
+	<queue name="Demo Queue" location="jms/demoQueue">
+		<description>A dummy queue</description>
+	</queue>
+
+	<!--	Topic bindings, these topic will be bound to their respective JNDI path for
+		later retrieval -->
+	<topic name="Demo Topic" location="jms/demoTopic">
+		<description>A dummy topic</description>
+	</topic>
+
+	<!-- path to the log-file where JMS-events/errors are stored -->
+	<log>
+		<file path="../log/jms.log" />
+	</log>
+</jms-server>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/mime.types /home/ernst/freebsd-ports/java/orion/work/orion/config/mime.types
--- /usr/ports/java/orion/work/orion/config/mime.types	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/mime.types	Wed Dec 20 12:42:46 2000
@@ -0,0 +1,109 @@
+# Registered mime-types
+
+application/activemessage
+application/andrew-inset
+application/applefile
+application/atomicmail
+application/dca-rft
+application/dec-dx
+application/mac-binhex40	hqx
+application/mac-compactpro	cpt
+application/macwriteii
+application/msword		doc
+application/news-message-id
+application/news-transmission
+application/octet-stream	bin dms lha lzh exe class
+application/jsp			jsp
+application/oda			oda
+application/pdf			pdf
+application/postscript		ai eps ps
+application/powerpoint		ppt
+application/remote-printing
+application/rtf			rtf
+application/slate
+application/wita
+application/wordperfect5.1
+application/x-bcpio		bcpio
+application/x-cdlink		vcd
+application/x-compress		Z
+application/x-cpio		cpio
+application/x-csh			csh
+application/x-director		dcr dir dxr
+application/x-dvi			dvi
+application/x-gtar		gtar
+application/x-gzip		gz
+application/x-hdf			hdf
+application/x-httpd-cgi		cgi
+application/x-java-jnlp-file	jnlp
+application/x-koan		skp skd skt skm
+application/x-latex		latex
+application/x-mif			mif
+application/x-netcdf		nc cdf
+application/x-sh			sh
+application/x-shar		shar
+application/x-stuffit		sit
+application/x-sv4cpio		sv4cpio
+application/x-sv4crc		sv4crc
+application/x-tar			tar
+application/x-tcl			tcl
+application/x-tex			tex
+application/x-texinfo		texinfo texi
+application/x-troff		t tr roff
+application/x-troff-man		man
+application/x-troff-me		me
+application/x-troff-ms		ms
+application/x-ustar		ustar
+application/x-wais-source	src
+text/xml  		       	xml ent cat sty
+text/dtd				dtd
+text/xsl				xsl
+application/jsp			jsp
+application/zip			zip
+audio/basic				au snd
+audio/mpeg				mpga mp2
+audio/x-aiff			aif aiff aifc
+audio/x-pn-realaudio		ram
+audio/x-pn-realaudio-plugin	rpm
+audio/x-realaudio			ra
+audio/x-wav				wav
+chemical/x-pdb			pdb xyz
+image/gif				gif
+image/ief				ief
+image/jpeg				jpeg jpg jpe
+image/png				png
+image/tiff				tiff tif
+image/x-cmu-raster		ras
+image/x-portable-anymap		pnm
+image/x-portable-bitmap		pbm
+image/x-portable-graymap	pgm
+image/x-portable-pixmap		ppm
+image/x-rgb				rgb
+image/x-xbitmap			xbm
+image/x-xpixmap			xpm
+image/x-xwindowdump		xwd
+message/external-body
+message/news
+message/partial
+message/rfc822
+multipart/alternative
+multipart/appledouble
+multipart/digest
+multipart/mixed
+multipart/parallel
+text/html				html htm
+text/plain				txt
+text/richtext			rtx
+text/tab-separated-values	tsv
+text/x-setext			etx
+text/x-sgml				sgml sgm
+video/mpeg				mpeg mpg mpe
+video/quicktime			qt mov
+video/x-msvideo			avi
+video/x-sgi-movie			movie
+x-conference/x-cooltalk		ice
+x-world/x-vrml			wrl vrml
+text/vnd.wap.wml                wml
+application/vnd.wap.wmlc        wmlc
+text/vnd.wap.wmlscript          wmls
+application/vnd.wap.wmlscriptc  wmlsc
+image/vnd.wap.wbmp              wbmp
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/principals.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/principals.xml
--- /usr/ports/java/orion/work/orion/config/principals.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/principals.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+<!DOCTYPE principals PUBLIC "//Evermind - Orion Principals//" "http://www.orionserver.com/dtds/principals.dtd">
+
+<principals>
+	<groups>
+		<group name="administrators">
+			<description>administrators</description>
+			<permission name="administration" />
+			<permission name="com.evermind.server.AdministrationPermission" />
+		</group>
+		<group name="guests">
+			<description>guests</description>
+		</group>
+		<group name="users">
+			<description>users</description>
+			<permission name="rmi:login" />
+			<permission name="com.evermind.server.rmi.RMIPermission" />
+		</group>
+	</groups>
+	<users>
+		<user username="admin" password="123" deactivated="true">
+			<description>The default administrator</description>
+			<group-membership group="administrators" />
+			<group-membership group="guests" />
+			<group-membership group="users" />
+		</user>
+		<user username="user" password="456" deactivated="true">
+			<description>The default user</description>
+			<group-membership group="guests" />
+			<group-membership group="users" />
+		</user>
+		<user username="anonymous" password="">
+			<description>The default guest/anonyomous user</description>
+			<group-membership group="guests" />
+		</user>
+	</users>
+</principals>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/rmi.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/rmi.xml
--- /usr/ports/java/orion/work/orion/config/rmi.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/rmi.xml	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!DOCTYPE rmi-server PUBLIC "Orion RMI-server" "http://www.orionserver.com/dtds/rmi-server.dtd">
+
+<rmi-server>	
+	<!-- A remote server connection example -->
+	<!-- <server host="the.remote.server.com" username="adminUser" password="123abc" /> -->
+
+	<!-- path to the log-file where RMI-events/errors are stored -->
+	<log>
+		<file path="../log/rmi.log" />
+	</log>
+</rmi-server>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/config/server.xml /home/ernst/freebsd-ports/java/orion/work/orion/config/server.xml
--- /usr/ports/java/orion/work/orion/config/server.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/config/server.xml	Mon May 15 01:00:00 2000
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!DOCTYPE application-server PUBLIC "Orion Application Server Config" "http://www.orionserver.com/dtds/application-server.dtd">
+
+<application-server
+	application-directory="../applications"
+	deployment-directory="../application-deployments"
+>
+	<rmi-config path="./rmi.xml" />
+	<!-- JMS-server config link, uncomment to activate the JMS service -->
+	<!-- <jms-config path="./jms.xml" /> -->
+	<principals path="./principals.xml" />
+	<log>
+		<file path="../log/server.log" />
+	</log>
+	
+	<global-application name="default" path="application.xml" />
+
+	<global-web-app-config path="global-web-application.xml" />
+	<web-site path="./default-web-site.xml" />
+
+	<!-- Compiler, activate this to specify an alternative compiler such
+		as jikes for EJB/JSP compiling. -->
+	<!-- <compiler executable="jikes" classpath="/myjdkdir/jre/lib/rt.jar" /> -->
+</application-server>
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/BBoardServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/BBoardServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/BBoardServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/BBoardServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/BBoardServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/BBoardServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,98 @@
+/*
+ * @(#)BBoardServlet.java	1.16 97/05/22
+ * 
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+/*
+ * Bulletin board servlet
+ * @author  Rachel Gollub
+ */
+public class BBoardServlet extends HttpServlet {
+
+    /*
+     * This gets the information from the html form, reads the file,
+     * and writes to it.
+     */
+    public void service(HttpServletRequest req, HttpServletResponse res)
+	throws IOException
+    {
+	ServletOutputStream out = res.getOutputStream();
+	ServletContext servletContext = getServletContext();
+	String bBoardName = servletContext.getRealPath("board.html");
+	RandomAccessFile fil = new RandomAccessFile(bBoardName, "rw");
+	String entry = req.getParameter("entry");
+	String noentry = req.getParameter("noentry");
+	String entries[] = new String[50];
+	int i;
+	entries[0] = null;
+
+        res.setContentType("text/html");
+
+	for (i=1; i<50; i++)
+	    if (fil.getFilePointer() < fil.length())
+		entries[i] = fil.readLine();
+	    else
+		entries[i] = null;
+
+	/* This bit, including the horrid concat line, writes to the file,
+	 * replacing all \n characters with <BR>.
+	 */
+
+	if (entry != null && noentry == null) {
+	    fil.seek(0);
+	    while ((i=entry.indexOf("\n")) != -1)
+		entry=entry.substring(0,i-1).concat("<BR>").concat(entry.substring(i+1,entry.length()));
+	    entries[0]=entry;
+	    fil.writeBytes(entry + "\n");
+	    for (i=1; i<50; i++)
+		if (entries[i] != null)
+		    fil.writeBytes(entries[i] + "\n");
+	}
+	fil.close();
+	BuildBoard(out, entries);
+    }
+
+    /*
+     * This parses the information into bulletin board entries.
+     */
+    public void BuildBoard(ServletOutputStream out, String entries[]) throws IOException {
+	int i;
+
+	out.print("<HR>");
+	for (i=0; i<50; i++)
+	    if (entries[i] != null) {
+		out.print(entries[i]);
+		out.print("<HR>");
+	    }
+        out.flush();
+    }
+
+    public String getServletInfo() {
+        return "This servlet maintains a bulletin board on a server.";
+    }
+
+}
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ConfigServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ConfigServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ConfigServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ConfigServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ConfigServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ConfigServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,18 @@
+import javax.servlet.*;
+import javax.servlet.http.*;
+import java.io.*;
+public class ConfigServlet extends HttpServlet
+{
+	private String parameter;
+
+	public void init(ServletConfig config) throws ServletException
+	{
+		super.init(config);
+		parameter = config.getInitParameter("parameter");		
+	}
+
+	public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException
+	{
+		response.getOutputStream().println("Config 'parameter': " + parameter);
+	}
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/CookieExample.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/CookieExample.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/CookieExample.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/CookieExample.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/CookieExample.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/CookieExample.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,97 @@
+/* $Id: CookieExample.java,v 1.3 1999/04/15 04:21:32 duncan Exp $
+ *
+ */
+
+import java.io.*;
+import java.text.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+/**
+ * Example servlet showing request headers
+ *
+ * @author James Duncan Davidson <duncan@eng.sun.com>
+ */
+
+public class CookieExample extends HttpServlet {
+
+    ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
+    
+    public void doGet(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        response.setContentType("text/html");
+
+        PrintWriter out = response.getWriter();
+        out.println("<html>");
+        out.println("<body bgcolor=\"white\">");
+        out.println("<head>");
+
+        String title = rb.getString("cookies.title");
+        out.println("<title>" + title + "</title>");
+        out.println("</head>");
+        out.println("<body>");
+
+	// relative links
+	
+        out.println("<a href=\"../servlets/cookies.html\">");
+        out.println("<img src=\"../images/code.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"view code\"></a>");
+        out.println("<a href=\"../servlets/index.html\">");
+        out.println("<img src=\"../images/return.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"return\"></a>");
+
+        out.println("<h3>" + title + "</h3>");
+
+        Cookie[] cookies = request.getCookies();
+        if (cookies != null && cookies.length > 0) {
+            out.println(rb.getString("cookies.cookies") + "<br>");
+            for (int i = 0; i < cookies.length; i++) {
+                Cookie cookie = cookies[i];
+                out.print("Cookie Name: " + cookie.getName() + "<br>");
+                out.println("  Cookie Value: " + cookie.getValue() +
+			    "<br><br>");
+            }
+        } else {
+            out.println(rb.getString("cookies.no-cookies"));
+        }
+
+        String cookieName = request.getParameter("cookiename");
+        String cookieValue = request.getParameter("cookievalue");
+        if (cookieName != null && cookieValue != null) {
+            Cookie cookie = new Cookie(cookieName, cookieValue);
+            response.addCookie(cookie);
+            out.println("<P>");
+            out.println(rb.getString("cookies.set") + "<br>");
+            out.print(rb.getString("cookies.name") + "  " + cookieName +
+		      "<br>");
+            out.print(rb.getString("cookies.value") + "  " + cookieValue);
+        }
+        
+        out.println("<P>");
+        out.println(rb.getString("cookies.make-cookie") + "<br>");
+        out.print("<form action=\"");
+        out.println("CookieExample\" method=POST>");
+        out.print(rb.getString("cookies.name") + "  ");
+        out.println("<input type=text length=20 name=cookiename><br>");
+        out.print(rb.getString("cookies.value") + "  ");
+        out.println("<input type=text length=20 name=cookievalue><br>");
+        out.println("<input type=submit></form>");
+            
+            
+        out.println("</body>");
+        out.println("</html>");
+    }
+
+    public void doPost(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        doGet(request, response);
+    }
+
+}
+
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/Counter.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/Counter.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/Counter.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/Counter.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/Counter.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/Counter.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,299 @@
+/*
+ * @(#)Counter.java	1.43 97/07/17
+ * 
+ * Copyright (c) 1996-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+import java.io.*;
+import java.util.*;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+//import sun.servlet.http.Cookie;
+
+
+/**
+ * Simple servlet to demonstrate the "Cookie" API.  It uses a cookie to
+ * serve as a counter that increments each time this web page is visited
+ * during a user session.  That counter, along with some other data, is
+ * shown on an HTML page dynamically generated by this servlet.
+ *
+ * <P> Of course, other kinds of data can be stored using cookies.  You
+ * should look at the privacy and security guidelines in RFC 2109 before
+ * you start to use cookies, and be clear to your customers what value
+ * your cookies are providing to them.
+ *
+ * @version 1.43
+ * @author  David Brownell
+ * @author  Pavani Diwanji
+ */
+public
+class Counter extends HttpServlet {
+
+    //
+    // Name of the main cookie saved by this servlet.
+    //
+    private static final String	counterName = "counter";
+
+    //
+    // Default initial value of session cookies maintained by counter
+    // servlets.  May be overriden by an instance's init parameter.
+    //
+    static final int		defaultInitialValue = 10;
+
+    //
+    // Actual initial value used by this servlet instance.  There could
+    // be several such instances, for different parts of the web site's
+    // URL namespace, with different initial values.
+    //
+    // User agents maintain "live" counter values in cookies which are
+    // presented with requests, and the servlet increments such values
+    // in its responses.
+    //
+    private int			initialValue;
+
+
+
+    /**
+     * Initializes the servlet.  Session counters normally start at ten,
+     * but that may be overridden by providing an initialization parameter
+     * named "initial" with a value which is a decimal number.  This lets
+     * different "counter" servlets have different initial values, as well
+     * as letting different user sessions have different actual values.
+     */
+    public void init(ServletConfig conf) throws ServletException {
+	String		s;
+
+	super.init(conf);
+
+	if ((s = getInitParameter ("initial")) == null)
+	    initialValue = defaultInitialValue;
+	else {
+	    try {
+		initialValue = Integer.parseInt (s);
+	    } catch (NumberFormatException e) {
+		initialValue = defaultInitialValue;
+		log ("** Non-numeric format for 'initial' parameter:  " + s);
+	    }
+	}
+    }
+
+
+    /**
+     * Handles a request.  It does this by updating a per-request "counter"
+     * cookie from the request, and storing it via the response.  Output of 
+     * the servlet is a simple web page showing the original value of the
+     * session's counter, and some other data.
+     */
+    protected void doGet (HttpServletRequest req, HttpServletResponse res)
+	throws ServletException, IOException
+    {
+	int			counter = initialValue;
+	Cookie			cookies [], c = null;
+	boolean			hadCookies = false, hadCounter = false;
+
+	//
+	// We do all the cookie work before we start writing output,
+	// since once we start writing data the headers (with or
+	// without cookies) can get flushed at any time.
+	//
+	if ((cookies = req.getCookies ()) != null) {
+	    hadCookies = true;
+
+	    for (int i = 0; i < cookies.length; i++) {
+		if (cookies [i].getName ().equals (counterName)) {
+		    try {
+
+			// clone this cookie to keep using the browser's
+			// version of the cookie protocol
+
+			c = (Cookie) cookies [i].clone ();
+			counter = Integer.parseInt (c.getValue ());
+			c.setValue (Integer.toString (counter + 1));
+			hadCounter = true;
+			
+		    } catch (NumberFormatException e) {
+			// should never happen ...
+			c = null;
+		    }
+		    break;
+		}
+	    }
+	}
+
+	//
+	// Always save a "counter" cookie, taking care to set the
+	// attributes that weren't settable by cloning the original.
+	//
+	if (c == null)
+	    c = new Cookie (counterName, Integer.toString (counter));
+	c.setComment ("Supports Cookie Counter Demo Servlet");
+	// c.setMaxAge (2 * 24 * 60 * 60);		// 2 days
+	// c.setPath ("/");
+	res.addCookie (c);
+
+	if (false) {
+	    // add a new cookie, discarded on browser exit, to see
+	    // how multiple cookies are dealt with
+	    c = new Cookie (
+		"gensym-" + (System.currentTimeMillis () & 0x0ff),
+		new Date().toString ());
+	    c.setComment ("Show multi-cookie support");
+	    res.addCookie(c) ;
+	}
+
+
+
+	//
+	// TRY THIS:
+	//
+	// (A) Design a simple form for letting people create new cookies.
+	// Generate that form in the HTML below.  Use the POST action, and
+	// create the new cookie before generating output below.
+	//
+	// (B) Do something similar for letting users delete one or more
+	// of the cookies reported by the user agent ... including the
+	// counter itself, as one way to reinitialize a session!
+	//
+	// (C) Offer form controls over cookies' paths and maximum ages.
+	//
+	// (D) Experiment to see how different web browsers handle version
+	// zero cookies.  Which features are handled inconsistently?
+	//
+	// (E) See how this page reacts to HTTP's "HEAD" methods.
+	//
+	// (F) Normally, pages used to set cookies will not be cached.
+	// This will probably be true of most dynamically generated web
+	// content.  Are there other pages in your website which should
+	// not be widely cached by proxies and browsers?  Why?
+	//
+
+
+
+	//
+	// Generate the response message ... an HTML page that shows all
+	// cookies, their values, and any attributes, plus some random
+	// data about the session that may be interesting.  We buffer the
+	// whole response so that HTTP keepalive can be used.
+	//
+	ByteArrayOutputStream	bytes;
+	PrintStream		out;
+
+	bytes = new ByteArrayOutputStream (4096);
+	out = new PrintStream (bytes);
+
+	out.println ("<HTML><HEAD>");
+	out.println ("<TITLE>Cookie Counter</TITLE>");
+	out.println ("</HEAD><BODY BGCOLOR=#eeeeff>");
+	out.println ("<CENTER><H1>Cookie Counter</H1></CENTER>");
+
+	if (hadCounter) {
+	    out.println ("<CENTER>");
+	    out.println ("<P> <em><b>Your session's counter was ");
+	    out.println (counter);
+	    out.println (" before you visited this page.</b></em>");
+	    out.println ("<P> The counter has been incremented.");
+	    out.println ("</CENTER>");
+	} else {
+	    out.println ("<P> You presented no session cookie.  A new");
+	    out.println ("cookie was created, with an initial counter");
+	    out.println ("holding the value " + counter + ".");
+	}
+
+
+	if (hadCookies) {
+	    out.println ("<P> You presented these cookies: <OL>");
+	    for (int i = 0; i < cookies.length; i++) {
+		String	temp;
+
+		out.println ("<LI> Name = ");
+		out.println (cookies [i].getName ());
+		out.println (", Value = ");
+		out.println (cookies [i].getValue ());
+
+		//
+		// IETF standard cookies expose these attributes, but
+		// the original (and still most common) style cookies
+		// hide this data on the client side.
+		//
+		if ((temp = cookies [i].getDomain ()) != null) {
+		    out.println (", Domain = ");
+		    out.println (cookies [i].getDomain ());
+		}
+		if ((temp = cookies [i].getPath ()) != null) {
+		    out.println (", Path = ");
+		    out.println (cookies [i].getPath ());
+		}
+	    }
+	    out.println ("</OL>");
+	}
+
+
+	out.println ("<P> Watch the value of the counter change as you");
+	out.println ("reload this page!  The counter is updated by the");
+	out.println ("servlet which dynamically generates this web page.");
+
+	out.println ("<P> Try comparing how different browsers work with");
+	out.println ("cookies set using these two URLs on this server:  ");
+	out.println ("<a href=/counter.html>/counter.html</a>, and");
+	out.println ("<a href=/servlet/Counter>/servlet/Counter</a>.");
+	out.println ("These URLs refer to different 'counter' servlets,");
+	out.println ("which initialize their counts to different values.");
+
+
+	String temp = req.getHeader ("User-Agent");
+	out.println ("<P> Your browser is <em>"
+	    + ((temp != null) ? temp : "not known!") + "</em>.");
+
+	// XXX
+	// This time printing crashes IIS!!!!!
+
+	/*
+	out.println ("<P>The cookie server's time is now <em>"
+	    + new Date () + ".</em>");
+	    */
+
+	out.println ("</BODY></HTML>");
+	out.flush ();
+
+
+	//
+	// Now that we've buffered up the entire message:  write all our
+	// header fields, then the body.  We buffered it up so we can set
+	// content length ... ensuring we can use connection keep-alive,
+	// for the best networking performance.
+	//
+	// With HTTP/1.1 clients guaranteed, we could set the headers
+	// and just write to the output stream (using chunked encoding)
+	// with no worries about preventing keep-alive.
+	//
+
+	res.setContentType("text/html");	// ;charset=us-ascii
+	res.setContentLength (bytes.size ());
+	// ... Last-Modified:  right now!
+
+	bytes.writeTo (res.getOutputStream ());
+    }
+
+    /**
+     * Describes what this servlet does.
+     */
+    public String getServletInfo() {
+	return "Demonstrates the 'Cookie' API for user sessions";
+    }
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/DateServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/DateServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/DateServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/DateServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/DateServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/DateServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,52 @@
+/*
+ * @(#)DateServlet.java	1.12 97/08/29
+ * 
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+import java.io.*;
+import java.util.Date;
+import java.util.Hashtable;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+/**
+ * Date Servlet
+ *
+ * This is a simple servlet to demonstrate server-side include
+ * It returns a string representation of the current time.
+ * @author Scott Atwood
+ * @version 1.12, 08/29/97
+ */
+public class DateServlet extends HttpServlet {
+    public void service(HttpServletRequest req, HttpServletResponse res)
+	throws ServletException, IOException
+    {
+        Date today = new Date();
+        res.setContentType("text/plain");
+
+        ServletOutputStream out = res.getOutputStream();
+        out.println(today.toString());
+    }
+
+    public String getServletInfo() {
+        return "Returns a string representation of the current time";
+    }
+
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/FingerServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/FingerServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/FingerServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/FingerServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/FingerServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/FingerServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,135 @@
+/*
+ * @(#)FingerServlet.java	1.12 97/05/22
+ * 
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+/**
+ * Finger servlet. This servlet uses the finger protocol to query
+ * information about users on specified hosts. The query string
+ * parameters <tt>user</tt>, <tt>hosts</tt>, and <tt>verbose</tt>
+ * can be used to specify the user and hosts to query. The parameter
+ * <tt>user</tt> is the user name, <tt>hosts</tt> is a comma-separated
+ * list of host names to query, and <tt>verbose</tt> if specified will
+ * cause verbose output to be generated. For example,
+ * <pre>
+ *     http:/goa/finger.html?user=dac&hosts=eno,doppio&verbose=yes
+ * </pre>
+ * This URL will request full information about user 'dac' on both
+ * hosts 'eno' and 'doppio'.
+ *
+ * @version 	1.12, 05/22/97
+ * @author 	David Connelly
+ */
+public
+class FingerServlet extends HttpServlet {
+    /*
+     * Port number for finger daemon.
+     */
+    static final int FINGER_PORT = 79;
+    private static final String timeoutMessage = "Timeout reading from server";
+
+    /**
+     * Handles a single finger request from the client.
+     */
+    public void doGet (HttpServletRequest req, HttpServletResponse res)
+	throws ServletException, IOException
+    {
+	String user = req.getParameter("user");
+	String hosts = req.getParameter("hosts");
+	String verbose = req.getParameter("verbose");
+
+	res.setContentType("text/html");
+
+	ServletOutputStream out = res.getOutputStream();
+	out.println("<html>");
+	out.println("<head><title>Finger Servlet</title></head>");
+	out.println("<body>");
+	out.println("<h2>Finger results:</h2>");
+	out.println("<pre>");
+	if (hosts == null) {
+	    finger(out, user, null, "yes".equalsIgnoreCase(verbose)) ;
+	} else {
+	    StringTokenizer st = new StringTokenizer(hosts, ",");
+	    while (st.hasMoreTokens()) {
+		String host = st.nextToken();
+		out.println("[" + host + "]");
+		try {
+		    finger(out, user, host, "yes".equalsIgnoreCase(verbose));
+		} catch (IOException e) {
+		    out.println(e.toString());
+		}
+		out.println();
+	    }
+	}
+	out.println("</pre>");
+	out.println("</body></html>");
+    }
+
+    /*
+     * Sends finger output for a user and host to the specified output
+     * stream.
+     */
+    private void finger(ServletOutputStream out, String user, String host,
+		boolean verbose)
+	throws IOException
+    {
+	// open connection to finger daemon
+	Socket s;
+	if (host == null) {
+	    s = new Socket(InetAddress.getLocalHost(), FINGER_PORT);
+	} else {
+	    s = new Socket(host, FINGER_PORT);
+	}
+	// send finger command
+	PrintStream socketOut = new PrintStream(s.getOutputStream());
+	if (verbose) {
+	    socketOut.print("/W ");
+	}
+	if (user != null) {
+	    socketOut.print(user);
+	}
+	socketOut.print("\r\n");
+	socketOut.flush();
+	// copy results to output stream
+	// s.setSoTimeout(30000);
+	InputStream in = s.getInputStream();
+	byte[] buf = new byte[2048];
+	int len;
+	try {
+	    while ((len = in.read(buf, 0, buf.length)) != -1) {
+		out.write(buf, 0, len);
+	    }
+	}
+	catch (InterruptedIOException ioe) {
+	    timeoutMessage.getBytes(0, timeoutMessage.length(), buf, 0);
+	    out.write(buf, 0, timeoutMessage.length());
+	}
+	finally {
+	    socketOut.close();
+	    s.close();
+	}
+    }
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldExample.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldExample.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldExample.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldExample.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldExample.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldExample.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,56 @@
+/* $Id: HelloWorldExample.java,v 1.2 1999/03/17 02:21:36 duncan Exp $
+ *
+ */
+
+import java.io.*;
+import java.text.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+/**
+ * The simplest possible servlet.
+ *
+ * @author James Duncan Davidson
+ */
+
+public class HelloWorldExample extends HttpServlet {
+
+    ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
+
+    public void doGet(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        response.setContentType("text/html");
+        PrintWriter out = response.getWriter();
+
+        out.println("<html>");
+        out.println("<body bgcolor=\"white\">");
+        out.println("<head>");
+
+	String title = rb.getString("helloworld.title");
+
+	out.println("<title>" + title + "</title>");
+        out.println("</head>");
+        out.println("<body>");
+
+	// note that all links are created to be relative. this
+	// ensures that we can move the web application that this
+	// servlet belongs to to a different place in the url
+	// tree and not have any harmful side effects.
+
+	out.println("<a href=\"../servlets/helloworld.html\">");
+        out.println("<img src=\"../images/code.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"view code\"></a>");
+        out.println("<a href=\"../servlets/index.html\">");
+        out.println("<img src=\"../images/return.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"return\"></a>");
+        out.println("<h1>" + title + "</h1>");
+        out.println("</body>");
+        out.println("</html>");
+    }
+}
+
+
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/HelloWorldServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,56 @@
+/*
+ * @(#)HelloWorldServlet.java	1.9 97/05/22
+ * 
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+import java.io.*;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+/**
+ * Hello World. This servlet simply says hi. 
+ *
+ * This is useful for testing our servlet admin tool, since
+ * this servlet isn't started up by default when Jeeves starts up.
+ * Load it by going to http://<server>/admin/servlet.html
+ * and giving it the name "hello" and the class "HelloWorldServlet".
+ * Then, invoke by using the URL http://<server>/servlet/hello
+ */
+
+public
+class HelloWorldServlet extends HttpServlet {
+
+    public void doGet (HttpServletRequest req, HttpServletResponse res)
+	throws ServletException, IOException
+    {
+	res.setContentType("text/html");
+
+	ServletOutputStream out = res.getOutputStream();
+	out.println("<html>");
+	out.println("<head><title>Hello World</title></head>");
+	out.println("<body>");
+	out.println("<h1>Hello World</h1>");
+	out.println("</body></html>");
+    }
+
+    public String getServletInfo() {
+	return "Create a page that says <i>Hello World</i> and send it back";
+    }
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/LinkCheckerServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/LinkCheckerServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/LinkCheckerServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/LinkCheckerServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/LinkCheckerServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/LinkCheckerServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,578 @@
+/*
+ * @(#)LinkCheckerServlet.java	1.22 97/10/21
+ * 
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+
+import java.lang.*;
+import java.net.*;
+import java.util.*;
+import java.io.*;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+public class LinkCheckerServlet extends HttpServlet {
+
+    /**
+     * Administrator's email address
+     */
+    protected static String webmaster;
+
+    /**
+     * Robot Name
+     */
+    protected static final String robot = "JeevesLinkChecker/1.0";
+	
+    /**
+     * Creates a new LinkCheckerServlet
+     */
+    public LinkCheckerServlet() {
+    }
+
+    /**
+     * Services a single request from a client.
+     * @param req the HTTP request
+     * @param res the HTTP response
+     * @exception IOException If an I/O error has occured
+     */
+
+  public void doGet (HttpServletRequest req, HttpServletResponse res)
+    throws ServletException, IOException
+  {
+    String firstpage = req.getParameter("base");
+    String maxDepthStr = req.getParameter("max_depth");
+    String searchall = req.getParameter("search");
+    int maxDepth;
+    String testHost;
+    Hashtable noticedLinks = new Hashtable(100);
+    Vector unprocessedLinks = new Vector(100);
+    URLInfo base = new URLInfo();
+    ServletOutputStream out = res.getOutputStream();
+
+    res.setContentType("text/html");
+   
+    if (searchall.equals("0"))
+      try {
+        maxDepth = Integer.parseInt(maxDepthStr);
+      } catch (Exception e) {
+        maxDepth = 50;
+      }
+    else
+        maxDepth = 50;
+    
+    if ((maxDepth > 50) || (maxDepth < 0))
+      maxDepth = 50;
+      
+    try {
+      base.url = new URL(firstpage);
+
+      // Do some sanity checking on the URL.
+      if (!base.url.getProtocol().equals("http")) {
+	  throw new MalformedURLException("protocol must be \"http\"");
+      } else if (base.url.getHost().length() == 0) {
+	  throw new MalformedURLException("no host name specified");
+      }
+
+    } catch (MalformedURLException e) {
+	out.println("Cannot process the URL: " + e.getMessage() + 
+		    ". Make sure the URL starts with \"http://host_name\".");
+	return;
+    }
+
+    base.referers = null;
+    base.depth = 0;
+    noticedLinks.put(base.url, base);
+    unprocessedLinks.addElement(base);
+
+    testHost = base.url.getHost();
+
+    webmaster = "webmaster@" + testHost;
+
+    while(!unprocessedLinks.isEmpty()) {
+      URLInfo nextLink = (URLInfo) unprocessedLinks.firstElement();
+      unprocessedLinks.removeElementAt(0);
+      if ( nextLink.url.getHost().equals(testHost) )
+	try {
+	  getHead(nextLink);
+	} catch (Exception e) {
+	  nextLink.statusCode=0;
+	  nextLink.reasonPhrase="Could not open connection.";
+	  nextLink.contentType = "none";
+	}
+      else {
+	nextLink.statusCode=1;
+	nextLink.reasonPhrase="Not on local host.";
+	nextLink.contentType = "unknown";
+      }
+      try {
+	if (  nextLink.depth <= maxDepth - 1 && 
+	      nextLink.url.getHost().equals(testHost) &&
+	      nextLink.contentType.equals("text/html") &&
+	      (nextLink.url.toString().indexOf("#") == -1)) {
+	  parseContent(nextLink, noticedLinks, unprocessedLinks);
+	}
+      } catch (Exception e) {
+      }
+    }
+    sendResponse(out, noticedLinks);
+    out.flush();
+  }
+
+  /**
+   * Returns the header information for a given URL.
+   * @param info The information for the URL.
+   */
+  protected void getHead(URLInfo info)
+    throws IOException
+  {
+    Socket socket=null;
+    PrintStream out;
+    //DataInputStream in;
+	BufferedReader in;
+    String line;
+    int i, j;
+    Hashtable headers = new Hashtable();
+
+    if (info.url.getPort() == -1) 
+      socket = new Socket(info.url.getHost(), 80);
+    else
+      socket = new Socket(info.url.getHost(), info.url.getPort());
+    out = new PrintStream(socket.getOutputStream());
+    //in = new DataInputStream(socket.getInputStream());
+	in = new BufferedReader( new InputStreamReader(socket.getInputStream()) );
+    
+    out.println("HEAD " + info.url.getFile() + " HTTP/1.0");
+    out.println("From: " + webmaster);
+    out.println("User-Agent: " + robot);
+    if( info.referers != null && !info.referers.isEmpty()) {
+      out.println("Referer: " +
+		  ((URL)info.referers.firstElement()).toString());
+    }
+    out.println();
+    
+    line = in.readLine();
+    i = line.indexOf(' ');
+    j = line.indexOf(' ', i+1);
+    try {
+      info.statusCode = Integer.parseInt(line.substring(i+1, j));
+    } catch (NumberFormatException e) {
+      info.statusCode = 0;
+    }
+    info.reasonPhrase = line.substring(j+1);
+    
+    while( (line = in.readLine()) != null ) {
+      i = line.indexOf(' ');
+      if (i > 0)
+	headers.put(line.substring(0, i-1).toLowerCase(), 
+		    line.substring(i+1));
+    }
+    
+    info.contentType = (String) headers.get("content-type");
+    headers.clear();
+    out.close();
+    in.close();
+    if (socket != null)
+      socket.close();
+  }
+
+  /**
+   * Parses the content of a URL.
+   * @param currentPage The URL information on the page to be parsed.
+   * @param noticedLinks The hashtable containing all links found.
+   * @param unprocessedLinks The vector containing links that haven't
+   * been processed yet.
+   */
+  protected void parseContent(URLInfo currentPage, Hashtable noticedLinks, 
+			      Vector unprocessedLinks)
+    throws IOException    
+  {
+    String thisline;
+    int thisindex=0;
+    int tmpindex;
+    //DataInputStream in = null;
+    BufferedReader in = null;
+    
+    try {
+      in = new BufferedReader( new InputStreamReader(currentPage.url.openStream()) );
+    } catch (Exception e) {
+      return;
+    }
+    
+    while ((thisline = in.readLine()) != null) {
+	while (((tmpindex = thisline.toLowerCase().indexOf("href=", 
+							   thisindex+1)) != -1) && (thisindex != -1)) {
+	  checkHref(currentPage, noticedLinks, unprocessedLinks, 
+		    thisline, tmpindex);
+	  thisindex=tmpindex;
+	}
+	thisindex=0;
+	while (((tmpindex = thisline.toLowerCase().indexOf("img src=", thisindex+1)) != -1) && (thisindex != -1)) {
+	  checkSrc(currentPage, noticedLinks, unprocessedLinks, thisline,
+		   tmpindex);
+	  thisindex=tmpindex;
+	}
+	thisindex=0;
+	while (((tmpindex = thisline.toLowerCase().indexOf("background=", thisindex+1)) != -1) && (thisindex != -1)) {
+	  checkBg(currentPage, noticedLinks, unprocessedLinks, thisline,
+		  tmpindex);
+	  thisindex=tmpindex;
+	}
+	thisindex=0;
+    }
+    if (in != null)
+      in.close();
+  }
+
+  /**
+   * Looks for occurences of href=, and 
+   * adds the URL's referenced to the noticedLinks hashtable and the
+   * unprocessedLinks vector.
+   * @param currentPage The URL information on the page to be parsed.
+   * @param noticedLinks The hashtable containing all links found.
+   * @param unprocessedLinks The vector containing links that haven't
+   * been processed yet.
+   * @param thisline The current line.
+   * @param tmpindex The index of the occurence
+   */
+  protected void checkHref(URLInfo currentPage, Hashtable noticedLinks, 
+			   Vector unprocessedLinks, String thisline,
+			   int tmpindex)
+  {
+    int i;
+    String thisurl, tmpurl;
+    String lasturl = currentPage.url.toString();
+
+
+    i = thisline.toLowerCase().indexOf("mailto:");
+    if ((i < tmpindex) || (i > tmpindex+10)) {
+      thisurl = thisline.substring(tmpindex+6,
+				   thisline.indexOf(34, tmpindex+6));
+      if ( thisurl.indexOf(currentPage.url.getHost()) == -1 &&
+	   thisurl.indexOf(":/") == -1 ) {
+	if ( thisurl.startsWith("/")) {
+	  tmpurl = lasturl.substring(0, lasturl.indexOf("/", 
+							lasturl.indexOf(currentPage.url.getHost())));
+	  thisurl = tmpurl.concat(thisurl);
+	}
+	else if ( thisurl.startsWith("#")) {
+	  thisurl = lasturl.concat(thisurl);
+	}
+	else {
+	  tmpurl = lasturl.substring(0, lasturl.lastIndexOf("/") + 1);
+	  thisurl = tmpurl.concat(thisurl);
+	}
+      }
+      try {
+	URL posurl = new URL(thisurl);
+	enterURL(posurl, currentPage, noticedLinks, unprocessedLinks);
+      } catch (Exception e) {}
+    }
+    thisurl=null; tmpurl=null; lasturl=null;
+  }
+  
+  /**
+   * Looks for occurences of img src=, and 
+   * adds the URL's referenced to the noticedLinks hashtable and the
+   * unprocessedLinks vector.
+   * @param currentPage The URL information on the page to be parsed.
+   * @param noticedLinks The hashtable containing all links found.
+   * @param unprocessedLinks The vector containing links that haven't
+   * been processed yet.
+   * @param thisline The current line.
+   * @param tmpindex The index of the occurence
+   */
+  protected void checkSrc(URLInfo currentPage, Hashtable noticedLinks, 
+			   Vector unprocessedLinks, String thisline,
+			   int tmpindex)
+  {
+    int i;
+    String thisurl, tmpurl;
+    String lasturl = currentPage.url.toString();
+
+    thisurl = thisline.substring(tmpindex+9,
+				 thisline.indexOf(34, tmpindex+9));
+    if ( thisurl.indexOf(currentPage.url.getHost()) == -1 &&
+	 thisurl.indexOf(":/") == -1 ) {
+      if ( thisurl.startsWith("/")) {
+	tmpurl = lasturl.substring(0, lasturl.indexOf("/", 
+						      lasturl.indexOf(currentPage.url.getHost())));
+	thisurl = tmpurl.concat(thisurl);
+      }
+      else if ( thisurl.startsWith("#")) {
+	thisurl = lasturl.concat(thisurl);
+      }
+      else {
+	tmpurl = lasturl.substring(0, lasturl.lastIndexOf("/") + 1);
+	thisurl = tmpurl.concat(thisurl);
+      }
+    }
+    try {
+      URL posurl = new URL(thisurl);
+      enterURL(posurl, currentPage, noticedLinks, unprocessedLinks);
+    } catch (Exception e) {}
+  thisurl=null; tmpurl=null; lasturl=null;
+  }
+
+  /**
+   * Looks for occurences of background=, and 
+   * adds the URL's referenced to the noticedLinks hashtable and the
+   * unprocessedLinks vector.
+   * @param currentPage The URL information on the page to be parsed.
+   * @param noticedLinks The hashtable containing all links found.
+   * @param unprocessedLinks The vector containing links that haven't
+   * been processed yet.
+   */
+  protected void checkBg(URLInfo currentPage, Hashtable noticedLinks, 
+			 Vector unprocessedLinks, String thisline,
+			 int tmpindex)
+  {
+    int i;
+    String thisurl, tmpurl;
+    String lasturl = currentPage.url.toString();
+    
+    thisurl = thisline.substring(tmpindex+12,
+				 thisline.indexOf(34, tmpindex+12));
+    if ( thisurl.indexOf(currentPage.url.getHost()) == -1 &&
+	 thisurl.indexOf(":/") == -1 ) {
+      if ( thisurl.startsWith("/")) {
+	tmpurl = lasturl.substring(0, lasturl.indexOf("/", 
+						      lasturl.indexOf(currentPage.url.getHost())));
+	thisurl = tmpurl.concat(thisurl);
+      }
+      else if ( thisurl.startsWith("#")) {
+	thisurl = lasturl.concat(thisurl);
+      }
+      else {
+	tmpurl = lasturl.substring(0, lasturl.lastIndexOf("/") + 1);
+	thisurl = tmpurl.concat(thisurl);
+      }
+    }
+    try {
+      URL posurl = new URL(thisurl);
+      enterURL(posurl, currentPage, noticedLinks, unprocessedLinks);
+    } catch (Exception e) {}
+    thisurl=null; tmpurl=null; lasturl=null;
+  }
+  
+  /**
+   * Checks if a URL is in the list of known URL's, and if it's not, adds
+   * it to the list.
+   * @param posurl The URL to be tested.
+   * @param currentPage The URL information on the URL that refers to posurl
+   * @param noticedLinks The hashtable containing all links found.
+   * @param unprocessedLinks The vector containing links that haven't
+   * been processed yet.
+   */
+  protected void enterURL(URL posurl, URLInfo currentPage, 
+			  Hashtable noticedLinks, 
+			  Vector unprocessedLinks) 
+    throws IOException 
+  {
+    URLInfo tmp;
+    
+    if (noticedLinks.containsKey(posurl)) {
+      tmp = (URLInfo) noticedLinks.get(posurl);
+      noticedLinks.remove(posurl);
+      tmp.referers = new Vector();
+      tmp.referers.addElement(currentPage.url);
+      noticedLinks.put(posurl, tmp);
+    }
+    else {
+      tmp = new URLInfo();
+      tmp.url = posurl;
+      tmp.referers = new Vector();
+      tmp.referers.addElement(currentPage.url);
+      tmp.depth = currentPage.depth + 1;
+      noticedLinks.put(tmp.url, tmp);
+      unprocessedLinks.addElement(tmp);
+    }
+  }
+
+  /**
+   * Outputs the link information by the return code of the header.
+   *
+   * @param out The stream to which to write the link information.
+   * @param noticedLinks The hashtable containing all links found.
+   */
+  protected void sendResponse(ServletOutputStream out,
+			      Hashtable noticedLinks)
+    throws IOException {
+
+      Vector notLocal = new Vector();
+      Vector successful = new Vector(100);
+      Vector redirectPermanent = new Vector(10);
+      Vector redirectTemporary = new Vector(10);
+      Vector badRequest = new Vector();
+      Vector unauthorized = new Vector(10);
+      Vector forbidden = new Vector(10);
+      Vector notFound = new Vector(50);
+      Vector internalError = new Vector(10);
+      Vector badGateway = new Vector();
+      Vector unavailable = new Vector(10);
+      Vector unknown = new Vector();
+      
+      URLInfo link;
+      int total = 0;
+      
+      Enumeration links = noticedLinks.elements();
+      
+      while(links.hasMoreElements()) {
+	link = (URLInfo) links.nextElement();
+	switch(link.statusCode) {
+	case 1:
+	  notLocal.addElement(link);
+	  total++;
+	  break;
+	case 200:
+	  successful.addElement(link);
+	  break;
+	case 301:
+	  redirectPermanent.addElement(link);
+	  total++;
+	  break;
+	case 302:
+	  redirectTemporary.addElement(link);
+	  total++;
+	  break;
+	case 400:
+	  badRequest.addElement(link);
+	  total++;
+	  break;
+	case 401:
+	  unauthorized.addElement(link);
+	  total++;
+	  break;
+	case 403:
+	  forbidden.addElement(link);
+	  total++;
+	  break;
+	case 404:
+	  notFound.addElement(link);
+	  total++;
+	  break;
+	case 500:
+	  internalError.addElement(link);
+	  total++;
+	  break;
+	case 502:
+	  badGateway.addElement(link);
+	  total++;
+	  break;
+	case 503:
+	  unavailable.addElement(link);
+	  total++;
+	  break;
+	default:
+	  unknown.addElement(link);
+	  total++;
+	  break;
+	}
+      }
+      
+      out.println("<html><head><title>JavaServer Link Checker Results" +
+		  "</title></head>");
+      out.println("<body bgcolor=\"#eeeeff\"><center>" +
+		  "<img src=\"/system/images/banner.gif\">");
+      out.println("<h1>Link Checker Results</h1></center>");
+      out.println("Total links checked: " + (successful.size()+total) +
+		  "<br>");
+      out.println("Successful links: " + successful.size() + "<br>");
+      out.println("Unsuccessful links: " + total + "<p>");
+      out.println("Not Found: " + notFound.size()+ "<br>");
+      printTextLinksAndReferers(notFound.elements(), out);
+      out.println("Forbidden: " + forbidden.size()+ "<br>");
+      printTextLinksAndReferers(forbidden.elements(), out);
+      out.println("Unauthorized: " + unauthorized.size()+ "<br>");
+      printTextLinksAndReferers(unauthorized.elements(), out);
+      out.println("Server Internal Error: " + internalError.size()+ "<br>");
+      printTextLinksAndReferers(internalError.elements(), out);
+      out.println("Bad Gateway: " + badGateway.size()+ "<br>");
+      printTextLinksAndReferers(badGateway.elements(), out);
+      out.println("Unavailable: " + unavailable.size()+ "<br>");
+      printTextLinksAndReferers(unavailable.elements(), out);
+      out.println("Temporarily Moved: " + redirectTemporary.size()+ "<br>");
+      printTextLinksAndReferers(redirectTemporary.elements(), out);
+      out.println("Permanently Moved: " + redirectPermanent.size()+ "<br>");
+      printTextLinksAndReferers(redirectPermanent.elements(), out);
+      out.println("Not Local: " + notLocal.size() + "<br>");
+      printTextLinksAndReferers(notLocal.elements(), out);
+      out.println("Check failed on: " + unknown.size() + "<br>");
+      printTextLinksAndReferers(unknown.elements(), out);
+      out.println("</body></html>");
+      
+  }
+  
+  /**
+   * Prints a series and Links and their referers
+   *
+   * @param links An Enumeration of the links to print.
+   * @param out The stream to which to write the link information.
+   */
+  protected void printTextLinksAndReferers(Enumeration links, 
+					   ServletOutputStream out)
+    throws IOException 
+  {
+    Enumeration urls;
+    URL url;
+    URLInfo link;
+    
+    out.println("<ul>");
+    while(links.hasMoreElements()) {
+      link = (URLInfo) links.nextElement();
+      out.println("<li>" + link.url.toString());
+      out.println("<dd>Linked from:");
+      if( link.referers == null )
+	      break;
+
+      urls = link.referers.elements();
+      if( urls == null )
+	      break;
+
+      while(urls.hasMoreElements()) {
+	url = (URL) urls.nextElement();
+	out.println("<b><a href=" + url.toString() + ">" + url.toString() +
+		    "</a></b>");
+      }
+    }
+    out.println("</ul>");
+  }
+
+  public String getServletInfo() {
+    return "This is a Jeeves link checker.";
+  }
+  
+}
+
+/**
+ * An auxillary class which holds information related
+ * to a link.
+ */
+class URLInfo {
+    URL url;
+    int statusCode;
+    String reasonPhrase;
+    String contentType;
+    Vector referers;
+    int depth;
+}
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/LocalStrings.properties /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/LocalStrings.properties
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/LocalStrings.properties	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/LocalStrings.properties	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,38 @@
+# $Id: LocalStrings.properties,v 1.1 1999/03/17 01:17:11 duncan Exp $
+
+# Default localized resources for example servlets
+# This locale is en_US
+
+helloworld.title=Hello World!
+
+requestinfo.title=Request Information Example
+requestinfo.label.method=Method:
+requestinfo.label.requesturi=Request URI:
+requestinfo.label.protocol=Protocol:
+requestinfo.label.pathinfo=Path Info:
+requestinfo.label.remoteaddr=Remote Address:
+
+requestheader.title=Request Header Example
+
+requestparams.title=Request Parameters Example
+requestparams.params-in-req=Parameters in this request:
+requestparams.no-params=No Parameters, Please enter some
+requestparams.firstname=First Name:
+requestparams.lastname=Last Name:
+
+cookies.title=Cookies Example
+cookies.cookies=Your browser is sending the following cookies:
+cookies.no-cookies=Your browser isn't sending any cookies
+cookies.make-cookie=Create a cookie to send to your browser
+cookies.name=Name:
+cookies.value=Value:
+cookies.set=You just sent the following cookie to your browser:
+
+sessions.title=Sessions Example
+sessions.id=Session ID:
+sessions.created=Created:
+sessions.lastaccessed=Last Accessed:
+sessions.data=The following data is in your session:
+sessions.adddata=Add data to your session
+sessions.dataname=Name of Session Attribute:
+sessions.datavalue=Value of Session Attribute:
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ParameterBean.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ParameterBean.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ParameterBean.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ParameterBean.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ParameterBean.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ParameterBean.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,27 @@
+public class ParameterBean
+{
+	public void setIntProperty(int i)
+	{
+		System.out.println("Set int property: " + i);
+	}
+
+	public void setStringProperty(String i)
+	{
+		System.out.println("Set String property: " + i);
+	}
+
+	public void setObjectProperty(Object i)
+	{
+		System.out.println("Set Object property: " + i);
+	}
+
+	public void setFloatProperty(float i)
+	{
+		System.out.println("Set float property: " + i);
+	}
+
+	public void setByteProperty(byte i)
+	{
+		System.out.println("Set byte property: " + i);
+	}	
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RedirectServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RedirectServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RedirectServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RedirectServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RedirectServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RedirectServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,94 @@
+/*
+ * @(#)RedirectServlet.java	1.9 97/05/22
+ * 
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+import java.io.IOException;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+/**
+ * This is a basic redirection servlet.  It takes a single
+ * destination, which it then redirects the browser to... Useful
+ * for logging how many times links off of your site are used.
+ * Example: http://www.mysite.com/RedirectServlet?http://anothersite.com/
+ */
+public class RedirectServlet extends HttpServlet { 
+
+/**
+ * Given a request with either extra path info or a QueryString, redirect
+ * browser to appropriate site.
+ * @param req Request object the servlet uses to get input.
+ * @param res Response object that the servlet uses to send output.
+ * @exception ServletException @see HttpServlet
+ * @exception IOException occurs due to general network errors.
+ */
+    public void service(HttpServletRequest req, HttpServletResponse res)
+    throws ServletException, IOException
+    {
+        String location = req.getParameter("location");
+        String path;
+        String query;
+
+        if (location == null) {
+            res.sendError(res.SC_INTERNAL_SERVER_ERROR,
+			  "Destination not set for redirect; " +
+			  "please inform system admin");
+            return;
+        }
+        
+        res.sendRedirect(location);
+
+    }
+
+/**
+ * Obtain information on this servlet.
+ * @return String describing this servlet.
+ */
+    public String getServletInfo() {
+        return "Redirect servlet -- used to send redirects";
+    }
+
+    /**
+     * decode a URLencoded string, so we may use it as a URL
+     */
+    private String decode(String encoded) {
+        
+        //speedily leave if we're not needed
+        if (encoded.indexOf('%') == -1 ) return encoded;
+
+        StringBuffer holdstring = new StringBuffer(encoded.length());
+        char holdchar;
+
+        for (int count = 0; count < encoded.length(); count++) {
+            if (encoded.charAt(count) == '%') {
+            //add check for out of bounds
+                holdstring.append((char)Integer.parseInt(encoded.substring(count+1,count+3),16));
+                if (count + 2 >= encoded.length()) 
+                    count = encoded.length();
+                else
+                    count += 2;
+            } else {
+                holdstring.append(encoded.charAt(count));
+            }
+        }
+        return holdstring.toString();
+    }
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestHeaderExample.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestHeaderExample.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestHeaderExample.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestHeaderExample.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestHeaderExample.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestHeaderExample.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,66 @@
+/* $Id: RequestHeaderExample.java,v 1.2 1999/03/17 02:36:50 duncan Exp $
+ *
+ */
+
+import java.io.*;
+import java.text.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+/**
+ * Example servlet showing request headers
+ *
+ * @author James Duncan Davidson <duncan@eng.sun.com>
+ */
+
+public class RequestHeaderExample extends HttpServlet {
+
+    ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
+    
+    public void doGet(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        response.setContentType("text/html");
+
+        PrintWriter out = response.getWriter();
+        out.println("<html>");
+        out.println("<body bgcolor=\"white\">");
+        out.println("<head>");
+
+        String title = rb.getString("requestheader.title");
+        out.println("<title>" + title + "</title>");
+        out.println("</head>");
+        out.println("<body>");
+
+	// all links relative
+	
+        out.println("<a href=\"../servlets/reqheaders.html\">");
+        out.println("<img src=\"../images/code.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"view code\"></a>");
+        out.println("<a href=\"../servlets/index.html\">");
+        out.println("<img src=\"../images/return.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"return\"></a>");
+
+        out.println("<h3>" + title + "</h3>");
+        out.println("<table border=0>");
+        Enumeration e = request.getHeaderNames();
+        while (e.hasMoreElements()) {
+            String headerName = (String)e.nextElement();
+            String headerValue = request.getHeader(headerName);
+            out.println("<tr><td bgcolor=\"#CCCCCC\">" + headerName);
+            out.println("</td><td>" + headerValue + "</td></tr>");
+        }
+        out.println("</table>");
+    }
+
+    public void doPost(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        doGet(request, response);
+    }
+
+}
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestInfoExample.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestInfoExample.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestInfoExample.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestInfoExample.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestInfoExample.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestInfoExample.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,81 @@
+/* $Id: RequestInfoExample.java,v 1.2 1999/03/17 02:36:51 duncan Exp $
+ *
+ */
+
+import java.io.*;
+import java.text.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+
+/**
+ * Example servlet showing request information.
+ *
+ * @author James Duncan Davidson <duncan@eng.sun.com>
+ */
+
+public class RequestInfoExample extends HttpServlet {
+
+
+    ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
+
+    public void doGet(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        response.setContentType("text/html");
+
+        PrintWriter out = response.getWriter();
+        out.println("<html>");
+        out.println("<body>");
+        out.println("<head>");
+
+        String title = rb.getString("requestinfo.title");
+        out.println("<title>" + title + "</title>");
+        out.println("</head>");
+        out.println("<body bgcolor=\"white\">");
+
+        // img stuff not req'd for source code html showing
+	// all links relative!
+	
+        out.println("<a href=\"../servlets/reqinfo.html\">");
+        out.println("<img src=\"../images/code.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"view code\"></a>");
+        out.println("<a href=\"../servlets/index.html\">");
+        out.println("<img src=\"../images/return.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"return\"></a>");
+
+        out.println("<h3>" + title + "</h3>");
+        out.println("<table border=0><tr><td>");
+        out.println(rb.getString("requestinfo.label.method"));
+        out.println("</td><td>");
+        out.println(request.getMethod());
+        out.println("</td></tr><tr><td>");
+        out.println(rb.getString("requestinfo.label.requesturi"));
+        out.println("</td><td>");        
+        out.println(request.getRequestURI());
+        out.println("</td></tr><tr><td>");        
+        out.println(rb.getString("requestinfo.label.protocol"));
+        out.println("</td><td>");        
+        out.println(request.getProtocol());
+        out.println("</td></tr><tr><td>");
+        out.println(rb.getString("requestinfo.label.pathinfo"));
+        out.println("</td><td>");        
+        out.println(request.getPathInfo());
+        out.println("</td></tr><tr><td>");
+        out.println(rb.getString("requestinfo.label.remoteaddr"));
+        out.println("</td><td>");                
+        out.println(request.getRemoteAddr());
+        out.println("</table>");
+    }
+
+    public void doPost(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        doGet(request, response);
+    }
+
+}
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestParamExample.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestParamExample.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestParamExample.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestParamExample.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestParamExample.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/RequestParamExample.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,87 @@
+/* $Id: RequestParamExample.java,v 1.3 1999/04/15 04:21:33 duncan Exp $
+ *
+ */
+
+import java.io.*;
+import java.text.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+
+
+/**
+ * Example servlet showing request headers
+ *
+ * @author James Duncan Davidson <duncan@eng.sun.com>
+ */
+
+public class RequestParamExample extends HttpServlet {
+
+
+    ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
+    
+    public void doGet(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        response.setContentType("text/html");
+
+        PrintWriter out = response.getWriter();
+        out.println("<html>");
+        out.println("<body>");
+        out.println("<head>");
+
+        String title = rb.getString("requestparams.title");
+        out.println("<title>" + title + "</title>");
+        out.println("</head>");
+        out.println("<body bgcolor=\"white\">");
+
+        // img stuff not req'd for source code html showing
+
+	// all links relative
+	
+        out.println("<a href=\"../servlets/reqparams.html\">");
+        out.println("<img src=\"../images/code.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"view code\"></a>");
+        out.println("<a href=\"../servlets/index.html\">");
+        out.println("<img src=\"../images/return.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"return\"></a>");
+
+        out.println("<h3>" + title + "</h3>");
+        String firstName = request.getParameter("firstname");
+        String lastName = request.getParameter("lastname");
+        out.println(rb.getString("requestparams.params-in-req") + "<br>");
+        if (firstName != null || lastName != null) {
+            out.println(rb.getString("requestparams.firstname"));
+            out.println(" = " + firstName + "<br>");
+            out.println(rb.getString("requestparams.lastname"));
+            out.println(" = " + lastName);
+        } else {
+            out.println(rb.getString("requestparams.no-params"));
+        }
+        out.println("<P>");
+        out.print("<form action=\"");
+        out.print("RequestParamExample\" ");
+        out.println("method=POST>");
+        out.println(rb.getString("requestparams.firstname"));
+        out.println("<input type=text size=20 name=firstname>");
+        out.println("<br>");
+        out.println(rb.getString("requestparams.lastname"));
+        out.println("<input type=text size=20 name=lastname>");
+        out.println("<br>");
+        out.println("<input type=submit>");
+        out.println("</form>");
+
+        out.println("</body>");
+        out.println("</html>");
+    }
+
+    public void doPost(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        doGet(request, response);
+    }
+
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionExample.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionExample.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionExample.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionExample.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionExample.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionExample.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,103 @@
+/* $Id: SessionExample.java,v 1.3 1999/04/10 05:22:10 duncan Exp $
+ *
+ */
+
+import java.io.*;
+import java.text.*;
+import java.util.*;
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+
+
+/**
+ * Example servlet showing request headers
+ *
+ * @author James Duncan Davidson <duncan@eng.sun.com>
+ */
+
+public class SessionExample extends HttpServlet {
+
+    ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
+    
+    public void doGet(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        response.setContentType("text/html");
+
+        PrintWriter out = response.getWriter();
+        out.println("<html>");
+        out.println("<body bgcolor=\"white\">");
+        out.println("<head>");
+
+        String title = rb.getString("sessions.title");
+        out.println("<title>" + title + "</title>");
+        out.println("</head>");
+        out.println("<body>");
+
+        // img stuff not req'd for source code html showing
+	// relative links everywhere!
+	
+        out.println("<a href=\"../servlets/sessions.html\">");
+        out.println("<img src=\"../images/code.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"view code\"></a>");
+        out.println("<a href=\"../servlets/index.html\">");
+        out.println("<img src=\"../images/return.gif\" height=24 " +
+                    "width=24 align=right border=0 alt=\"return\"></a>");
+
+        out.println("<h3>" + title + "</h3>");
+
+        HttpSession session = request.getSession();
+        out.println(rb.getString("sessions.id") + " " + session.getId());
+        out.println("<br>");
+        out.println(rb.getString("sessions.created") + " ");
+        out.println(new Date(session.getCreationTime()) + "<br>");
+        out.println(rb.getString("sessions.lastaccessed") + " ");
+        out.println(new Date(session.getLastAccessedTime()));
+
+        String dataName = request.getParameter("dataname");
+        String dataValue = request.getParameter("datavalue");
+        if (dataName != null && dataValue != null) {
+            session.putValue(dataName, dataValue);
+        }
+
+        out.println("<P>");
+        out.println(rb.getString("sessions.data") + "<br>");
+        String[] valueNames = session.getValueNames();
+        if (valueNames != null && valueNames.length > 0) {
+            for (int i = 0; i < valueNames.length; i++) {
+                String name = valueNames[i];
+                String value = session.getValue(name).toString();
+                out.println(name + " = " + value + "<br>");
+            }
+        }
+
+        out.println("<P>");
+        out.print("<form action=\"");
+        out.print("SessionExample\" ");
+        out.println("method=POST>");
+        out.println(rb.getString("sessions.dataname"));
+        out.println("<input type=text size=20 name=dataname>");
+        out.println("<br>");
+        out.println(rb.getString("sessions.datavalue"));
+        out.println("<input type=text size=20 name=datavalue>");
+        out.println("<br>");
+        out.println("<input type=submit>");
+        out.println("</form>");
+
+        out.println("</body>");
+        out.println("</html>");
+        
+        out.println("</body>");
+        out.println("</html>");
+    }
+
+    public void doPost(HttpServletRequest request,
+                      HttpServletResponse response)
+        throws IOException, ServletException
+    {
+        doGet(request, response);
+    }
+
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SessionServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,98 @@
+/*
+ * @(#)SessionServlet.java	1.21 97/05/22
+ * 
+ * Copyright (c) 1996-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+import java.io.*;
+import java.util.Enumeration;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+
+/**
+ * This is a simple example of an HTTP Servlet that uses the HttpSession
+ * class
+ *
+ * Note that in order to gaurentee that session response headers are
+ * set correctly, the session must be retrieved before any output is
+ * sent to the client.
+ */
+public class SessionServlet extends HttpServlet { 
+
+    public void doGet (HttpServletRequest req, HttpServletResponse res)
+      throws ServletException, IOException
+      {
+       	  //Get the session object
+	  HttpSession session = req.getSession(true);
+	  
+	  // set content type and other response header fields first
+	  res.setContentType("text/html");
+
+	  // then write the data of the response
+	  PrintWriter out = res.getWriter();
+
+	  out.println("<HEAD><TITLE> " + "SessionServlet Output " +
+		      "</TITLE></HEAD><BODY>");
+	  out.println("<h1> SessionServlet Output </h1>");
+	  
+	  Integer ival = (Integer) session.getValue("sessiontest.counter");
+	  if (ival==null) ival = new Integer(1);
+	  else ival = new Integer(ival.intValue() + 1);
+	  session.putValue("sessiontest.counter", ival);
+	  out.println("You have hit this page <b>" + ival + "</b> times.<p>");
+	  out.println("Click <a href=" + res.encodeURL(HttpUtils.getRequestURL(req).toString()) +
+		      ">here</a>");
+	  out.println(" to ensure that session tracking is working even " +
+		      "if cookies aren't supported.<br>");
+	  out.println("Note that by default URL rewriting is not enabled" +
+		      "due to it's expensive overhead");
+	  out.println("<p>");
+	  
+	  out.println("<h3>Request and Session Data:</h3>");
+	  out.println("Session ID in Request: " +
+		      req.getRequestedSessionId());
+	  out.println("<br>Session ID in Request from Cookie: " +
+		      req.isRequestedSessionIdFromCookie());
+	  out.println("<br>Session ID in Request from URL: " +
+		      req.isRequestedSessionIdFromUrl());
+	  out.println("<br>Valid Session ID: " +
+		      req.isRequestedSessionIdValid());
+	  out.println("<h3>Session Data:</h3>");
+	  out.println("New Session: " + session.isNew());
+	  out.println("<br>Session ID: " + session.getId());
+	  out.println("<br>Creation Time: " + session.getCreationTime());
+	  out.println("<br>Last Accessed Time: " +
+		      session.getLastAccessedTime());
+	  out.println("<h3>Session Context Data:</h3>");
+	  HttpSessionContext context = session.getSessionContext();
+
+	  for (Enumeration e = context.getIds(); e.hasMoreElements() ;) {
+	      out.println("Valid Session: " +
+			  (String)e.nextElement()+ "<br>");
+	  }
+	  
+	  out.println("</BODY>");
+	  out.close();
+      }
+    
+    public String getServletInfo() {
+        return "A simple servlet";
+    }
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SimpleServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SimpleServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SimpleServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SimpleServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SimpleServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SimpleServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,61 @@
+/*
+ * @(#)SimpleServlet.java	1.22 97/10/25
+ * 
+ * Copyright (c) 1996-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+import java.io.*;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+
+/**
+ * This is a simple example of an HTTP Servlet.  It responds to the GET
+ * and HEAD methods of the HTTP protocol.
+ */
+public class SimpleServlet extends HttpServlet
+{ 
+    /**
+     * Handle the GET and HEAD methods by building a simple web page.
+     * HEAD is just like GET, except that the server returns only the
+     * headers (including content length) not the body we write.
+     */
+    public void doGet (
+	HttpServletRequest	request,
+	HttpServletResponse	response
+    ) throws ServletException, IOException
+    {
+	PrintWriter		out;
+        String                  title = "NEWER Simple Servlet Output";
+
+	// set content type and other response header fields first
+        response.setContentType("text/html");
+
+	// then write the data of the response
+	out = response.getWriter();
+
+        out.println("<HTML><HEAD><TITLE>");
+	out.println(title);
+	out.println("</TITLE></HEAD><BODY>");
+	out.println("<H1>" + title + "</H1>");
+        out.println("<P>This is NEWER output from SimpleServlet.");
+	out.println("</BODY></HTML>");
+	out.close();
+    }
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SnoopServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SnoopServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SnoopServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SnoopServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SnoopServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SnoopServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,157 @@
+/*
+ * @(#)SnoopServlet.java	1.20 97/11/17
+ * 
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+import java.io.*;
+import java.util.*;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+
+/**
+ * Snoop servlet. This servlet simply echos back the request line and
+ * headers that were sent by the client, plus any HTTPS information
+ * which is accessible.
+ *
+ * @version 	1.20
+ * @author 	Various
+ */
+public
+class SnoopServlet extends HttpServlet {
+
+    public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
+	{
+		doGet(req, res);
+	}
+
+    public void doGet(HttpServletRequest req, HttpServletResponse res)
+    throws ServletException, IOException
+    {
+	PrintWriter	out;
+
+	res.setContentType("text/html");
+	out = res.getWriter ();
+
+	out.println("<html>");
+	out.println("<head><title>Snoop Servlet</title></head>");
+	out.println("<body>");
+
+	out.println("<h1>Requested URL:</h1>");
+	out.println("<pre>");
+	out.println (HttpUtils.getRequestURL (req).toString ());
+	out.println("</pre>");
+
+	Enumeration enum = getServletConfig().getInitParameterNames();
+        if (enum != null) {
+            boolean first = true;
+	    while (enum.hasMoreElements()) {
+		if (first) {
+	            out.println("<h1>Init Parameters</h1>");
+	            out.println("<pre>");
+		    first = false;
+                }
+		String param = (String) enum.nextElement();
+                out.println(" "+param+": "+getInitParameter(param));
+	    }
+	    out.println("</pre>");
+        }
+
+	out.println("<h1>Request information:</h1>");
+	out.println("<pre>");
+
+	print(out, "Request method", req.getMethod());
+	print(out, "Request URI", req.getRequestURI());
+	print(out, "Request protocol", req.getProtocol());
+	print(out, "Servlet path", req.getServletPath());
+	print(out, "Path info", req.getPathInfo());
+	print(out, "Path translated", req.getPathTranslated());
+	print(out, "Query string", req.getQueryString());
+	print(out, "Content length", req.getContentLength());
+	print(out, "Content type", req.getContentType());
+	print(out, "Character Encoding", req.getCharacterEncoding());
+	print(out, "Server name", req.getServerName());
+	print(out, "Server port", req.getServerPort());
+	print(out, "Remote user", req.getRemoteUser());
+	print(out, "Remote address", req.getRemoteAddr());
+	print(out, "Remote host", req.getRemoteHost());
+	print(out, "Authorization scheme", req.getAuthType());
+
+	out.println("</pre>");
+	
+	Enumeration e = req.getHeaderNames();
+	if (e.hasMoreElements()) {
+	    out.println("<h1>Request headers:</h1>");
+	    out.println("<pre>");
+	    while (e.hasMoreElements()) {
+		String name = (String)e.nextElement();
+		out.println(" " + name + ": " + req.getHeader(name));
+	    }
+	    out.println("</pre>");
+	}
+
+	e = req.getParameterNames();
+	if (e.hasMoreElements()) {
+	    out.println("<h1>Servlet parameters (Single Value style):</h1>");
+	    out.println("<pre>");
+	    while (e.hasMoreElements()) {
+		String name = (String)e.nextElement();
+		out.println(" " + name + " = " + req.getParameter(name));
+	    }
+	    out.println("</pre>");
+	}
+
+	e = req.getParameterNames();
+	if (e.hasMoreElements()) {
+	    out.println("<h1>Servlet parameters (Multiple Value style):</h1>");
+	    out.println("<pre>");
+	    while (e.hasMoreElements()) {
+		String name = (String)e.nextElement();
+		String vals[] = (String []) req.getParameterValues(name);
+		if (vals != null) {
+		    out.print("<b> " + name + " = </b>"); 
+		    out.println(vals[0]);
+		    for (int i = 1; i<vals.length; i++)
+			out.println("           " + vals[i]);
+		}
+		out.println("<p>");
+	    }
+	    out.println("</pre>");
+	}
+	
+	out.println("</body></html>");
+    }
+
+    private void print (PrintWriter out, String name, String value)
+    {
+	out.print(" " + name + ": ");
+	out.println(value == null ? "&lt;none&gt;" : value);
+    }
+
+    private void print (PrintWriter out, String name, int value)
+    {
+	out.print(" " + name + ": ");
+	if (value == -1) {
+	    out.println("&lt;none&gt;");
+	} else {
+	    out.println(value);
+	}
+    }
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SurveyServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SurveyServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SurveyServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SurveyServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SurveyServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/SurveyServlet.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,127 @@
+/*
+* @(#)SurveyServlet.java
+*
+* Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
+*
+* This software is the confidential and proprietary information of Sun
+* Microsystems, Inc. ("Confidential Information").  You shall not
+* disclose such Confidential Information and shall use it only in
+* accordance with the terms of the license agreement you entered into
+* with Sun.
+* 
+* SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+* SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+* IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+* PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+* SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+* THIS SOFTWARE OR ITS DERIVATIVES.
+*/
+
+import java.io.*;
+import java.util.*;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+/**
+ * A sample single-threaded servlet that takes input from a form
+ * and writes it out to a file.  It is single threaded to serialize
+ * access to the file.  After the results are written to the file,
+ * the servlet returns a "thank you" to the user.
+ *
+ * <p>You can run the servlet as provided, and only one thread will run
+ * a service method at a time.  There are no thread synchronization
+ * issues with this type of servlet, even though the service method
+ * writes to a file.  (Writing to a file within a service method
+ * requires synchronization in a typical servlet.)
+ *
+ * <p>You can also run the servlet without using the single thread
+ * model by removing the <tt>implements</tt> statement.  Because the
+ * service method does not synchronize access to the file, multiple
+ * threads can write to it at the same time.  When multiple threads try
+ * to write to the file concurrently, the data from one survey does not
+ * follow the data from another survey in an orderly fashion.
+ *
+ * <p>To see interaction (or lack of interaction) between threads, use
+ * at least two browser windows and have them access the servlet as
+ * close to simultaneously as possible.  Expect correct results (that
+ * is, expect no interference between threads) only when the servlet
+ * implements the <code>SingleThreadedModel</code> interface.
+ */
+
+public class SurveyServlet extends HttpServlet 
+    implements SingleThreadModel
+{
+    String resultsDir;
+    
+    public void init(ServletConfig config)
+	throws ServletException
+    {
+	super.init(config);
+        resultsDir = getInitParameter("resultsDir");
+	if (resultsDir == null) {
+	    Enumeration initParams = getInitParameterNames();
+	    System.err.println("The init parameters were: ");
+	    while (initParams.hasMoreElements()) {
+		System.err.println(initParams.nextElement());
+	    }
+	    System.err.println("Should have seen one parameter name");
+	    throw new UnavailableException (this,
+		"Not given a directory to write survey results!");
+	}
+    }
+
+    /**
+     * Write survey results to output file in response to the POSTed
+     * form.  Write a "thank you" to the client.     
+     */
+    public void doPost(HttpServletRequest req, HttpServletResponse res)
+	throws ServletException, IOException
+    {
+        // first, set the "content type" header of the response
+	res.setContentType("text/html");
+
+	//Get the response's PrintWriter to return text to the client.
+        PrintWriter toClient = res.getWriter();
+
+        try {
+            //Open the file for writing the survey results.
+            String surveyName = req.getParameterValues("survey")[0];
+            FileWriter resultsFile = new FileWriter(resultsDir
+	        + System.getProperty("file.separator")
+	        + surveyName + ".txt", true);
+            PrintWriter toFile = new PrintWriter(resultsFile);
+
+	    // Get client's form data & store it in the file
+            toFile.println("<BEGIN>");
+            Enumeration values = req.getParameterNames();
+            while(values.hasMoreElements()) {
+                String name = (String)values.nextElement();
+		String value = req.getParameterValues(name)[0];
+                if(name.compareTo("submit") != 0) {
+                    toFile.println(name + ": " + value);
+                }
+            }
+            toFile.println("<END>");
+
+	    //Close the file.
+            resultsFile.close();
+
+	    // Respond to client with a thank you
+	    toClient.println("<html>");
+	    toClient.println("<title>Thank you!</title>");
+            toClient.println("Thank you for participating");
+	    toClient.println("</html>");
+
+        } catch(IOException e) {
+            e.printStackTrace();
+            toClient.println(
+		"A problem occured while recording your answers.  "
+		+ "Please try again.");
+        }
+
+        // Close the writer; the response is done.
+	toClient.close();
+    }
+}
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ToJSPServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ToJSPServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ToJSPServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ToJSPServlet.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ToJSPServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/ToJSPServlet.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,22 @@
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+/**
+ * An example servlet demonstrating a servlet forwarding to a JSP-page.
+ */
+public class ToJSPServlet extends HttpServlet
+{
+    public void doGet(HttpServletRequest request, HttpServletResponse response)
+	{
+		try
+		{
+			// Set the attribute and Forward to hello.jsp
+			request.setAttribute("servletName", "ServletToJSP");
+		    getServletConfig().getServletContext().getRequestDispatcher("/examples/jsp/jsptoserv/hello.jsp").forward(request, response);
+		}
+		catch(Exception ex)
+		{
+			ex.printStackTrace();
+		}
+    }
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/URLInfo.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/URLInfo.class differ
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/UpperCaseFilter.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/UpperCaseFilter.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/UpperCaseFilter.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/UpperCaseFilter.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/UpperCaseFilter.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/UpperCaseFilter.java	Thu Jun  1 01:00:00 2000
@@ -0,0 +1,69 @@
+/*
+ * @(#)UpperCaseFilter.java	1.17 97/03/05
+ * 
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+import java.io.*;
+import java.util.Enumeration;
+
+import javax.servlet.http.*;
+import javax.servlet.*;
+
+/**
+ * This is an example of a simple Servlet.
+ */
+public class UpperCaseFilter extends HttpServlet { 
+
+    public void service(HttpServletRequest req, HttpServletResponse res)
+	throws ServletException, IOException
+    {
+	Enumeration e = req.getHeaderNames();
+	while (e.hasMoreElements()) {
+	    String header = (String)e.nextElement();
+	    String value = req.getHeader(header);
+	    res.setHeader(header, value);
+	}
+
+	ServletOutputStream out = res.getOutputStream();
+	if (req.getContentType().equals("text/html")) {
+	    DataInputStream ds = new DataInputStream(req.getInputStream());
+	    String s;
+	    while ( (s = ds.readLine()) != null) {
+		String u = s.toUpperCase();
+		if((u.indexOf("HREF") != -1) ||
+		   (u.indexOf("IMG") != -1))
+		    out.println(s);
+		else
+		    out.println(u);
+	    }
+	} else {
+	    ServletInputStream in = req.getInputStream();
+	    int b;
+	    while ( (b = in.read()) != -1) 
+		out.write(b);
+	}
+
+	out.close();
+    }
+
+    public String getServletInfo() {
+        return "A simple servlet";
+    }
+
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entries.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entries.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entries.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entries.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entries.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entries.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ *
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ *
+ * @author Mandar Raje
+ */
+
+package cal;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import javax.servlet.http.*;
+
+public class Entries {
+
+  private Hashtable entries;
+  private static final String[] time = {"8am", "9am", "10am", "11am", "12pm", 
+					"1pm", "2pm", "3pm", "4pm", "5pm", "6pm",
+					"7pm", "8pm" };
+  public static final int rows = 12;
+
+  public Entries () {   
+   entries = new Hashtable (rows);
+   for (int i=0; i < rows; i++) {
+     entries.put (time[i], new Entry(time[i]));
+   }
+  }
+
+  public int getRows () {
+    return rows;
+  }
+
+  public Entry getEntry (int index) {
+    return (Entry)this.entries.get(time[index]);
+  }
+
+  public int getIndex (String tm) {
+    for (int i=0; i<rows; i++)
+      if(tm.equals(time[i])) return i;
+    return -1;
+  }
+
+  public void processRequest (HttpServletRequest request, String tm) {
+    int index = getIndex (tm);
+    if (index >= 0) {
+      String descr = request.getParameter ("description");
+      ((Entry)entries.get(time[index])).setDescription (descr);
+    }
+  }
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entry.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entry.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entry.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entry.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entry.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/Entry.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ *
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ *
+ * @author Mandar Raje
+ */
+
+package cal;
+
+public class Entry {
+
+  String hour;
+  String description;
+  String color;
+
+  public Entry (String hour) {
+    this.hour = hour;
+    this.description = "";
+
+  }
+
+  public String getHour () {
+    return this.hour;
+  }
+
+  public String getColor () {
+    if (description.equals("")) return "lightblue";
+    else return "red";
+  }
+
+  public String getDescription () {
+    if (description.equals("")) return "None";
+    else return this.description;
+  }
+
+  public void setDescription (String descr) {
+    description = descr;
+  }
+ 
+}
+
+
+
+
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/JspCalendar.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/JspCalendar.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/JspCalendar.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/JspCalendar.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/JspCalendar.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/JspCalendar.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,157 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ *
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ *
+ * @author Mandar Raje
+ */
+
+package cal;
+
+import java.text.DateFormat;
+import java.util.*;
+
+public class JspCalendar {
+    Calendar  calendar = null;
+    Date currentDate;
+
+    public JspCalendar() {
+	calendar = Calendar.getInstance();
+	Date trialTime = new Date();
+	calendar.setTime(trialTime);
+    }
+
+
+    public int getYear() {
+	return calendar.get(Calendar.YEAR);
+    }
+    
+    public String getMonth() {
+	int m = getMonthInt();
+	String[] months = new String [] { "January", "February", "March",
+					"April", "May", "June",
+					"July", "August", "September",
+					"October", "November", "December" };
+	if (m > 12)
+	    return "Unknown to Man";
+	
+	return months[m - 1];
+
+    }
+
+    public String getDay() {
+	int x = getDayOfWeek();
+	String[] days = new String[] {"Sunday", "Monday", "Tuesday", "Wednesday", 
+				      "Thursday", "Friday", "Saturday"};
+
+	if (x > 7)
+	    return "Unknown to Man";
+
+	return days[x - 1];
+
+    }
+    
+    public int getMonthInt() {
+	return 1 + calendar.get(Calendar.MONTH);
+    }
+
+    public String getDate() {
+	return getMonthInt() + "/" + getDayOfMonth() + "/" +  getYear();	
+    }
+
+    public String getCurrentDate() {
+        Date dt = new Date ();
+	calendar.setTime (dt);
+	return getMonthInt() + "/" + getDayOfMonth() + "/" +  getYear();
+
+    }
+
+    public String getNextDate() {
+        calendar.set (Calendar.DAY_OF_MONTH, getDayOfMonth() + 1);
+	return getDate ();
+    }
+
+    public String getPrevDate() {
+        calendar.set (Calendar.DAY_OF_MONTH, getDayOfMonth() - 1);
+	return getDate ();
+    }
+
+    public String getTime() {
+	return getHour() + ":" + getMinute() + ":" + getSecond();
+    }
+
+    public int getDayOfMonth() {
+	return calendar.get(Calendar.DAY_OF_MONTH);
+    }
+
+    public int getDayOfYear() {
+	return calendar.get(Calendar.DAY_OF_YEAR);
+    }
+
+    public int getWeekOfYear() {
+	return calendar.get(Calendar.WEEK_OF_YEAR);
+    }
+
+    public int getWeekOfMonth() {
+	return calendar.get(Calendar.WEEK_OF_MONTH);
+    }
+
+    public int getDayOfWeek() {
+	return calendar.get(Calendar.DAY_OF_WEEK);
+    }
+     
+    public int getHour() {
+	return calendar.get(Calendar.HOUR_OF_DAY);
+    }
+    
+    public int getMinute() {
+	return calendar.get(Calendar.MINUTE);
+    }
+
+
+    public int getSecond() {
+	return calendar.get(Calendar.SECOND);
+    }
+
+  
+    public int getEra() {
+	return calendar.get(Calendar.ERA);
+    }
+
+    public String getUSTimeZone() {
+	String[] zones = new String[] {"Hawaii", "Alaskan", "Pacific",
+				       "Mountain", "Central", "Eastern"};
+	
+	return zones[10 + getZoneOffset()];
+    }
+
+    public int getZoneOffset() {
+	return calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000);
+    }
+
+
+    public int getDSTOffset() {
+	return calendar.get(Calendar.DST_OFFSET)/(60*60*1000);
+    }
+
+    
+    public int getAMPM() {
+	return calendar.get(Calendar.AM_PM);
+    }
+}
+
+
+
+
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/TableBean.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/TableBean.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/TableBean.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/TableBean.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/TableBean.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/cal/TableBean.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,106 @@
+/*
+ *
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ *
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ *
+ * @author Mandar Raje
+ */
+
+package cal;
+
+import java.beans.*;
+import javax.servlet.http.*;
+import javax.servlet.*;
+import java.util.Hashtable;
+
+public class TableBean {
+
+  Hashtable table;
+  JspCalendar JspCal;
+  Entries entries;
+  String date;
+  String name = null;
+  String email = null;
+  boolean processError = false;
+
+  public TableBean () {
+    this.table = new Hashtable (10);
+    this.JspCal = new JspCalendar ();
+    this.date = JspCal.getCurrentDate ();
+  }
+
+  public void setName (String nm) {
+    this.name = nm;
+  }
+
+  public String getName () {
+    return this.name;
+  }
+  
+  public void setEmail (String mail) {
+    this.email = mail;
+  }
+
+  public String getEmail () {
+    return this.email;
+  }
+
+  public String getDate () {
+    return this.date;
+  }
+
+  public Entries getEntries () {
+    return this.entries;
+  }
+
+  public void processRequest (HttpServletRequest request) {
+
+    // Get the name and e-mail.
+    this.processError = false;
+    if (name == null || name.equals("")) setName(request.getParameter ("name"));  
+    if (email == null || email.equals("")) setEmail(request.getParameter ("email"));
+    if (name == null || email == null ||
+		name.equals("") || email.equals("")) {
+      this.processError = true;
+      return;
+    }
+
+    // Get the date.
+    String dateR = request.getParameter ("date");
+    if (dateR == null) date = JspCal.getCurrentDate ();
+    else if (dateR.equalsIgnoreCase("next")) date = JspCal.getNextDate ();
+    else if (dateR.equalsIgnoreCase("prev")) date = JspCal.getPrevDate ();
+
+    entries = (Entries) table.get (date);
+    if (entries == null) {
+      entries = new Entries ();
+      table.put (date, entries);
+    }
+
+    // If time is provided add the event.
+	String time = request.getParameter("time");
+    if (time != null) entries.processRequest (request, time);
+  }
+
+  public boolean getProcessError () {
+    return this.processError;
+  }
+}
+
+
+
+
+
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/checkbox/CheckTest.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/checkbox/CheckTest.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/checkbox/CheckTest.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/checkbox/CheckTest.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/checkbox/CheckTest.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/checkbox/CheckTest.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ *
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ *
+ * @author Mandar Raje
+ */
+
+package checkbox;
+
+public class CheckTest {
+
+    String b[] = new String[] { "1", "2", "3", "4" };
+
+    public String[] getFruit() {
+	return b;
+    }
+
+    public void setFruit(String [] b) {
+	this.b = b;
+    }
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/colors/ColorGameBean.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/colors/ColorGameBean.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/colors/ColorGameBean.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/colors/ColorGameBean.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/colors/ColorGameBean.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/colors/ColorGameBean.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 1995-1997 Sun Microsystems, Inc. All Rights Reserved.
+ * 
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ * 
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ * 
+ * CopyrightVersion 1.0
+ */
+
+package colors;
+
+import javax.servlet.http.*;
+
+public class ColorGameBean {
+
+    private String background = "yellow";
+    private String foreground = "red";
+    private String color1 = foreground;
+    private String color2 = background;
+    private String hint = "no";
+    private int attempts = 0;
+	private int intval = 0;
+    private boolean tookHints = false;
+
+    public void processRequest(HttpServletRequest request) {
+
+	// background = "yellow";
+	// foreground = "red";
+
+	if (! color1.equals(foreground)) {
+	    if (color1.equalsIgnoreCase("black") ||
+			color1.equalsIgnoreCase("cyan")) {
+			background = color1;
+		}
+	}
+
+	if (! color2.equals(background)) {
+	    if (color2.equalsIgnoreCase("black") ||
+			color2.equalsIgnoreCase("cyan")) {
+			foreground = color2;
+	    }
+	}
+
+	attempts++;
+    }
+
+    public void setColor2(String x) {
+	color2 = x;
+    }
+
+    public void setColor1(String x) {
+	color1 = x;
+    }
+
+    public void setAction(String x) {
+	if (!tookHints)
+	    tookHints = x.equalsIgnoreCase("Hint");
+	hint = x;
+    }
+
+    public String getColor2() {
+	 return background;
+    }
+
+    public String getColor1() {
+	 return foreground;
+    }
+
+    public int getAttempts() {
+	return attempts;
+    }
+
+    public boolean getHint() {
+	return hint.equalsIgnoreCase("Hint");
+    }
+
+    public boolean getSuccess() {
+	if (background.equalsIgnoreCase("black") ||
+	    background.equalsIgnoreCase("cyan")) {
+	
+	    if (foreground.equalsIgnoreCase("black") ||
+		foreground.equalsIgnoreCase("cyan"))
+		return true;
+	    else
+		return false;
+	}
+
+	return false;
+    }
+
+    public boolean getHintTaken() {
+	return tookHints;
+    }
+
+    public void reset() {
+	foreground = "red";
+	background = "yellow";
+    }
+
+    public void setIntval(int value) {
+	intval = value;
+	}
+
+    public int getIntval() {
+	return intval;
+	}
+}
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/dates/JspCalendar.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/dates/JspCalendar.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/dates/JspCalendar.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/dates/JspCalendar.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/dates/JspCalendar.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/dates/JspCalendar.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,164 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ *
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ *
+ * @author Mandar Raje
+ */
+
+package dates;
+
+import java.text.DateFormat;
+import java.util.*;
+
+public class JspCalendar {
+    Calendar  calendar = null;
+
+    public JspCalendar() {
+	calendar = Calendar.getInstance();
+	Date trialTime = new Date();
+	calendar.setTime(trialTime);
+    }
+
+    public int getYear() {
+	return calendar.get(Calendar.YEAR);
+    }
+    
+    public String getMonth() {
+	int m = getMonthInt();
+	String[] months = new String [] { "January", "February", "March",
+					"April", "May", "June",
+					"July", "August", "September",
+					"October", "November", "December" };
+	if (m > 12)
+	    return "Unknown to Man";
+	
+	return months[m - 1];
+
+    }
+
+    public String getDay() {
+	int x = getDayOfWeek();
+	String[] days = new String[] {"Sunday", "Monday", "Tuesday", "Wednesday", 
+				      "Thursday", "Friday", "Saturday"};
+
+	if (x > 7)
+	    return "Unknown to Man";
+
+	return days[x - 1];
+
+    }
+    
+    public int getMonthInt() {
+	return 1 + calendar.get(Calendar.MONTH);
+    }
+
+    public String getDate() {
+	return getMonthInt() + "/" + getDayOfMonth() + "/" +  getYear();
+
+    }
+
+    public String getTime() {
+	return getHour() + ":" + getMinute() + ":" + getSecond();
+    }
+
+    public int getDayOfMonth() {
+	return calendar.get(Calendar.DAY_OF_MONTH);
+    }
+
+    public int getDayOfYear() {
+	return calendar.get(Calendar.DAY_OF_YEAR);
+    }
+
+    public int getWeekOfYear() {
+	return calendar.get(Calendar.WEEK_OF_YEAR);
+    }
+
+    public int getWeekOfMonth() {
+	return calendar.get(Calendar.WEEK_OF_MONTH);
+    }
+
+    public int getDayOfWeek() {
+	return calendar.get(Calendar.DAY_OF_WEEK);
+    }
+     
+    public int getHour() {
+	return calendar.get(Calendar.HOUR_OF_DAY);
+    }
+    
+    public int getMinute() {
+	return calendar.get(Calendar.MINUTE);
+    }
+
+
+    public int getSecond() {
+	return calendar.get(Calendar.SECOND);
+    }
+
+    public static void main(String args[]) {
+	JspCalendar db = new JspCalendar();
+	p("date: " + db.getDayOfMonth());
+	p("year: " + db.getYear());
+	p("month: " + db.getMonth());
+	p("time: " + db.getTime());
+	p("date: " + db.getDate());
+	p("Day: " + db.getDay());
+	p("DayOfYear: " + db.getDayOfYear());
+	p("WeekOfYear: " + db.getWeekOfYear());
+	p("era: " + db.getEra());
+	p("ampm: " + db.getAMPM());
+	p("DST: " + db.getDSTOffset());
+	p("ZONE Offset: " + db.getZoneOffset());
+	p("TIMEZONE: " + db.getUSTimeZone());
+    }
+
+    private static void p(String x) {
+	System.out.println(x);
+    }
+
+
+    public int getEra() {
+	return calendar.get(Calendar.ERA);
+    }
+
+    public String getUSTimeZone()
+	{
+		try
+		{
+			String[] zones = new String[] {"Hawaii", "Alaskan", "Pacific",
+						       "Mountain", "Central", "Eastern"};
+	
+			return zones[10 + getZoneOffset()];
+		}
+		catch(ArrayIndexOutOfBoundsException e)
+		{
+			return "Unknown";
+		}
+    }
+
+    public int getZoneOffset() {
+	return calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000);
+    }
+
+
+    public int getDSTOffset() {
+	return calendar.get(Calendar.DST_OFFSET)/(60*60*1000);
+    }
+
+    
+    public int getAMPM() {
+	return calendar.get(Calendar.AM_PM);
+    }
+}
+
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/error/Smart.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/error/Smart.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/error/Smart.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/error/Smart.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/error/Smart.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/error/Smart.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ *
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ *
+ * @author Mandar Raje
+ */
+
+package error;
+
+import java.io.*;
+import java.lang.*;
+
+public class Smart {
+
+  String name = "JSP";
+
+  public String getName () {
+	return name;
+  }	
+
+  public void setName (String name) {
+	this.name = name;
+  }	
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/num/NumberGuessBean.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/num/NumberGuessBean.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/num/NumberGuessBean.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/num/NumberGuessBean.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/num/NumberGuessBean.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/num/NumberGuessBean.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,62 @@
+// Number Guess Game
+// Written by Jason Hunter <jasonh@kasoftware.com>, CTO, K&A Software
+// Copyright 1999, K&A Software, distributed by Sun with permission
+
+package num;
+
+import java.util.*;
+
+public class NumberGuessBean {
+
+  int answer;
+  boolean success;
+  String hint;
+  int numGuesses;
+
+  public NumberGuessBean() {
+    reset();
+  }
+
+  public void setGuess(String guess) {
+    numGuesses++;
+
+    int g;
+    try {
+      g = Integer.parseInt(guess);
+    }
+    catch (NumberFormatException e) {
+      g = -1;
+    }
+
+    if (g == answer) {
+      success = true;
+    }
+    else if (g == -1) {
+      hint = "a number next time";
+    }
+    else if (g < answer) {
+      hint = "higher";
+    }
+    else if (g > answer) {
+      hint = "lower";
+    }
+  }
+
+  public boolean getSuccess() {
+    return success;
+  }
+
+  public String getHint() {
+    return "" + hint;
+  }
+
+  public int getNumGuesses() {
+    return numGuesses;
+  }
+
+  public void reset() {
+    answer = Math.abs(new Random().nextInt() % 100) + 1;
+    success = false;
+    numGuesses = 0;
+  }
+}
Binary files /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/sessions/DummyCart.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/sessions/DummyCart.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/sessions/DummyCart.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/sessions/DummyCart.java
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/classes/sessions/DummyCart.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/classes/sessions/DummyCart.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * This software is the confidential and proprietary information of Sun
+ * Microsystems, Inc. ("Confidential Information").  You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with Sun.
+ *
+ * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ * THIS SOFTWARE OR ITS DERIVATIVES.
+ *
+ * @author Mandar Raje
+ */
+
+package sessions;
+
+import javax.servlet.http.*;
+import java.util.Vector;
+import java.util.Enumeration;
+
+public class DummyCart {
+    Vector v = new Vector();
+    String submit = null;
+    String item = null;
+    
+    private void addItem(String name) {
+	v.addElement(name);
+    }
+
+    private void removeItem(String name) {
+	v.removeElement(name);
+    }
+
+    public void setItem(String name) {
+	item = name;
+    }
+    
+    public void setSubmit(String s) {
+	submit = s;
+    }
+
+    public String[] getItems() {
+	String[] s = new String[v.size()];
+	v.copyInto(s);
+	return s;
+    }
+    
+    public void processRequest(HttpServletRequest request) {
+	// null value for submit - user hit enter instead of clicking on 
+	// "add" or "remove"
+	if (submit == null) 
+	    addItem(item);
+
+	if (submit.equals("add"))
+	    addItem(item);
+	else if (submit.equals("remove")) 
+	    removeItem(item);
+	
+	// reset at the end of the request
+	reset();
+    }
+
+    // reset
+    private void reset() {
+	submit = null;
+	item = null;
+    }
+}
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/web.xml /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/web.xml
--- /usr/ports/java/orion/work/orion/default-web-app/WEB-INF/web.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/WEB-INF/web.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
+
+<web-app>
+	<!-- A demo servlet, add servlets below -->
+	<servlet>
+		<servlet-name>snoop</servlet-name>
+		<servlet-class>SnoopServlet</servlet-class>
+	</servlet>
+</web-app>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/cal/Entries.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/Entries.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/cal/Entries.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/Entries.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ *This software is the confidential and proprietary information of Sun
+ *Microsystems, Inc. ("Confidential Information").  You shall not
+ *disclose such Confidential Information and shall use it only in
+ *accordance with the terms of the license agreement you entered into
+ *with Sun.
+ *
+ *SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ *SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ *IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ *PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ *SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ *THIS SOFTWARE OR ITS DERIVATIVES.
+*/
+
+
+package cal;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import javax.servlet.http.*;
+
+public class Entries {
+
+  private Hashtable entries;
+  private static final String[] time = {"8am", "9am", "10am", "11am", "12pm", 
+					"1pm", "2pm", "3pm", "4pm", "5pm", "6pm",
+					"7pm", "8pm" };
+  public static final int rows = 12;
+
+  public Entries () {   
+   entries = new Hashtable (rows);
+   for (int i=0; i < rows; i++) {
+     entries.put (time[i], new Entry(time[i]));
+   }
+  }
+
+  public int getRows () {
+    return rows;
+  }
+
+  public Entry getEntry (int index) {
+    return (Entry)this.entries.get(time[index]);
+  }
+
+  public int getIndex (String tm) {
+    for (int i=0; i<rows; i++)
+      if(tm.equals(time[i])) return i;
+    return -1;
+  }
+
+  public void processRequest (HttpServletRequest request, String tm) {
+    int index = getIndex (tm);
+    if (index >= 0) {
+      String descr = request.getParameter ("description");
+      ((Entry)entries.get(time[index])).setDescription (descr);
+    }
+  }
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/cal/Entry.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/Entry.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/cal/Entry.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/Entry.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ *This software is the confidential and proprietary information of Sun
+ *Microsystems, Inc. ("Confidential Information").  You shall not
+ *disclose such Confidential Information and shall use it only in
+ *accordance with the terms of the license agreement you entered into
+ *with Sun.
+ *
+ *SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ *SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ *IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ *PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ *SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ *THIS SOFTWARE OR ITS DERIVATIVES.
+ */
+
+package cal;
+
+public class Entry {
+
+  String hour;
+  String description;
+  String color;
+
+  public Entry (String hour) {
+    this.hour = hour;
+    this.description = "";
+
+  }
+
+  public String getHour () {
+    return this.hour;
+  }
+
+  public String getColor () {
+    if (description.equals("")) return "lightblue";
+    else return "red";
+  }
+
+  public String getDescription () {
+    if (description.equals("")) return "None";
+    else return this.description;
+  }
+
+  public void setDescription (String descr) {
+    description = descr;
+  }
+ 
+}
+
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/cal/JspCalendar.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/JspCalendar.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/cal/JspCalendar.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/JspCalendar.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ *This software is the confidential and proprietary information of Sun
+ *Microsystems, Inc. ("Confidential Information").  You shall not
+ *disclose such Confidential Information and shall use it only in
+ *accordance with the terms of the license agreement you entered into
+ *with Sun.
+ *
+ *SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ *SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ *IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ *PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ *SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ *THIS SOFTWARE OR ITS DERIVATIVES.
+ */
+
+package cal;
+
+import java.text.DateFormat;
+import java.util.*;
+
+public class JspCalendar {
+    Calendar  calendar = null;
+    Date currentDate;
+
+    public JspCalendar() {
+	calendar = Calendar.getInstance();
+	Date trialTime = new Date();
+	calendar.setTime(trialTime);
+    }
+
+
+    public int getYear() {
+	return calendar.get(Calendar.YEAR);
+    }
+    
+    public String getMonth() {
+	int m = getMonthInt();
+	String[] months = new String [] { "January", "February", "March",
+					"April", "May", "June",
+					"July", "August", "September",
+					"October", "November", "December" };
+	if (m > 12)
+	    return "Unknown to Man";
+	
+	return months[m - 1];
+
+    }
+
+    public String getDay() {
+	int x = getDayOfWeek();
+	String[] days = new String[] {"Sunday", "Monday", "Tuesday", "Wednesday", 
+				      "Thursday", "Friday", "Saturday"};
+
+	if (x > 7)
+	    return "Unknown to Man";
+
+	return days[x - 1];
+
+    }
+    
+    public int getMonthInt() {
+	return 1 + calendar.get(Calendar.MONTH);
+    }
+
+    public String getDate() {
+	return getMonthInt() + "/" + getDayOfMonth() + "/" +  getYear();	
+    }
+
+    public String getCurrentDate() {
+        Date dt = new Date ();
+	calendar.setTime (dt);
+	return getMonthInt() + "/" + getDayOfMonth() + "/" +  getYear();
+
+    }
+
+    public String getNextDate() {
+        calendar.set (Calendar.DAY_OF_MONTH, getDayOfMonth() + 1);
+	return getDate ();
+    }
+
+    public String getPrevDate() {
+        calendar.set (Calendar.DAY_OF_MONTH, getDayOfMonth() - 1);
+	return getDate ();
+    }
+
+    public String getTime() {
+	return getHour() + ":" + getMinute() + ":" + getSecond();
+    }
+
+    public int getDayOfMonth() {
+	return calendar.get(Calendar.DAY_OF_MONTH);
+    }
+
+    public int getDayOfYear() {
+	return calendar.get(Calendar.DAY_OF_YEAR);
+    }
+
+    public int getWeekOfYear() {
+	return calendar.get(Calendar.WEEK_OF_YEAR);
+    }
+
+    public int getWeekOfMonth() {
+	return calendar.get(Calendar.WEEK_OF_MONTH);
+    }
+
+    public int getDayOfWeek() {
+	return calendar.get(Calendar.DAY_OF_WEEK);
+    }
+     
+    public int getHour() {
+	return calendar.get(Calendar.HOUR_OF_DAY);
+    }
+    
+    public int getMinute() {
+	return calendar.get(Calendar.MINUTE);
+    }
+
+
+    public int getSecond() {
+	return calendar.get(Calendar.SECOND);
+    }
+
+  
+    public int getEra() {
+	return calendar.get(Calendar.ERA);
+    }
+
+    public String getUSTimeZone() {
+	String[] zones = new String[] {"Hawaii", "Alaskan", "Pacific",
+				       "Mountain", "Central", "Eastern"};
+	
+	return zones[10 + getZoneOffset()];
+    }
+
+    public int getZoneOffset() {
+	return calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000);
+    }
+
+
+    public int getDSTOffset() {
+	return calendar.get(Calendar.DST_OFFSET)/(60*60*1000);
+    }
+
+    
+    public int getAMPM() {
+	return calendar.get(Calendar.AM_PM);
+    }
+}
+
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/cal/TableBean.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/TableBean.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/cal/TableBean.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/TableBean.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ *This software is the confidential and proprietary information of Sun
+ *Microsystems, Inc. ("Confidential Information").  You shall not
+ *disclose such Confidential Information and shall use it only in
+ *accordance with the terms of the license agreement you entered into
+ *with Sun.
+ *
+ *SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ *SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ *IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ *PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ *SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ *THIS SOFTWARE OR ITS DERIVATIVES.
+ */
+
+package cal;
+
+import java.beans.*;
+import javax.servlet.http.*;
+import javax.servlet.*;
+import java.util.Hashtable;
+
+public class TableBean {
+
+  Hashtable table;
+  JspCalendar JspCal;
+  Entries entries;
+  String date;
+  String name = null;
+  String email = null;
+  boolean processError = false;
+
+  public TableBean () {
+    this.table = new Hashtable (10);
+    this.JspCal = new JspCalendar ();
+    this.date = JspCal.getCurrentDate ();
+  }
+
+  public void setName (String nm) {
+    this.name = nm;
+  }
+
+  public String getName () {
+    return this.name;
+  }
+  
+  public void setEmail (String mail) {
+    this.email = mail;
+  }
+
+  public String getEmail () {
+    return this.email;
+  }
+
+  public String getDate () {
+    return this.date;
+  }
+
+  public Entries getEntries () {
+    return this.entries;
+  }
+
+  public void processRequest (HttpServletRequest request) {
+
+    // Get the name and e-mail.
+    this.processError = false;
+    if (name == null) setName(request.getParameter ("name"));  
+    if (email == null) setEmail(request.getParameter ("email"));
+    if (name == null || email == null) {
+      this.processError = true;
+      return;
+    }
+
+    // Get the date.
+    String dateR = request.getParameter ("date");
+    if (dateR == null) date = JspCal.getCurrentDate ();
+    else if (dateR.equalsIgnoreCase("next")) date = JspCal.getNextDate ();
+    else if (dateR.equalsIgnoreCase("prev")) date = JspCal.getPrevDate ();
+
+    entries = (Entries) table.get (date);
+    if (entries == null) {
+      entries = new Entries ();
+      table.put (date, entries);
+    }
+
+    // If time is provided add the event.
+	String time = request.getParameter("time");
+    if (time != null) entries.processRequest (request, time);
+  }
+
+  public boolean getProcessError () {
+    return this.processError;
+  }
+}
+
+
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/cal/cal1.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/cal1.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/cal/cal1.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/cal1.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,95 @@
+<HTML>
+<!--  
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ 
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+ 
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<HEAD><TITLE> 
+	Calendar: A JSP APPLICATION
+</TITLE></HEAD>
+
+
+<BODY BGCOLOR="white">
+
+<%@ page language="java" import="cal.*" %>
+<jsp:useBean id="table" scope="session" class="cal.TableBean" />
+
+<%
+	table.processRequest(request);
+	if (table.getProcessError() == false) {
+%>
+
+<!-- html table goes here -->
+<CENTER>
+<TABLE WIDTH=60% BGCOLOR=yellow CELLPADDING=15>
+<TR>
+<TD ALIGN=CENTER> <A HREF=cal1.jsp?date=prev> prev </A>
+<TD ALIGN=CENTER> Calendar:<%= table.getDate() %></TD>
+<TD ALIGN=CENTER> <A HREF=cal1.jsp?date=next> next </A>
+</TR>
+</TABLE>
+
+<!-- the main table -->
+<TABLE WIDTH=60% BGCOLOR=lightblue BORDER=1 CELLPADDING=10>
+<TR>
+<TH> Time </TH>
+<TH> Appointment </TH>
+</TR>
+<FORM METHOD=POST ACTION=cal1.jsp>
+<%
+	for(int i=0; i<table.getEntries().getRows(); i++) {
+	   cal.Entry entr = table.getEntries().getEntry(i);	
+%>
+	<TR>
+	<TD> 
+	<A HREF=cal2.jsp?time=<%= entr.getHour() %>>
+		<%= entr.getHour() %> </A>
+	</TD>
+	<TD BGCOLOR=<%= entr.getColor() %>>
+	<%= entr.getDescription() %>
+	</TD> 
+	</TR>
+<%
+	}
+%>
+</FORM>
+</TABLE>
+<BR>
+
+<!-- footer -->
+<TABLE WIDTH=60% BGCOLOR=yellow CELLPADDING=15>
+<TR>
+<TD ALIGN=CENTER>  <%= table.getName() %> : 
+		     <%= table.getEmail() %> </TD>
+</TR>
+</TABLE>
+</CENTER>
+
+<%
+	} else {
+%>
+<font size=5>
+	You must enter your name and email address correctly.
+</font>
+<%
+	}
+%>
+
+
+</BODY>
+</HTML>
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/cal/cal1.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/cal1.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/cal/cal1.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/cal1.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,95 @@
+<HTML>
+<!--  
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ 
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+ 
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<HEAD><TITLE> 
+	Calendar: A JSP APPLICATION
+</TITLE></HEAD>
+
+
+<BODY BGCOLOR="white">
+
+<%@ page language="java" import="cal.*" %>
+<jsp:useBean id="table" scope="session" class="cal.TableBean" />
+
+<%
+	table.processRequest(request);
+	if (table.getProcessError() == false) {
+%>
+
+<!-- html table goes here -->
+<CENTER>
+<TABLE WIDTH=60% BGCOLOR=yellow CELLPADDING=15>
+<TR>
+<TD ALIGN=CENTER> <A HREF=cal1.jsp?date=prev> prev </A>
+<TD ALIGN=CENTER> Calendar:<%= table.getDate() %></TD>
+<TD ALIGN=CENTER> <A HREF=cal1.jsp?date=next> next </A>
+</TR>
+</TABLE>
+
+<!-- the main table -->
+<TABLE WIDTH=60% BGCOLOR=lightblue BORDER=1 CELLPADDING=10>
+<TR>
+<TH> Time </TH>
+<TH> Appointment </TH>
+</TR>
+<FORM METHOD=POST ACTION=cal1.jsp>
+<%
+	for(int i=0; i<table.getEntries().getRows(); i++) {
+	   cal.Entry entr = table.getEntries().getEntry(i);	
+%>
+	<TR>
+	<TD> 
+	<A HREF=cal2.jsp?time=<%= entr.getHour() %>>
+		<%= entr.getHour() %> </A>
+	</TD>
+	<TD BGCOLOR=<%= entr.getColor() %>>
+	<%= entr.getDescription() %>
+	</TD> 
+	</TR>
+<%
+	}
+%>
+</FORM>
+</TABLE>
+<BR>
+
+<!-- footer -->
+<TABLE WIDTH=60% BGCOLOR=yellow CELLPADDING=15>
+<TR>
+<TD ALIGN=CENTER>  <%= table.getName() %> : 
+		     <%= table.getEmail() %> </TD>
+</TR>
+</TABLE>
+</CENTER>
+
+<%
+	} else {
+%>
+<font size=5>
+	You must enter your name and email address correctly.
+</font>
+<%
+	}
+%>
+
+
+</BODY>
+</HTML>
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/cal/cal2.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/cal2.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/cal/cal2.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/cal2.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,45 @@
+<HTML>
+<!--  
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ 
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+ 
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<HEAD><TITLE> 
+	Calendar: A JSP APPLICATION
+</TITLE></HEAD>
+
+
+<BODY BGCOLOR="white">
+<jsp:useBean id="table" scope="session" class="cal.TableBean" />
+
+<% 
+	String time = request.getParameter ("time");
+%>
+
+<FONT SIZE=5> Please add the following event:
+<BR> <h3> Date <%= table.getDate() %>
+<BR> Time <%= time %> </h3>
+</FONT>
+<FORM METHOD=POST ACTION=cal1.jsp>
+<BR> 
+<BR> <INPUT NAME="date" TYPE=HIDDEN VALUE="current">
+<BR> <INPUT NAME="time" TYPE=HIDDEN VALUE=<%= time %>
+<BR> <h2> Description of the event <INPUT NAME="description" TYPE=TEXT SIZE=20> </h2>
+<BR> <INPUT TYPE=SUBMIT VALUE="submit">
+</FORM>
+
+</BODY>
+</HTML>
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/cal/cal2.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/cal2.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/cal/cal2.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/cal2.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,45 @@
+<HTML>
+<!--  
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ 
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+ 
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<HEAD><TITLE> 
+	Calendar: A JSP APPLICATION
+</TITLE></HEAD>
+
+
+<BODY BGCOLOR="white">
+<jsp:useBean id="table" scope="session" class="cal.TableBean" />
+
+<% 
+	String time = request.getParameter ("time");
+%>
+
+<FONT SIZE=5> Please add the following event:
+<BR> <h3> Date <%= table.getDate() %>
+<BR> Time <%= time %> </h3>
+</FONT>
+<FORM METHOD=POST ACTION=cal1.jsp>
+<BR> 
+<BR> <INPUT NAME="date" TYPE=HIDDEN VALUE="current">
+<BR> <INPUT NAME="time" TYPE=HIDDEN VALUE=<%= time %>
+<BR> <h2> Description of the event <INPUT NAME="description" TYPE=TEXT SIZE=20> </h2>
+<BR> <INPUT TYPE=SUBMIT VALUE="submit">
+</FORM>
+
+</BODY>
+</HTML>
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/cal/calendar.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/calendar.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/cal/calendar.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/calendar.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,43 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="login.html"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h2> Source Code for Calendar Example. <br>
+<h3><a href="cal1.txt">cal1.jsp<font color="#0000FF"></a>
+  </font> </h3>
+<h3><a href="cal2.txt">cal2.jsp<font color="#0000FF"></a>
+  </font> </h3>
+
+<br>
+<h2> Beans.
+<h3><a href="TableBean.txt">TableBean<font color="#0000FF"></a>
+  </font> </h3>
+<h3><a href="Entries.txt">Entries<font color="#0000FF"></a>
+  </font> </h3>
+<h3><a href="Entry.txt">Entry<font color="#0000FF"></a>
+  </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/cal/login.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/login.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/cal/login.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/cal/login.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,47 @@
+<html>
+<!--  
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ 
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+ 
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+	<title> Login page for the calendar. </title>
+</head>
+
+<body bgcolor="white">
+<center>
+
+	<font size=7 color="red"> Please Enter the following information: </font>
+
+<br>
+	<form method=GET action=cal1.jsp>
+
+		<font size=5> Name <input type=text name="name" size=20>
+		</font>
+		<br>
+		<font size=5> Email <input type=text name="email" size=20>
+		</font>
+		<br>
+		<input type=submit name=action value="Submit">
+
+	</form>
+<hr>
+<font size=3 color="red"> Note: This application does not implement the complete 
+functionality of a typical calendar application. It demostartes a way JSP can be 
+used with html tables and forms.</font>
+
+</center>
+</body>
+</html>
Binary files /usr/ports/java/orion/work/orion/default-web-app/examples/images/code.gif and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/images/code.gif differ
Binary files /usr/ports/java/orion/work/orion/default-web-app/examples/images/execute.gif and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/images/execute.gif differ
Binary files /usr/ports/java/orion/work/orion/default-web-app/examples/images/return.gif and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/images/return.gif differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/Entries.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/Entries.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/Entries.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/Entries.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ *This software is the confidential and proprietary information of Sun
+ *Microsystems, Inc. ("Confidential Information").  You shall not
+ *disclose such Confidential Information and shall use it only in
+ *accordance with the terms of the license agreement you entered into
+ *with Sun.
+ *
+ *SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ *SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ *IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ *PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ *SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ *THIS SOFTWARE OR ITS DERIVATIVES.
+*/
+
+
+package cal;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import javax.servlet.http.*;
+
+public class Entries {
+
+  private Hashtable entries;
+  private static final String[] time = {"8am", "9am", "10am", "11am", "12pm", 
+					"1pm", "2pm", "3pm", "4pm", "5pm", "6pm",
+					"7pm", "8pm" };
+  public static final int rows = 12;
+
+  public Entries () {   
+   entries = new Hashtable (rows);
+   for (int i=0; i < rows; i++) {
+     entries.put (time[i], new Entry(time[i]));
+   }
+  }
+
+  public int getRows () {
+    return rows;
+  }
+
+  public Entry getEntry (int index) {
+    return (Entry)this.entries.get(time[index]);
+  }
+
+  public int getIndex (String tm) {
+    for (int i=0; i<rows; i++)
+      if(tm.equals(time[i])) return i;
+    return -1;
+  }
+
+  public void processRequest (HttpServletRequest request, String tm) {
+    int index = getIndex (tm);
+    if (index >= 0) {
+      String descr = request.getParameter ("description");
+      ((Entry)entries.get(time[index])).setDescription (descr);
+    }
+  }
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/Entry.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/Entry.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/Entry.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/Entry.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ *This software is the confidential and proprietary information of Sun
+ *Microsystems, Inc. ("Confidential Information").  You shall not
+ *disclose such Confidential Information and shall use it only in
+ *accordance with the terms of the license agreement you entered into
+ *with Sun.
+ *
+ *SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ *SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ *IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ *PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ *SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ *THIS SOFTWARE OR ITS DERIVATIVES.
+ */
+
+package cal;
+
+public class Entry {
+
+  String hour;
+  String description;
+  String color;
+
+  public Entry (String hour) {
+    this.hour = hour;
+    this.description = "";
+
+  }
+
+  public String getHour () {
+    return this.hour;
+  }
+
+  public String getColor () {
+    if (description.equals("")) return "lightblue";
+    else return "red";
+  }
+
+  public String getDescription () {
+    if (description.equals("")) return "None";
+    else return this.description;
+  }
+
+  public void setDescription (String descr) {
+    description = descr;
+  }
+ 
+}
+
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/JspCalendar.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/JspCalendar.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/JspCalendar.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/JspCalendar.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ *This software is the confidential and proprietary information of Sun
+ *Microsystems, Inc. ("Confidential Information").  You shall not
+ *disclose such Confidential Information and shall use it only in
+ *accordance with the terms of the license agreement you entered into
+ *with Sun.
+ *
+ *SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ *SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ *IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ *PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ *SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ *THIS SOFTWARE OR ITS DERIVATIVES.
+ */
+
+package cal;
+
+import java.text.DateFormat;
+import java.util.*;
+
+public class JspCalendar {
+    Calendar  calendar = null;
+    Date currentDate;
+
+    public JspCalendar() {
+	calendar = Calendar.getInstance();
+	Date trialTime = new Date();
+	calendar.setTime(trialTime);
+    }
+
+
+    public int getYear() {
+	return calendar.get(Calendar.YEAR);
+    }
+    
+    public String getMonth() {
+	int m = getMonthInt();
+	String[] months = new String [] { "January", "February", "March",
+					"April", "May", "June",
+					"July", "August", "September",
+					"October", "November", "December" };
+	if (m > 12)
+	    return "Unknown to Man";
+	
+	return months[m - 1];
+
+    }
+
+    public String getDay() {
+	int x = getDayOfWeek();
+	String[] days = new String[] {"Sunday", "Monday", "Tuesday", "Wednesday", 
+				      "Thursday", "Friday", "Saturday"};
+
+	if (x > 7)
+	    return "Unknown to Man";
+
+	return days[x - 1];
+
+    }
+    
+    public int getMonthInt() {
+	return 1 + calendar.get(Calendar.MONTH);
+    }
+
+    public String getDate() {
+	return getMonthInt() + "/" + getDayOfMonth() + "/" +  getYear();	
+    }
+
+    public String getCurrentDate() {
+        Date dt = new Date ();
+	calendar.setTime (dt);
+	return getMonthInt() + "/" + getDayOfMonth() + "/" +  getYear();
+
+    }
+
+    public String getNextDate() {
+        calendar.set (Calendar.DAY_OF_MONTH, getDayOfMonth() + 1);
+	return getDate ();
+    }
+
+    public String getPrevDate() {
+        calendar.set (Calendar.DAY_OF_MONTH, getDayOfMonth() - 1);
+	return getDate ();
+    }
+
+    public String getTime() {
+	return getHour() + ":" + getMinute() + ":" + getSecond();
+    }
+
+    public int getDayOfMonth() {
+	return calendar.get(Calendar.DAY_OF_MONTH);
+    }
+
+    public int getDayOfYear() {
+	return calendar.get(Calendar.DAY_OF_YEAR);
+    }
+
+    public int getWeekOfYear() {
+	return calendar.get(Calendar.WEEK_OF_YEAR);
+    }
+
+    public int getWeekOfMonth() {
+	return calendar.get(Calendar.WEEK_OF_MONTH);
+    }
+
+    public int getDayOfWeek() {
+	return calendar.get(Calendar.DAY_OF_WEEK);
+    }
+     
+    public int getHour() {
+	return calendar.get(Calendar.HOUR_OF_DAY);
+    }
+    
+    public int getMinute() {
+	return calendar.get(Calendar.MINUTE);
+    }
+
+
+    public int getSecond() {
+	return calendar.get(Calendar.SECOND);
+    }
+
+  
+    public int getEra() {
+	return calendar.get(Calendar.ERA);
+    }
+
+    public String getUSTimeZone() {
+	String[] zones = new String[] {"Hawaii", "Alaskan", "Pacific",
+				       "Mountain", "Central", "Eastern"};
+	
+	return zones[10 + getZoneOffset()];
+    }
+
+    public int getZoneOffset() {
+	return calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000);
+    }
+
+
+    public int getDSTOffset() {
+	return calendar.get(Calendar.DST_OFFSET)/(60*60*1000);
+    }
+
+    
+    public int getAMPM() {
+	return calendar.get(Calendar.AM_PM);
+    }
+}
+
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/TableBean.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/TableBean.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/TableBean.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/TableBean.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ *This software is the confidential and proprietary information of Sun
+ *Microsystems, Inc. ("Confidential Information").  You shall not
+ *disclose such Confidential Information and shall use it only in
+ *accordance with the terms of the license agreement you entered into
+ *with Sun.
+ *
+ *SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ *SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ *IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ *PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ *SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ *THIS SOFTWARE OR ITS DERIVATIVES.
+ */
+
+package cal;
+
+import java.beans.*;
+import javax.servlet.http.*;
+import javax.servlet.*;
+import java.util.Hashtable;
+
+public class TableBean {
+
+  Hashtable table;
+  JspCalendar JspCal;
+  Entries entries;
+  String date;
+  String name = null;
+  String email = null;
+  boolean processError = false;
+
+  public TableBean () {
+    this.table = new Hashtable (10);
+    this.JspCal = new JspCalendar ();
+    this.date = JspCal.getCurrentDate ();
+  }
+
+  public void setName (String nm) {
+    this.name = nm;
+  }
+
+  public String getName () {
+    return this.name;
+  }
+  
+  public void setEmail (String mail) {
+    this.email = mail;
+  }
+
+  public String getEmail () {
+    return this.email;
+  }
+
+  public String getDate () {
+    return this.date;
+  }
+
+  public Entries getEntries () {
+    return this.entries;
+  }
+
+  public void processRequest (HttpServletRequest request) {
+
+    // Get the name and e-mail.
+    this.processError = false;
+    if (name == null) setName(request.getParameter ("name"));  
+    if (email == null) setEmail(request.getParameter ("email"));
+    if (name == null || email == null) {
+      this.processError = true;
+      return;
+    }
+
+    // Get the date.
+    String dateR = request.getParameter ("date");
+    if (dateR == null) date = JspCal.getCurrentDate ();
+    else if (dateR.equalsIgnoreCase("next")) date = JspCal.getNextDate ();
+    else if (dateR.equalsIgnoreCase("prev")) date = JspCal.getPrevDate ();
+
+    entries = (Entries) table.get (date);
+    if (entries == null) {
+      entries = new Entries ();
+      table.put (date, entries);
+    }
+
+    // If time is provided add the event.
+	String time = request.getParameter("time");
+    if (time != null) entries.processRequest (request, time);
+  }
+
+  public boolean getProcessError () {
+    return this.processError;
+  }
+}
+
+
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal1.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal1.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal1.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal1.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,95 @@
+<HTML>
+<!--  
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ 
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+ 
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<HEAD><TITLE> 
+	Calendar: A JSP APPLICATION
+</TITLE></HEAD>
+
+
+<BODY BGCOLOR="white">
+
+<%@ page language="java" import="cal.*" %>
+<jsp:useBean id="table" scope="application" class="cal.TableBean" />
+
+<%
+	table.processRequest(request);
+	if (table.getProcessError() == false) {
+%>
+
+<!-- html table goes here -->
+<CENTER>
+<TABLE WIDTH=60% BGCOLOR=yellow CELLPADDING=15>
+<TR>
+<TD ALIGN=CENTER> <A HREF=cal1.jsp?date=prev> prev </A>
+<TD ALIGN=CENTER> Calendar:<%= table.getDate() %></TD>
+<TD ALIGN=CENTER> <A HREF=cal1.jsp?date=next> next </A>
+</TR>
+</TABLE>
+
+<!-- the main table -->
+<TABLE WIDTH=60% BGCOLOR=lightblue BORDER=1 CELLPADDING=10>
+<TR>
+<TH> Time </TH>
+<TH> Appointment </TH>
+</TR>
+<FORM METHOD=POST ACTION=cal1.jsp>
+<%
+	for(int i=0; i<table.getEntries().getRows(); i++) {
+	   cal.Entry entr = table.getEntries().getEntry(i);	
+%>
+	<TR>
+	<TD> 
+	<A HREF=cal2.jsp?time=<%= entr.getHour() %>>
+		<%= entr.getHour() %> </A>
+	</TD>
+	<TD BGCOLOR=<%= entr.getColor() %>>
+	<%= entr.getDescription() %>
+	</TD> 
+	</TR>
+<%
+	}
+%>
+</FORM>
+</TABLE>
+<BR>
+
+<!-- footer -->
+<TABLE WIDTH=60% BGCOLOR=yellow CELLPADDING=15>
+<TR>
+<TD ALIGN=CENTER>  <%= table.getName() %> : 
+		     <%= table.getEmail() %> </TD>
+</TR>
+</TABLE>
+</CENTER>
+
+<%
+	} else {
+%>
+<font size=5>
+	You must enter your name and email address correctly.
+</font>
+<%
+	}
+%>
+
+
+</BODY>
+</HTML>
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal1.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal1.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal1.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal1.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,95 @@
+<HTML>
+<!--  
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ 
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+ 
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<HEAD><TITLE> 
+	Calendar: A JSP APPLICATION
+</TITLE></HEAD>
+
+
+<BODY BGCOLOR="white">
+
+<%@ page language="java" import="cal.*" %>
+<jsp:useBean id="table" scope="application" class="cal.TableBean" />
+
+<%
+	table.processRequest(request);
+	if (table.getProcessError() == false) {
+%>
+
+<!-- html table goes here -->
+<CENTER>
+<TABLE WIDTH=60% BGCOLOR=yellow CELLPADDING=15>
+<TR>
+<TD ALIGN=CENTER> <A HREF=cal1.jsp?date=prev> prev </A>
+<TD ALIGN=CENTER> Calendar:<%= table.getDate() %></TD>
+<TD ALIGN=CENTER> <A HREF=cal1.jsp?date=next> next </A>
+</TR>
+</TABLE>
+
+<!-- the main table -->
+<TABLE WIDTH=60% BGCOLOR=lightblue BORDER=1 CELLPADDING=10>
+<TR>
+<TH> Time </TH>
+<TH> Appointment </TH>
+</TR>
+<FORM METHOD=POST ACTION=cal1.jsp>
+<%
+	for(int i=0; i<table.getEntries().getRows(); i++) {
+	   cal.Entry entr = table.getEntries().getEntry(i);	
+%>
+	<TR>
+	<TD> 
+	<A HREF=cal2.jsp?time="<%= entr.getHour() %>">
+		<%= entr.getHour() %> </A>
+	</TD>
+	<TD BGCOLOR=<%= entr.getColor() %>>
+	<%= entr.getDescription() %>
+	</TD> 
+	</TR>
+<%
+	}
+%>
+</FORM>
+</TABLE>
+<BR>
+
+<!-- footer -->
+<TABLE WIDTH=60% BGCOLOR=yellow CELLPADDING=15>
+<TR>
+<TD ALIGN=CENTER>  <%= table.getName() %> : 
+		     <%= table.getEmail() %> </TD>
+</TR>
+</TABLE>
+</CENTER>
+
+<%
+	} else {
+%>
+<font size=5>
+	You must enter your name and email address correctly.
+</font>
+<%
+	}
+%>
+
+
+</BODY>
+</HTML>
+
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal2.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal2.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal2.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal2.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,45 @@
+<HTML>
+<!--  
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ 
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+ 
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<HEAD><TITLE> 
+	Calendar: A JSP APPLICATION
+</TITLE></HEAD>
+
+
+<BODY BGCOLOR="white">
+<jsp:useBean id="table" scope="application" class="cal.TableBean" />
+
+<% 
+	String time = request.getParameter ("time");
+%>
+
+<FONT SIZE=5> Please add the following event:
+<BR> <h3> Date <%= table.getDate() %>
+<BR> Time <%= time %> </h3>
+</FONT>
+<FORM METHOD=POST ACTION=cal1.jsp>
+<BR> 
+<BR> <INPUT NAME="date" TYPE=HIDDEN VALUE="current">
+<BR> <INPUT NAME="time" TYPE=HIDDEN VALUE=<%= time %>
+<BR> <h2> Description of the event <INPUT NAME="description" TYPE=TEXT SIZE=20> </h2>
+<BR> <INPUT TYPE=SUBMIT VALUE="submit">
+</FORM>
+
+</BODY>
+</HTML>
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal2.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal2.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal2.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/cal2.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,45 @@
+<HTML>
+<!--  
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ 
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+ 
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<HEAD><TITLE> 
+	Calendar: A JSP APPLICATION
+</TITLE></HEAD>
+
+
+<BODY BGCOLOR="white">
+<jsp:useBean id="table" scope="application" class="cal.TableBean" />
+
+<% 
+	String time = request.getParameter ("time");
+%>
+
+<FONT SIZE=5> Please add the following event:
+<BR> <h3> Date <%= table.getDate() %>
+<BR> Time <%= time %> </h3>
+</FONT>
+<FORM METHOD=POST ACTION=cal1.jsp>
+<BR> 
+<BR> <INPUT NAME="date" TYPE=HIDDEN VALUE="current">
+<BR> <INPUT NAME="time" TYPE=HIDDEN VALUE=<%= time %>
+<BR> <h2> Description of the event <INPUT NAME="description" TYPE=TEXT SIZE=20> </h2>
+<BR> <INPUT TYPE=SUBMIT VALUE="submit">
+</FORM>
+
+</BODY>
+</HTML>
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/calendar.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/calendar.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/calendar.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/calendar.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,43 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="login.html"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h2> Source Code for Calendar Example. <br>
+<h3><a href="cal1.txt">cal1.jsp<font color="#0000FF"></a>
+  </font> </h3>
+<h3><a href="cal2.txt">cal2.jsp<font color="#0000FF"></a>
+  </font> </h3>
+
+<br>
+<h2> Beans.
+<h3><a href="TableBean.txt">TableBean<font color="#0000FF"></a>
+  </font> </h3>
+<h3><a href="Entries.txt">Entries<font color="#0000FF"></a>
+  </font> </h3>
+<h3><a href="Entry.txt">Entry<font color="#0000FF"></a>
+  </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/login.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/login.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/cal/login.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/cal/login.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,47 @@
+<html>
+<!--  
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+ 
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+ 
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+	<title> Login page for the calendar. </title>
+</head>
+
+<body bgcolor="white">
+<center>
+
+	<font size=7 color="red"> Please Enter the following information: </font>
+
+<br>
+	<form method=GET action=cal1.jsp>
+
+		<font size=5> Name <input type=text name="name" size=20>
+		</font>
+		<br>
+		<font size=5> Email <input type=text name="email" size=20>
+		</font>
+		<br>
+		<input type=submit name=action value="Submit">
+
+	</form>
+<hr>
+<font size=3 color="red"> Note: This application does not implement the complete 
+functionality of a typical calendar application. It demostartes a way JSP can be 
+used with html tables and forms.</font>
+
+</center>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/CheckTest.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/CheckTest.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/CheckTest.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/CheckTest.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,56 @@
+<HTML>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<HEAD>
+<title>
+checkbox.CheckTest Bean Properties
+</title>
+<BODY BGCOLOR="white">
+<H2>
+checkbox.CheckTest Bean Properties
+</H2>
+<HR>
+<DL>
+<DT>public class <B>CheckTest</B><DT>extends Object</DL>
+
+<P>
+<HR>
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0">
+<TR BGCOLOR="#EEEEFF">
+<TD COLSPAN=3><FONT SIZE="+2">
+<B>Properties Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white">
+<td align="right" valign="top" width="1%">
+<FONT SIZE="-1">
+String
+</FONT></TD>
+<TD><B>CheckTest:fruit</B>
+<BR>
+       </TD>
+<td width="1%">
+<FONT SIZE="-1">
+Multi
+</FONT></TD>
+</TABLE>
+<HR>
+</BODY>
+</HTML>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/check.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/check.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/check.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/check.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,38 @@
+<HTML>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<BODY bgcolor="white">
+
+
+<FORM TYPE=POST ACTION=checkresult.jsp>
+<BR>
+<font size=5 color="red">
+Check all Favorite fruits: <br>
+
+<input TYPE=checkbox name=fruit VALUE=apples> Apples <BR>
+<input TYPE=checkbox name=fruit VALUE=grapes> Grapes <BR>
+<input TYPE=checkbox name=fruit VALUE=oranges> Oranges <BR>
+<input TYPE=checkbox name=fruit VALUE=melons> Melons <BR>
+
+
+<br> <INPUT TYPE=submit name=submit Value="Submit">
+
+</font>
+</FORM>
+</BODY>
+</HTML>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/checkresult.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/checkresult.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/checkresult.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/checkresult.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,64 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+<font size=5 color="red">
+<%! String[] fruits; %>
+<jsp:useBean id="foo" scope="page" class="checkbox.CheckTest" />
+
+<jsp:setProperty name="foo" property="fruit" param="fruit" />
+<hr>
+The checked fruits (got using request) are: <br>
+<% 
+	fruits = request.getParameterValues("fruit");
+%>
+<ul>
+<%
+    if (fruits != null) {
+	  for (int i = 0; i < fruits.length; i++) {
+%>
+<li>
+<%
+	      out.println (fruits[i]);
+	  }
+	} else out.println ("none selected");
+%>
+</ul>
+<br>
+<hr>
+
+The checked fruits (got using beans) are <br>
+
+<% 
+		fruits = foo.getFruit();
+%>
+<ul>
+<%
+    if (!fruits[0].equals("1")) {
+	  for (int i = 0; i < fruits.length; i++) {
+%>
+<li>
+<%
+		  out.println (fruits[i]);
+	  }
+	} else out.println ("none selected");
+%>
+</ul>
+</font>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/checkresult.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/checkresult.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/checkresult.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/checkresult.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,64 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+<font size=5 color="red">
+<%! String[] fruits; %>
+<jsp:useBean id="foo" scope="page" class="checkbox.CheckTest" />
+
+<jsp:setProperty name="foo" property="Fruit" param="fruit" />
+<hr>
+The checked fruits (got using request) are: <br>
+<% 
+	fruits = request.getParameterValues("fruit");
+%>
+<ul>
+<%
+    if (fruits != null) {
+	  for (int i = 0; i < fruits.length; i++) {
+%>
+<li>
+<%
+	      out.println (fruits[i]);
+	  }
+	} else out.println ("none selected");
+%>
+</ul>
+<br>
+<hr>
+
+The checked fruits (got using beans) are <br>
+
+<% 
+		fruits = foo.getFruit();
+%>
+<ul>
+<%
+    if (!fruits[0].equals("1")) {
+	  for (int i = 0; i < fruits.length; i++) {
+%>
+<li>
+<%
+		  out.println (fruits[i]);
+	  }
+	} else out.println ("none selected");
+%>
+</ul>
+</font>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/cresult.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/cresult.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/cresult.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/checkbox/cresult.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,34 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="check.html"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="checkresult.txt">Source Code for Checkbox Example<font color="#0000FF"></a>
+  </font> </h3>
+
+<h3><a href="CheckTest.html">Property Sheet for CheckTest
+<font color="#0000FF"></a> </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/colors/ColorGameBean.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/colors/ColorGameBean.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/colors/ColorGameBean.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/colors/ColorGameBean.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,116 @@
+<HTML>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<HEAD>
+<title>
+colors.ColorGameBean Bean Properties
+</title>
+<BODY BGCOLOR="white">
+<H2>
+colors.ColorGameBean Bean Properties
+</H2>
+<HR>
+<DL>
+<DT>public class <B>ColorGameBean</B><DT>extends Object</DL>
+
+<P>
+<HR>
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0">
+<TR BGCOLOR="#EEEEFF">
+<TD COLSPAN=3><FONT SIZE="+2">
+<B>Properties Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white">
+<td align="right" valign="top" width="1%">
+<FONT SIZE="-1">
+String
+</FONT></TD>
+<TD><B>ColorGameBean:color2</B>
+<BR>
+       </TD>
+<td width="1%">
+<FONT SIZE="-1">
+Single
+</FONT></TD>
+<TR BGCOLOR="white">
+<td align="right" valign="top" width="1%">
+<FONT SIZE="-1">
+String
+</FONT></TD>
+<TD><B>ColorGameBean:color1</B>
+<BR>
+       </TD>
+<td width="1%">
+<FONT SIZE="-1">
+Single
+</FONT></TD>
+<TR BGCOLOR="white">
+<td align="right" valign="top" width="1%">
+<FONT SIZE="-1">
+int
+</FONT></TD>
+<TD><B>ColorGameBean:attempts</B>
+<BR>
+       </TD>
+<td width="1%">
+<FONT SIZE="-1">
+Single
+</FONT></TD>
+<TR BGCOLOR="white">
+<td align="right" valign="top" width="1%">
+<FONT SIZE="-1">
+boolean
+</FONT></TD>
+<TD><B>ColorGameBean:hint</B>
+<BR>
+       </TD>
+<td width="1%">
+<FONT SIZE="-1">
+Single
+</FONT></TD>
+<TR BGCOLOR="white">
+<td align="right" valign="top" width="1%">
+<FONT SIZE="-1">
+boolean
+</FONT></TD>
+<TD><B>ColorGameBean:success</B>
+<BR>
+       </TD>
+<td width="1%">
+<FONT SIZE="-1">
+Single
+</FONT></TD>
+<TR BGCOLOR="white">
+<td align="right" valign="top" width="1%">
+<FONT SIZE="-1">
+boolean
+</FONT></TD>
+<TD><B>ColorGameBean:hintTaken</B>
+<BR>
+       </TD>
+<td width="1%">
+<FONT SIZE="-1">
+Single
+</FONT></TD>
+</TABLE>
+<HR>
+</BODY>
+</HTML>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/colors/clr.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/colors/clr.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/colors/clr.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/colors/clr.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,34 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="colors.html"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="colors.txt">Source Code for Color Example<font color="#0000FF"></a>
+  </font> </h3>
+
+<h3><a href="ColorGameBean.html">Property Sheet for ColorGameBean
+<font color="#0000FF"></a> </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colors.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colors.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colors.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colors.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,47 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor= white>
+<font size=6 color=red>
+
+<hr>
+This web page is an example using JSP and BEANs. 
+<p>
+Guess my favorite two colors 
+
+<p> If you fail to guess both of them - you get yellow on red.
+
+<p> If you guess one of them right, either your foreground or 
+    your background will change to the color that was guessed right.
+
+<p> Guess them both right and your browser foreground/background 
+    will change to my two favorite colors to display this page.
+
+<hr>
+<form method=GET action=colrs.jsp>
+Color #1: <input type=text name= color1 size=16>
+<br>
+Color #2: <input type=text name= color2 size=16>
+<p>
+<input type=submit name=action value="Submit">
+<input type=submit name=action value="Hint">
+</form>
+
+</font>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colors.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colors.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colors.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colors.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,70 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<jsp:useBean id="cb" scope="session" class="colors.ColorGameBean" />
+<jsp:setProperty name="cb" property="*" />
+
+<%
+	cb.processRequest(request);
+%>
+
+<body bgcolor=<%= cb.getColor1() %>>
+<font size=6 color=<%= cb.getColor2() %>>
+<p>
+
+<% if (cb.getHint()==true) { %>
+	
+	<p> Hint #1: Vampires prey at night!
+	<p>  <p> Hint #2: Nancy without the n.
+
+<% } %>
+
+<% if  (cb.getSuccess()==true) { %>
+
+    <p> CONGRATULATIONS!!
+	<% if  (cb.getHintTaken()==true) { %>
+    
+        <p> ( although I know you cheated and peeked into the hints)
+
+	<% } %>
+
+<% } %>
+
+<p> Total attempts so far: <%= cb.getAttempts() %>
+<p>
+
+<p>
+
+<form method=POST action=colrs.jsp>
+
+Color #1: <input type=text name= color1 size=16>
+
+<br>
+
+Color #2: <input type=text name= color2 size=16>
+
+<p>
+
+<input type=submit name=action value="Submit">
+<input type=submit name=action value="Hint">
+
+</form>
+
+</font>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colrs.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colrs.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colrs.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/colors/colrs.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,70 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<jsp:useBean id="cb" scope="session" class="colors.ColorGameBean" />
+<jsp:setProperty name="cb" property="*" />
+
+<%
+	cb.processRequest(request);
+%>
+
+<body bgcolor=<%= cb.getColor1() %>>
+<font size=6 color=<%= cb.getColor2() %>>
+<p>
+
+<% if (cb.getHint()==true) { %>
+	
+	<p> Hint #1: Vampires prey at night!
+	<p>  <p> Hint #2: Nancy without the n.
+
+<% } %>
+
+<% if  (cb.getSuccess()==true) { %>
+
+    <p> CONGRATULATIONS!!
+	<% if  (cb.getHintTaken()==true) { %>
+    
+        <p> ( although I know you cheated and peeked into the hints)
+
+	<% } %>
+
+<% } %>
+
+<p> Total attempts so far: <%= cb.getAttempts() %>
+<p>
+
+<p>
+
+<form method=POST action=colrs.jsp>
+
+Color #1: <input type=text name= color1 size=16>
+
+<br>
+
+Color #2: <input type=text name= color2 size=16>
+
+<p>
+
+<input type=submit name=action value="Submit">
+<input type=submit name=action value="Hint">
+
+</form>
+
+</font>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,31 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="date.jsp"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="date.txt">Source Code for Date Example<font color="#0000FF"></a>
+  </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.jsp	Fri Jun  2 01:00:00 2000
@@ -0,0 +1,39 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+<jsp:useBean id='clock' scope='page' class='dates.JspCalendar' type="dates.JspCalendar" />
+
+<font size=4>
+<ul>
+<li>	Day of month: is  <jsp:getProperty name="clock" property="dayOfMonth"/>
+<li>	Year: is  <jsp:getProperty name="clock" property="year"/>
+<li>	Month: is  <jsp:getProperty name="clock" property="month"/>
+<li>	Time: is  <jsp:getProperty name="clock" property="time"/>
+<li>	Date: is  <jsp:getProperty name="clock" property="date"/>
+<li>	Day: is  <jsp:getProperty name="clock" property="day"/>
+<li>	Day Of Year: is  <jsp:getProperty name="clock" property="dayOfYear"/>
+<li>	Week Of Year: is  <jsp:getProperty name="clock" property="weekOfYear"/>
+<li>	era: is  <jsp:getProperty name="clock" property="era"/>
+<li>	DST Offset: is  <jsp:getProperty name="clock" property="DSTOffset"/>
+<li>	Zone Offset: is  <jsp:getProperty name="clock" property="zoneOffset"/>
+</ul>
+</font>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/dates/date.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,39 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+<jsp:useBean id='clock' scope='page' class='dates.JspCalendar' type="dates.JspCalendar" />
+
+<font size=4>
+<ul>
+<li>	Day of month: is  <jsp:getProperty name="clock" property="dayOfMonth"/>
+<li>	Year: is  <jsp:getProperty name="clock" property="year"/>
+<li>	Month: is  <jsp:getProperty name="clock" property="month"/>
+<li>	Time: is  <jsp:getProperty name="clock" property="time"/>
+<li>	Date: is  <jsp:getProperty name="clock" property="date"/>
+<li>	Day: is  <jsp:getProperty name="clock" property="day"/>
+<li>	Day Of Year: is  <jsp:getProperty name="clock" property="dayOfYear"/>
+<li>	Week Of Year: is  <jsp:getProperty name="clock" property="weekOfYear"/>
+<li>	era: is  <jsp:getProperty name="clock" property="era"/>
+<li>	DST Offset: is  <jsp:getProperty name="clock" property="dSTOffset"/>
+<li>	Zone Offset: is  <jsp:getProperty name="clock" property="zoneOffset"/>
+</ul>
+</font>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/error/er.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/error/er.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/error/er.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/error/er.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,31 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="error.html"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="err.txt">Source Code for Error Example<font color="#0000FF"></a>
+  </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/error/err.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/error/err.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/error/err.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/error/err.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,44 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<body bgcolor="lightblue">
+
+	<%@ page errorPage="errorpge.jsp" %>
+	<jsp:useBean id="foo" scope="request" class="error.Smart" />
+	<% 
+		String name = null;
+
+		if (request.getParameter("name") == null) {
+	%>
+	<%@ include file="/examples/jsp/error/error.html" %>
+	<%
+		} else {
+		  foo.setName(request.getParameter("name"));
+		  if (foo.getName().equalsIgnoreCase("integra"))
+		  	name = "acura";
+		  if (name.equalsIgnoreCase("acura")) {
+	%>
+
+	<H1> Yes!!! <a href="http://www.acura.com">Acura</a> is my favorite car.
+
+	<% 
+		  }
+		}	
+	%>	
+</body>
+</html>
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/error/err.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/error/err.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/error/err.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/error/err.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,44 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<body bgcolor="lightblue">
+
+	<%@ page errorPage="errorpge.jsp" %>
+	<jsp:useBean id="foo" scope="request" class="error.Smart" />
+	<% 
+		String name = null;
+
+		if (request.getParameter("name") == null) {
+	%>
+	<%@ include file="/examples/jsp/error/error.html" %>
+	<%
+		} else {
+		  foo.setName(request.getParameter("name"));
+		  if (foo.getName().equalsIgnoreCase("integra"))
+		  	name = "acura";
+		  if (name.equalsIgnoreCase("acura")) {
+	%>
+
+	<H1> Yes!!! <a href="http://www.acura.com">Acura</a> is my favorite car.
+
+	<% 
+		  }
+		}	
+	%>	
+</body>
+</html>
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/error/error.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/error/error.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/error/error.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/error/error.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,40 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+
+<h1> This example uses <b>errorpage</b> directive </h1>
+<br>
+<h3> Select my favourite car.</h3>
+<form method=get action=err.jsp>
+<!-- <br> Make a guess: -->
+<SELECT NAME="name" SIZE=5>
+<OPTION VALUE="integra"> Acura Integra <BR>
+<OPTION VALUE="bmw328i"> BMW 328I <BR>
+<OPTION VALUE="z3"> BMW Z3 <BR>
+<OPTION VALUE="infiniti"> InfinitiQ3 <BR>
+<OPTION VALUE="audi"> Audi A8 <BR>
+</SELECT>
+<br> <INPUT TYPE=submit name=submit Value="Submit">
+</form>
+
+</body>
+</html>
+
+
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/error/errorpge.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/error/errorpge.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/error/errorpge.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/error/errorpge.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,25 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="red">
+
+	<%@ page isErrorPage="true" %>
+	<h1> The exception <%= exception.getMessage() %> tells me you
+	     made a wrong choice. 
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/forward/forward.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/forward/forward.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/forward/forward.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/forward/forward.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,34 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<% 
+   double freeMem = Runtime.getRuntime().freeMemory();
+   double totlMem = Runtime.getRuntime().totalMemory();
+   double percent = freeMem/totlMem;
+   if (percent < 0.5) { 
+%>
+
+<jsp:forward page="/examples/jsp/forward/one.jsp"/>
+
+<% } else { %>
+
+<jsp:forward page="two.html"/>
+
+<% } %>
+
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/forward/forward.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/forward/forward.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/forward/forward.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/forward/forward.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,34 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<% 
+   double freeMem = Runtime.getRuntime().freeMemory();
+   double totlMem = Runtime.getRuntime().totalMemory();
+   double percent = freeMem/totlMem;
+   if (percent < 0.5) { 
+%>
+
+<jsp:forward page="/examples/jsp/forward/one.jsp"/>
+
+<% } else { %>
+
+<jsp:forward page="two.html"/>
+
+<% } %>
+
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/forward/fwd.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/forward/fwd.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/forward/fwd.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/forward/fwd.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,14 @@
+<html>
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="forward.jsp"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="forward.txt">Source Code for Forward Example<font color="#0000FF"></a>
+  </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/forward/one.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/forward/one.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/forward/one.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/forward/one.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,23 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+<font color="red">
+
+VM Memory usage < 50%.
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/forward/two.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/forward/two.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/forward/two.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/forward/two.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,23 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+<font color="red">
+
+VM Memory usage > 50%.
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/include/foo.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/include/foo.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/include/foo.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/include/foo.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1 @@
+To get the current time in ms
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/include/foo.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/include/foo.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/include/foo.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/include/foo.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,21 @@
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+<font color="red">
+
+<%= System.currentTimeMillis() %>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/include/inc.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/include/inc.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/include/inc.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/include/inc.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,14 @@
+<html>
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="include.jsp"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="include.txt">Source Code for Include Example<font color="#0000FF"></a>
+  </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/include/include.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/include/include.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/include/include.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/include/include.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,33 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+
+<font color="red">
+
+<p>In place evaluation of another JSP which gives you the current time:
+
+<%@ include file="foo.jsp" %>
+
+<p> <jsp:include page="/examples/jsp/include/foo.html" flush="true"/> by including the output of another JSP:
+
+<jsp:include page="foo.jsp" flush="true"/>
+
+:-) 
+
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/include/include.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/include/include.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/include/include.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/include/include.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,35 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+
+<font color="red">
+
+<%@ page buffer="5" autoFlush="false" %>
+
+<p>In place evaluation of another JSP which gives you the current time:
+
+<%@ include file="foo.jsp" %>
+
+<p> <jsp:include page="/examples/jsp/include/foo.html" flush="true"/> by including the output of another JSP:
+
+<jsp:include page="foo.jsp" flush="true"/>
+
+:-) 
+
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/index.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/index.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/index.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/index.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,130 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font face="Arial, Helvetica, sans-serif"><b><font size="+2">JSP Samples 
+  </font></b></font><br>
+</p>
+<p>This is a collection of samples demonstrates the usage of different
+  parts of the Java Server Pages (JSP) specification. </p>
+<p>These examples will only work when these pages are being served by the ServletRunner. 
+  They will not work if you are viewing these pages via a &quot;file://...&quot; 
+  URL.</p>
+<p>To navigate your way through the examples, the following icons will help:</p>
+<table border="0" width="85%" align="center" cellspacing="5">
+  <tr valign="top"> 
+    <td width="30"><img src="../images/execute.gif"></td>
+    <td>Execute the example</td>
+  </tr>
+  <tr valign="top"> 
+    <td width="30"><img src="../images/code.gif" width="24" height="24"></td>
+    <td>Look at the source code for the example</td>
+  </tr>
+  <tr valign="top"> 
+    <td width="30"><img src="../images/return.gif" width="24" height="24"></td>
+    <td>Return to this screen</td>
+  </tr>
+</table>
+<p>Tip: For session scoped beans to work, the cookies must be enabled. This can be 
+done using browser options.
+</p>
+
+
+<table border="0" width="85%" align="center" cellspacing="5">
+
+  <tr valign="top"> 
+    <td>Numberguess </td>
+    <td width="30%" valign="top"><a href="num/numguess.jsp"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="num/numguess.jsp">Execute</a></td>
+    <td width="30%"><a href="num/numguess.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="num/numguess.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>Date </td>
+    <td width="30%" valign="top"><a href="dates/date.jsp"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="dates/date.jsp">Execute</a></td>
+    <td width="30%"><a href="dates/date.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="dates/date.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>Snoop</td>
+    <td width="30%"><a href="snp/snoop.jsp"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="snp/snoop.jsp">Execute</a></td>
+    <td width="30%"><a href="snp/snoop.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="snp/snoop.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>ErrorPage </td>
+    <td width="30%"><a href="error/error.html"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="error/error.html">Execute</a></td>
+    <td width="30%"><a href="error/er.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="error/er.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>Carts </td>
+    <td width="30%" valign="top"><a href="sessions/carts.html"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="sessions/carts.html">Execute</a></td>
+    <td width="30%"><a href="sessions/crt.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="sessions/crt.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>Checkbox </td>
+    <td width="30%" valign="top"><a href="/checkbox/check.html"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="checkbox/check.html">Execute</a></td>
+    <td width="30%"><a href="colors/cresult.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="checkbox/cresult.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>Color </td>
+    <td width="30%" valign="top"><a href="/colors/colors.html"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="colors/colors.html">Execute</a></td>
+    <td width="30%"><a href="colors/clr.html.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="colors/clr.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>Calendar </td>
+    <td width="30%"><a href="cal/login.html"><img src="../images/execute.gif" hspace="4" border="0" align="top">Execute</a></td>
+    <td width="30%"><a href="cal/calendar.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="cal/calendar.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>Include </td>
+    <td width="30%" valign="top"><a href="/include/include.jsp"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="include/include.jsp">Execute</a></td>
+    <td width="30%"><a href="include/inc.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="include/inc.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>Forward </td>
+    <td width="30%" valign="top"><a href="forward/forward.jsp"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="forward/forward.jsp">Execute</a></td>
+    <td width="30%"><a href="forward/fwd.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="forward/fwd.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>Plugin </td>
+    <td width="30%" valign="top"><a href="plugin/plugin.jsp"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="plugin/plugin.jsp">Execute</a></td>
+    <td width="30%"><a href="plugin/plugin.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="plugin/plugin.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+    <td>JSP-Servlet-JSP </td>
+    <td width="30%" valign="top"><a href="jsptoserv/jsptoservlet.jsp"><img src="../images/execute.gif" hspace="4" border="0" align="top"></a><a href="jsptoserv/jsptoservlet.jsp">Execute</a></td>
+    <td width="30%"><a href="jsptoserv/jts.html"><img src="../images/code.gif" width="24" height="24" hspace="4" border="0" align="top"></a><a href="jsptoserv/jts.html">Source</a></td>
+  </tr>
+
+  <tr valign="top"> 
+</table>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/hello.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/hello.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/hello.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/hello.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,26 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<body bgcolor="white">
+
+<h1>
+I have been invoked by
+<% out.print (request.getAttribute("servletName").toString()); %>
+Servlet.
+</h1>
+
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jsptoservlet.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jsptoservlet.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jsptoservlet.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jsptoservlet.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,22 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<body bgcolor="white">
+
+<!-- Forward to a servlet -->
+<jsp:forward page="/servlet/ToJSPServlet" />
+
</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jts.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jts.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jts.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jts.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,34 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="jsptoservlet.jsp"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="jts.txt">Source Code for JSP calling servlet <font color="#0000FF"></a>
+  </font> </h3>
+
+<h3><a href="stj.txt">Source Code for Servlet calling JSP 
+<font color="#0000FF"></a> </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jts.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jts.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jts.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/jts.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,23 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<body bgcolor="white">
+
+<!-- Forward to a servlet -->
+<jsp:forward page="/servlet/servletToJsp" />
+
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/stj.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/stj.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/stj.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/jsptoserv/stj.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,17 @@
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+public class servletToJsp extends HttpServlet {
+
+    public void doGet (HttpServletRequest request,
+		       HttpServletResponse response) {
+
+	try {
+	    // Set the attribute and Forward to hello.jsp
+	    request.setAttribute ("servletName", "servletToJsp");
+	    getServletConfig().getServletContext().getRequestDispatcher("/examples/jsp/jsptoserv/hello.jsp").forward(request, response);
+	} catch (Exception ex) {
+	    ex.printStackTrace ();
+	}
+    }
+}
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,14 @@
+<html>
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="numguess.jsp"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="numguess.txt">Source Code for Numguess Example<font color="#0000FF"></a>
+  </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,54 @@
+<!--
+  Number Guess Game
+  Written by Jason Hunter <jasonh@kasoftware.com>, CTO, K&A Software
+  Copyright 1999, K&A Software, distributed by Sun with permission
+-->
+
+<%@ page import = "num.NumberGuessBean" %>
+
+<jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session"/>
+<jsp:setProperty name="numguess" property="*"/>
+
+<html>
+<head><title>Number Guess</title></head>
+<body bgcolor="white">
+<font size=4>
+
+<% if (numguess.getSuccess()) { %>
+
+  Congratulations!  You got it.
+  And after just <%= numguess.getNumGuesses() %> tries.<p>
+
+  <% numguess.reset(); %>
+
+  Care to <a href="numguess.jsp">try again</a>?
+
+<% } else if (numguess.getNumGuesses() == 0) { %>
+
+  Welcome to the Number Guess game.<p>
+
+  I'm thinking of a number between 1 and 100.<p>
+
+  <form method=get>
+  What's your guess? <input type=text name=guess>
+  <input type=submit value="Submit">
+  </form>
+
+<% } else { %>
+
+  Good guess, but nope.  Try <b><%= numguess.getHint() %></b>.
+
+  You have made <%= numguess.getNumGuesses() %> guesses.<p>
+
+  I'm thinking of a number between 1 and 100.<p>
+
+  <form method=get>
+  What's your guess? <input type=text name=guess>
+  <input type=submit value="Submit">
+  </form>
+
+<% } %>
+
+</font>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/num/numguess.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,54 @@
+<!--
+  Number Guess Game
+  Written by Jason Hunter <jasonh@kasoftware.com>, CTO, K&A Software
+  Copyright 1999, K&A Software, distributed by Sun with permission
+-->
+
+<%@ page import = "num.NumberGuessBean" %>
+
+<jsp:useBean id="numguess" class="num.NumberGuessBean" scope="session"/>
+<jsp:setProperty name="numguess" property="*"/>
+
+<html>
+<head><title>Number Guess</title></head>
+<body bgcolor="white">
+<font size=4>
+
+<% if (numguess.getSuccess()) { %>
+
+  Congratulations!  You got it.
+  And after just <%= numguess.getNumGuesses() %> tries.<p>
+
+  <% numguess.reset(); %>
+
+  Care to <a href="numguess.jsp">try again</a>?
+
+<% } else if (numguess.getNumGuesses() == 0) { %>
+
+  Welcome to the Number Guess game.<p>
+
+  I'm thinking of a number between 1 and 100.<p>
+
+  <form method=get>
+  What's your guess? <input type=text name=guess>
+  <input type=submit value="Submit">
+  </form>
+
+<% } else { %>
+
+  Good guess, but nope.  Try <b><%= numguess.getHint() %></b>.
+
+  You have made <%= numguess.getNumGuesses() %> guesses.<p>
+
+  I'm thinking of a number between 1 and 100.<p>
+
+  <form method=get>
+  What's your guess? <input type=text name=guess>
+  <input type=submit value="Submit">
+  </form>
+
+<% } %>
+
+</font>
+</body>
+</html>
Binary files /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/applet/Clock2.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/applet/Clock2.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/applet/Clock2.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/applet/Clock2.java
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/applet/Clock2.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/applet/Clock2.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,226 @@
+/*
+ * @(#)Clock2.java	1.5 98/07/13
+ *
+ * Copyright (c) 1997, 1998 Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use,
+ * modify and redistribute this software in source and binary code form,
+ * provided that i) this copyright notice and license appear on all copies of
+ * the software; and ii) Licensee does not utilize the software in a manner
+ * which is disparaging to Sun.
+ *
+ * This software is provided "AS IS," without a warranty of any kind. ALL
+ * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+ * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
+ * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE
+ * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
+ * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS
+ * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
+ * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
+ * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
+ * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGES.
+ *
+ * This software is not designed or intended for use in on-line control of
+ * aircraft, air traffic, aircraft navigation or aircraft communications; or in
+ * the design, construction, operation or maintenance of any nuclear
+ * facility. Licensee represents and warrants that it will not use or
+ * redistribute the Software for such purposes.
+ */
+
+import java.util.*;
+import java.awt.*;
+import java.applet.*;
+import java.text.*;
+
+/**
+ * Time!
+ *
+ * @author Rachel Gollub
+ */
+
+public class Clock2 extends Applet implements Runnable {
+    Thread timer;                // The thread that displays clock
+    int lastxs, lastys, lastxm,
+        lastym, lastxh, lastyh;  // Dimensions used to draw hands 
+    SimpleDateFormat formatter;  // Formats the date displayed
+    String lastdate;             // String to hold date displayed
+    Font clockFaceFont;          // Font for number display on clock
+    Date currentDate;            // Used to get date to display
+    Color handColor;             // Color of main hands and dial
+    Color numberColor;           // Color of second hand and numbers
+
+    public void init() {
+        int x,y;
+        lastxs = lastys = lastxm = lastym = lastxh = lastyh = 0;
+        formatter = new SimpleDateFormat ("EEE MMM dd hh:mm:ss yyyy", Locale.getDefault());
+        currentDate = new Date();
+        lastdate = formatter.format(currentDate);
+        clockFaceFont = new Font("Serif", Font.PLAIN, 14);
+        handColor = Color.blue;
+        numberColor = Color.darkGray;
+
+        try {
+            setBackground(new Color(Integer.parseInt(getParameter("bgcolor"),16)));
+        } catch (Exception E) { }
+        try {
+            handColor = new Color(Integer.parseInt(getParameter("fgcolor1"),16));
+        } catch (Exception E) { }
+        try {
+            numberColor = new Color(Integer.parseInt(getParameter("fgcolor2"),16));
+        } catch (Exception E) { }
+        resize(300,300);              // Set clock window size
+    }
+
+    // Plotpoints allows calculation to only cover 45 degrees of the circle,
+    // and then mirror
+    public void plotpoints(int x0, int y0, int x, int y, Graphics g) {
+        g.drawLine(x0+x,y0+y,x0+x,y0+y);
+        g.drawLine(x0+y,y0+x,x0+y,y0+x);
+        g.drawLine(x0+y,y0-x,x0+y,y0-x);
+        g.drawLine(x0+x,y0-y,x0+x,y0-y);
+        g.drawLine(x0-x,y0-y,x0-x,y0-y);
+        g.drawLine(x0-y,y0-x,x0-y,y0-x);
+        g.drawLine(x0-y,y0+x,x0-y,y0+x);
+        g.drawLine(x0-x,y0+y,x0-x,y0+y);
+    }
+
+    // Circle is just Bresenham's algorithm for a scan converted circle
+    public void circle(int x0, int y0, int r, Graphics g) {
+        int x,y;
+        float d;
+        x=0;
+        y=r;
+        d=5/4-r;
+        plotpoints(x0,y0,x,y,g);
+
+        while (y>x){
+            if (d<0) {
+                d=d+2*x+3;
+                x++;
+            }
+            else {
+                d=d+2*(x-y)+5;
+                x++;
+                y--;
+            }
+            plotpoints(x0,y0,x,y,g);
+        }
+    }
+
+    // Paint is the main part of the program
+    public void paint(Graphics g) {
+        int xh, yh, xm, ym, xs, ys, s = 0, m = 10, h = 10, xcenter, ycenter;
+        String today;
+
+        currentDate = new Date();
+        SimpleDateFormat formatter = new SimpleDateFormat("s",Locale.getDefault());
+        try {
+            s = Integer.parseInt(formatter.format(currentDate));
+        } catch (NumberFormatException n) {
+            s = 0;
+        }
+        formatter.applyPattern("m");
+        try {
+            m = Integer.parseInt(formatter.format(currentDate));
+        } catch (NumberFormatException n) {
+            m = 10;
+        }    
+        formatter.applyPattern("h");
+        try {
+            h = Integer.parseInt(formatter.format(currentDate));
+        } catch (NumberFormatException n) {
+            h = 10;
+        }
+        formatter.applyPattern("EEE MMM dd HH:mm:ss yyyy");
+        today = formatter.format(currentDate);
+        xcenter=80;
+        ycenter=55;
+    
+    // a= s* pi/2 - pi/2 (to switch 0,0 from 3:00 to 12:00)
+    // x = r(cos a) + xcenter, y = r(sin a) + ycenter
+    
+        xs = (int)(Math.cos(s * 3.14f/30 - 3.14f/2) * 45 + xcenter);
+        ys = (int)(Math.sin(s * 3.14f/30 - 3.14f/2) * 45 + ycenter);
+        xm = (int)(Math.cos(m * 3.14f/30 - 3.14f/2) * 40 + xcenter);
+        ym = (int)(Math.sin(m * 3.14f/30 - 3.14f/2) * 40 + ycenter);
+        xh = (int)(Math.cos((h*30 + m/2) * 3.14f/180 - 3.14f/2) * 30 + xcenter);
+        yh = (int)(Math.sin((h*30 + m/2) * 3.14f/180 - 3.14f/2) * 30 + ycenter);
+    
+    // Draw the circle and numbers
+    
+        g.setFont(clockFaceFont);
+        g.setColor(handColor);
+        circle(xcenter,ycenter,50,g);
+        g.setColor(numberColor);
+        g.drawString("9",xcenter-45,ycenter+3); 
+        g.drawString("3",xcenter+40,ycenter+3);
+        g.drawString("12",xcenter-5,ycenter-37);
+        g.drawString("6",xcenter-3,ycenter+45);
+
+    // Erase if necessary, and redraw
+    
+        g.setColor(getBackground());
+        if (xs != lastxs || ys != lastys) {
+            g.drawLine(xcenter, ycenter, lastxs, lastys);
+            g.drawString(lastdate, 5, 125);
+        }
+        if (xm != lastxm || ym != lastym) {
+            g.drawLine(xcenter, ycenter-1, lastxm, lastym);
+            g.drawLine(xcenter-1, ycenter, lastxm, lastym); }
+        if (xh != lastxh || yh != lastyh) {
+            g.drawLine(xcenter, ycenter-1, lastxh, lastyh);
+            g.drawLine(xcenter-1, ycenter, lastxh, lastyh); }
+        g.setColor(numberColor);
+        g.drawString("", 5, 125);
+        g.drawString(today, 5, 125);    
+        g.drawLine(xcenter, ycenter, xs, ys);
+        g.setColor(handColor);
+        g.drawLine(xcenter, ycenter-1, xm, ym);
+        g.drawLine(xcenter-1, ycenter, xm, ym);
+        g.drawLine(xcenter, ycenter-1, xh, yh);
+        g.drawLine(xcenter-1, ycenter, xh, yh);
+        lastxs=xs; lastys=ys;
+        lastxm=xm; lastym=ym;
+        lastxh=xh; lastyh=yh;
+        lastdate = today;
+        currentDate=null;
+    }
+
+    public void start() {
+        timer = new Thread(this);
+        timer.start();
+    }
+
+    public void stop() {
+        timer = null;
+    }
+
+    public void run() {
+        Thread me = Thread.currentThread();
+        while (timer == me) {
+            try {
+                Thread.currentThread().sleep(100);
+            } catch (InterruptedException e) {
+            }
+            repaint();
+        }
+    }
+
+    public void update(Graphics g) {
+        paint(g);
+    }
+
+    public String getAppletInfo() {
+        return "Title: A Clock \nAuthor: Rachel Gollub, 1995 \nAn analog clock.";
+    }
+  
+    public String[][] getParameterInfo() {
+        String[][] info = {
+            {"bgcolor", "hexadecimal RGB number", "The background color. Default is the color of your browser."},
+            {"fgcolor1", "hexadecimal RGB number", "The color of the hands and dial. Default is blue."},
+            {"fgcolor2", "hexadecimal RGB number", "The color of the seconds hand and numbers. Default is dark gray."}
+        };
+        return info;
+    }
+}
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,14 @@
+<html>
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="plugin.jsp"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="plugin.txt">Source Code for Plugin Example<font color="#0000FF"></a>
+  </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,33 @@
+<html>
+<!-- Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<title> Plugin example </title>
+<body bgcolor="white">
+<h3> Current time is : </h3>
+<jsp:plugin type="applet" code="Clock2.class" codebase="/examples/jsp/plugin/applet" jreversion="1.2" width="160" height="150" >
+    <jsp:fallback>
+        Plugin tag OBJECT or EMBED not supported by browser.
+    </jsp:fallback>
+</jsp:plugin>
+<p>
+<h4>
+<font color=red> 
+The above applet is loaded using the Java Plugin from a jsp page using the
+plugin tag.
+</font>
+</h4>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/plugin/plugin.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,33 @@
+<html>
+<!-- Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+<title> Plugin example </title>
+<body bgcolor="white">
+<h3> Current time is : </h3>
+<jsp:plugin type="applet" code="Clock2.class" codebase="/examples/jsp/plgin/applet" jreversion="1.2" width="160" height="150" >
+    <jsp:fallback>
+        Plugin tag OBJECT or EMBED not supported by browser.
+    </jsp:fallback>
+</jsp:plugin>
+<p>
+<h4>
+<font color=red> 
+The above applet is loaded using the Java Plugin from a jsp page using the
+plugin tag.
+</font>
+</h4>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/DummyCart.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/DummyCart.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/DummyCart.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/DummyCart.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,56 @@
+<HTML>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<HEAD>
+<title>
+sessions.DummyCart Bean Properties
+</title>
+<BODY BGCOLOR="white">
+<H2>
+sessions.DummyCart Bean Properties
+</H2>
+<HR>
+<DL>
+<DT>public class <B>DummyCart</B><DT>extends Object</DL>
+
+<P>
+<HR>
+
+<P>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0">
+<TR BGCOLOR="#EEEEFF">
+<TD COLSPAN=3><FONT SIZE="+2">
+<B>Properties Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white">
+<td align="right" valign="top" width="1%">
+<FONT SIZE="-1">
+String
+</FONT></TD>
+<TD><B>DummyCart:items</B>
+<BR>
+       </TD>
+<td width="1%">
+<FONT SIZE="-1">
+Multi
+</FONT></TD>
+</TABLE>
+<HR>
+</BODY>
+</HTML>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,53 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+    <title>carts</title>
+</head>
+
+ <body bgcolor="white">
+<font size = 5 color="#CC0000">
+
+<form type=POST action=carts.jsp>
+<BR>
+Please enter item to add or remove:
+<br>
+Add Item:
+
+<SELECT NAME="item">
+<OPTION>Beavis & Butt-head Video collection
+<OPTION>X-files movie
+<OPTION>Twin peaks tapes
+<OPTION>NIN CD
+<OPTION>JSP Book
+<OPTION>Concert tickets
+<OPTION>Love life
+<OPTION>Switch blade
+<OPTION>Rex, Rugs & Rock n' Roll
+</SELECT>
+
+
+<br> <br>
+<INPUT TYPE=submit name="submit" value="add">
+<INPUT TYPE=submit name="submit" value="remove">
+
+</form>
+       
+</FONT>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,44 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<jsp:useBean id="cart" scope="session" class="sessions.DummyCart" />
+
+<jsp:setProperty name="cart" property="*" />
+<%
+	cart.processRequest(request);
+%>
+
+
+<FONT size = 5 COLOR="#CC0000">
+<br> You have the following items in your cart:
+<ol>
+<% 
+	String[] items = cart.getItems();
+	for (int i=0; i<items.length; i++) {
+%>
+<li> <%= items[i] %> 
+<%
+	}
+%>
+</ol>
+
+</FONT>
+
+<hr>
+<%@ include file ="/examples/jsp/sessions/carts.html" %>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/carts.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,44 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<jsp:useBean id="cart" scope="session" class="sessions.DummyCart" />
+
+<jsp:setProperty name="cart" property="*" />
+<%
+	cart.processRequest(request);
+%>
+
+
+<FONT size = 5 COLOR="#CC0000">
+<br> You have the following items in your cart:
+<ol>
+<% 
+	String[] items = cart.getItems();
+	for (int i=0; i<items.length; i++) {
+%>
+<li> <%= items[i] %> 
+<%
+	}
+%>
+</ol>
+
+</FONT>
+
+<hr>
+<%@ include file ="/examples/jsp/sessions/carts.html" %>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/crt.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/crt.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/crt.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/sessions/crt.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,34 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="carts.html"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="carts.txt">Source Code for Cart Example<font color="#0000FF"></a>
+  </font> </h3>
+
+<h3><a href="DummyCart.html">Property Sheet for DummyCart
+<font color="#0000FF"></a> </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,31 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<head>
+<title>Untitled Document</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+</head>
+
+<body bgcolor="#FFFFFF">
+<p><font color="#0000FF"><a href="snoop.jsp"><img src="../../images/execute.gif" align="right" border="0"></a><a href="../index.html"><img src="../../images/return.gif" width="24" height="24" align="right" border="0"></a></font></p>
+
+<h3><a href="snoop.txt">Source Code for Request Parameters Example<font color="#0000FF"></a>
+  </font> </h3>
+
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,57 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+<h1> Request Information </h1>
+<font size="4">
+JSP Request Method: <jsp:expr>  request.getMethod() </jsp:expr>
+<br>
+Request URI: <jsp:expr> request.getRequestURI()  </jsp:expr>
+<br>
+Request Protocol: <jsp:expr> request.getProtocol() </jsp:expr>
+<br>
+
+Servlet path: <jsp:expr> request.getServletPath() </jsp:expr>
+<br>
+Path info: <jsp:expr> request.getPathInfo() </jsp:expr>
+<br>
+Path translated: <jsp:expr> request.getPathTranslated() </jsp:expr>
+<br>
+Query string: <jsp:expr> request.getQueryString() </jsp:expr>
+<br>
+Content length: <jsp:expr> request.getContentLength() </jsp:expr>
+<br>
+Content type: <jsp:expr> request.getContentType() </jsp:expr>
+<br>
+Server name: <jsp:expr> request.getServerName() </jsp:expr>
+<br>
+Server port: <jsp:expr> request.getServerPort() </jsp:expr>
+<br>
+Remote user: <jsp:expr> request.getRemoteUser() </jsp:expr>
+<br>
+Remote address: <jsp:expr> request.getRemoteAddr() </jsp:expr>
+<br>
+Remote host: <jsp:expr> request.getRemoteHost() </jsp:expr>
+<br>
+Authorization scheme: <jsp:expr> request.getAuthType() </jsp:expr> 
+<hr>
+The browser you are using is <jsp:expr> request.getHeader("User-Agent") </jsp:expr>
+<hr>
+</font>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/snp/snoop.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,57 @@
+<html>
+<!--
+  Copyright (c) 1999 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the confidential and proprietary information of Sun
+ Microsystems, Inc. ("Confidential Information").  You shall not
+ disclose such Confidential Information and shall use it only in
+ accordance with the terms of the license agreement you entered into
+ with Sun.
+
+ SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
+ SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
+ SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
+ THIS SOFTWARE OR ITS DERIVATIVES.
+-->
+
+<body bgcolor="white">
+<h1> Request Information </h1>
+<font size="4">
+JSP Request Method: <jsp:expr>  request.getMethod() </jsp:expr>
+<br>
+Request URI: <jsp:expr> request.getRequestURI()  </jsp:expr>
+<br>
+Request Protocol: <jsp:expr> request.getProtocol() </jsp:expr>
+<br>
+
+Servlet path: <jsp:expr> request.getServletPath() </jsp:expr>
+<br>
+Path info: <jsp:expr> request.getPathInfo() </jsp:expr>
+<br>
+Path translated: <jsp:expr> request.getPathTranslated() </jsp:expr>
+<br>
+Query string: <jsp:expr> request.getQueryString() </jsp:expr>
+<br>
+Content length: <jsp:expr> request.getContentLength() </jsp:expr>
+<br>
+Content type: <jsp:expr> request.getContentType() </jsp:expr>
+<br>
+Server name: <jsp:expr> request.getServerName() </jsp:expr>
+<br>
+Server port: <jsp:expr> request.getServerPort() </jsp:expr>
+<br>
+Remote user: <jsp:expr> request.getRemoteUser() </jsp:expr>
+<br>
+Remote address: <jsp:expr> request.getRemoteAddr() </jsp:expr>
+<br>
+Remote host: <jsp:expr> request.getRemoteHost() </jsp:expr>
+<br>
+Authorization scheme: <jsp:expr> request.getAuthType() </jsp:expr> 
+<hr>
+The browser you are using is <jsp:expr> request.getHeader("User-Agent") </jsp:expr>
+<hr>
+</font>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/META-INF/taglib.tld /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/META-INF/taglib.tld
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/META-INF/taglib.tld	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/META-INF/taglib.tld	Mon Apr 10 01:00:00 2000
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
+<taglib>
+	<tlibversion>1.0</tlibversion>
+	<jspversion>1.1</jspversion>
+	<shortname>test</shortname>
+
+	<urn>http://www.orionserver.com/examples/jsp/taglib/loop/looptags.jar</urn>
+	<info>A demo taglib with a simple loop tag.</info>
+
+	<tag>	
+		<name>loop</name>
+		<tagclass>taglib.LoopTag</tagclass>
+		<bodycontent>JSP</bodycontent>
+		<info>A demo loop tag</info>
+
+		<attribute>
+			<name>count</name>
+			<required>true</required>
+			<rtexprvalue>true</rtexprvalue>
+		</attribute>
+	</tag>
+</taglib>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/index.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/index.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/index.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/index.html	Mon Apr 10 01:00:00 2000
@@ -0,0 +1,19 @@
+<html>
+<head>
+<title>JSP 1.1 Examples - Loop Taglib</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="stylesheet" href="../../../../style.css"></head>
+
+<body bgcolor="#FFFFFF">
+<p class="title">JSP 1.1 Examples - Loop Taglib</p>
+<p><a href="looptag.jsp" class="menuitem"> JSP using the looptags taglib </a>. 
+  It shows the use of a basic taglib. <a href="looptag.jsp.txt" class="menuitem">Source 
+  to this JSP</a></p>
+
+<p>The LoopTag source can be found <a href="taglib/LoopTag.java" class="menuitem">here</a>.</p>
+<p>The taglib descriptor (TLD) can be found <a href="META-INF/taglib.tld" class="menuitem">here</a>.</p>
+<p>IE 5 might have problems displaying the sources since it desperatly wants to 
+  display them as HTML</p>
+<p>&nbsp; </p>
+</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/looptag.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/looptag.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/looptag.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/looptag.jsp	Mon Apr 10 01:00:00 2000
@@ -0,0 +1,18 @@
+<%@ page session="false" %>
+<%@ taglib uri="looptags.jar" prefix="test" %>
+
+<html>
+	<head>
+		<title>Loop TagLibrary example</title>
+	</head>
+<body>
+		This example shows how to use a simple loop-tag with dynamic attributes.<br>
+		<br>

		<% int x = 0; %>
+
+		<table border="2">
			<test:loop count="10">
+				<tr>
+					<test:loop count="<%=Math.random() * 10f%>">
						<td><%=x++%></td>
+					</test:loop>
				</tr>
+			</test:loop>
+		</table>	
		End...
+	</body>
</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/looptag.jsp.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/looptag.jsp.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/looptag.jsp.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/looptag.jsp.txt	Mon Apr 10 01:00:00 2000
@@ -0,0 +1,12 @@
+<%@ page session="false" %>
<%@ taglib uri="looptags.jar" prefix="test" %>
+
<html>
	<head>
		<title>Loop TagLibrary example</title>
	</head>
	
	<body>
+		This example shows how to use a simple loop-tag with dynamic attributes.<br>
+		<br>

		<% int x = 0; %>
+
+		<table border="2">
			<test:loop count="10">
+				<tr>
+					<test:loop count="<%=Math.random() * 10f%>">
						<td><%=x++%></td>
+					</test:loop>
				</tr>
+			</test:loop>
+		</table>	
		End...
+	</body>
</html>
Binary files /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/looptags.jar and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/looptags.jar differ
Binary files /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.class and /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.java /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.java
--- /usr/ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/jsp/taglib/loop/taglib/LoopTag.java	Mon Apr 10 01:00:00 2000
@@ -0,0 +1,52 @@
+package taglib;
+
+import javax.servlet.jsp.*;
+import javax.servlet.jsp.tagext.*;
+
+/**
+ * A simple loop tag.
+ */
+public class LoopTag extends BodyTagSupport
+{
+	private int count;
+	private int pos;
+
+	public void setCount(int count)
+	{
+		this.count = count;
+	}
+
+        public int doStartTag()
+	{
+		if(count > 0)
+	          return EVAL_BODY_TAG;
+		else
+		  return SKIP_BODY;
+        }
+
+	public int doAfterBody() throws JspException
+	{
+		// Iterate until the count's up
+		if(++pos < count)
+	        return EVAL_BODY_TAG;
+		else
+			return SKIP_BODY;
+    }
+	
+	public int doEndTag() throws JspException
+	{
+		pos = 0;
+
+		try
+		{
+			if(bodyContent != null) // Check if we even entered the body
+				bodyContent.writeOut(bodyContent.getEnclosingWriter());
+		}
+		catch(java.io.IOException e)
+		{
+			throw new JspException("IO Error: " + e.getMessage());
+		}
+		
+		return EVAL_PAGE;
+	}
+}
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/perl/helloworld.pl /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/perl/helloworld.pl
--- /usr/ports/java/orion/work/orion/default-web-app/examples/perl/helloworld.pl	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/perl/helloworld.pl	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,4 @@
+#!/usr/bin/perl
+print "Content-Type: text/html\n\n";
+
+print "<HTML><HEAD><TITLE>Perl testpage</TITLE><BODY>Hello World</BODY></HTML>";
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/perl/post.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/perl/post.html
--- /usr/ports/java/orion/work/orion/default-web-app/examples/perl/post.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/perl/post.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,9 @@
+<HTML>
+<HEAD></HEAD>
+<BODY>
+<FORM ACTION="post.pl" method="post">
+<INPUT TYPE="hidden" NAME="postparam1" VALUE="postvalue1">
+<INPUT NAME=Test TYPE=submit value="Skicka frga"> 
+</FORM>
+</BODY>
+</HTML>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/perl/post.pl /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/perl/post.pl
--- /usr/ports/java/orion/work/orion/default-web-app/examples/perl/post.pl	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/perl/post.pl	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,13 @@
+#!/usr/bin/perl
+print "Content-type: text/html\n\n<html><body><table border=0>";         
+
+read STDIN, $query, $ENV{'CONTENT_LENGTH'};
+print 'Post-Data: ' . $query;
+
+print "<HR>";
+
+for(keys %ENV)
+{
+	print "<tr><td>$_</td><td $c>\"$ENV{$_}\"</td></tr>";
+}
+print '</table>';
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/ssi/other.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/ssi/other.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/ssi/other.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/ssi/other.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,2 @@
+A small file
+with stuff in it
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/ssi/real.txt /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/ssi/real.txt
--- /usr/ports/java/orion/work/orion/default-web-app/examples/ssi/real.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/ssi/real.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1 @@
+A *real* file with stuff in it
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/ssi/ssi.shtml /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/ssi/ssi.shtml
--- /usr/ports/java/orion/work/orion/default-web-app/examples/ssi/ssi.shtml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/ssi/ssi.shtml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,45 @@
+<HTML>
+<HEAD>
+<TITLE>SSI Test</TITLE>
+</HEAD>
+<BODY>
+
+<!--# exec cgi="/examples/perl/helloworld.pl" -->
+<H1>FLASTMOD:</H1>
+other.txt was last changed: <!--# flastmod file="other.txt" --><BR>
+
+<H1>FSIZE:</H1>
+other.txt is this big: <!--# fsize file="other.txt" --><BR>
+
+<H1>ECHO:</H1>
+SERVER_NAME: <!--# echo var="SERVER_NAME" --><BR>
+SERVER_PORT: <!--# echo var="SERVER_PORT" --><BR>
+AUTH_TYPE: <!--# echo var="SERVER_PROTOCOL" --><BR>
+REMOTE_USER: <!--# echo var="REMOTE_USER" --><BR>
+REMOTE_ADDR: <!--# echo var="REMOTE_ADDR" --><BR>
+REMOTE_HOST: <!--# echo var="REMOTE_HOST" --><BR>
+HTTP_ACCEPT: <!--# echo var="HTTP_ACCEPT" --><BR>
+HTTP_USER_AGENT: <!--# echo var="HTTP_USER_AGENT" --><BR>
+SERVER_SOFTWARE: <!--# echo var="SERVER_SOFTWARE" --><BR>
+DATE_LOCAL: <!--# echo var="DATE_LOCAL" --><BR>
+DATE_GMT: <!--# echo var="DATE_GMT" --><BR>
+
+<BR>
+<HR>
+<BR>
+A small test...
+<!-- Test-comment -->
+Another small test... <BR>
+File:<BR>
+<HR>
+<PRE>
+<!--#include file="other.txt" -->
+</PRE>
+<HR>
+<PRE>
+<!--#include file="../ssi/real.txt" -->
+</PRE>
+<HR>
+A third small test...
+</BODY>
+</HTML>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/data.xml /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/data.xml
--- /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/data.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/data.xml	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,22 @@
+<?xml-stylesheet href="data.xsl" type="text/xsl"?>
+
+<sales>
+        <division id="North">
+                <revenue>10</revenue>
+                <growth>9</growth>
+                <bonus>7</bonus>
+        </division>
+
+        <division id="South">
+                <revenue>4</revenue>
+                <growth>3</growth>
+                <bonus>4</bonus>
+        </division>
+
+        <division id="West">
+                <revenue>6</revenue>
+                <growth>-1.5</growth>
+                <bonus>2</bonus>
+        </division>
+
+</sales>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/data.xsl /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/data.xsl
--- /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/data.xsl	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/data.xsl	Mon Apr 10 01:00:00 2000
@@ -0,0 +1,41 @@
+<html xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <head>
+	<title>Sales Results By Division</title>
+    </head>
+    <body>
+	<table border="1">
+	    <tr>
+		<th>Division</th>
+		<th>Revenue</th>
+		<th>Growth</th>
+		<th>Bonus</th>
+	    </tr>
+	    <xsl:for-each select="sales/division">
+		<!-- order the result by revenue -->
+		<xsl:sort select="revenue"
+			  data-type="number"
+			  order="descending"/>
+		<tr>
+		    <td>
+			<em><xsl:value-of select="@id"/></em>
+		    </td>
+		    <td>
+			<xsl:value-of select="revenue"/>
+		    </td>
+		    <td>
+			<!-- highlight negative growth in red -->
+			<xsl:if test="growth &lt; 0">
+			     <xsl:attribute name="style">
+				 <xsl:text>color:red</xsl:text>
+			     </xsl:attribute>
+			</xsl:if>
+			<xsl:value-of select="growth"/>
+		    </td>
+		    <td>
+			<xsl:value-of select="bonus"/>
+		    </td>
+		</tr>
+	    </xsl:for-each>
+	</table>
+    </body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/doc.dtd /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/doc.dtd
--- /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/doc.dtd	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/doc.dtd	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,7 @@
+<!ELEMENT doc (title, chapter*)>
+<!ELEMENT chapter (title, (para|note)*, section*)>
+<!ELEMENT section (title, (para|note)*)>
+<!ELEMENT title (#PCDATA|emph)*>
+<!ELEMENT para (#PCDATA|emph)*>
+<!ELEMENT note (#PCDATA|emph)*>
+<!ELEMENT emph (#PCDATA|emph)*>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/doc.jsp /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/doc.jsp
--- /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/doc.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/doc.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE doc SYSTEM "doc.dtd">
+<?xml-stylesheet href="doc.xsl" type="text/xsl"?>
+
+<doc>
+	<title>Document Title</title>
+	<chapter>
+		<title>Chapter Title</title>
+		<section>
+			<title>Section Title</title>
+			<para>This is a test.</para>
+			<note>This is a note.</note>
+			<%for(int i = 0; i < 10; i++) {%>
+			<note>The time is <%=new java.util.Date()%>.</note>
+			<%}%>
+		</section>
+		<section>
+			<title>Another Section Title</title>
+			<para>This is <emph>another</emph> test.</para>
+			<note>This is another note.</note>
+		</section>
+	</chapter>
+</doc>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/doc.xml /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/doc.xml
--- /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/doc.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/doc.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,19 @@
+<!DOCTYPE doc SYSTEM "doc.dtd">
+<?xml-stylesheet href="doc.xsl" type="text/xsl"?>
+
+<doc>
+	<title>Document Title</title>
+	<chapter>
+		<title>Chapter Title</title>
+		<section>
+			<title>Section Title</title>
+			<para>This is a test.</para>
+			<note>This is a note.</note>
+		</section>
+		<section>
+			<title>Another Section Title</title>
+			<para>This is <emph>another</emph> test.</para>
+			<note>This is another note.</note>
+		</section>
+	</chapter>
+</doc>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/doc.xsl /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/doc.xsl
--- /usr/ports/java/orion/work/orion/default-web-app/examples/xsl/doc.xsl	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/examples/xsl/doc.xsl	Mon Apr 10 01:00:00 2000
@@ -0,0 +1,55 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:strip-space elements="doc chapter section"/>
+<xsl:output method="xml" indent="yes"/>
+
+<xsl:template match="doc">
+ <html>
+   <head>
+     <title>
+       <xsl:value-of select="title"/>
+     </title>
+   </head>
+   <body bgcolor="#f0d0a0" text="#202040">
+     <xsl:apply-templates/>
+   </body>
+ </html>
+</xsl:template>
+
+<xsl:template match="doc/title">
+  <h1>
+    <xsl:apply-templates/>
+  </h1>
+</xsl:template>
+
+<xsl:template match="chapter/title">
+  <h2>
+    <xsl:apply-templates/>
+  </h2>
+</xsl:template>
+
+<xsl:template match="section/title">
+  <h3>
+    <xsl:apply-templates/>
+  </h3>
+</xsl:template>
+
+<xsl:template match="para">
+  <p>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="note">
+  <p class="note">
+    <b>NOTE: </b>
+    <xsl:apply-templates/>
+  </p>
+</xsl:template>
+
+<xsl:template match="emph">
+  <em>
+    <xsl:apply-templates/>
+  </em>
+</xsl:template>
+
+</xsl:stylesheet>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/default-web-app/index.html /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/index.html
--- /usr/ports/java/orion/work/orion/default-web-app/index.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/default-web-app/index.html	Tue Oct 10 23:29:00 2000
@@ -0,0 +1,33 @@
+<HTML>
+<HEAD>
+<TITLE>Orion Application Server</TITLE>
+<META name="description" content="Orion Application Server is a pure java full-featured application-server.">
+<META name="keywords" content="Web, Server, Web-server, Webserver, Java, Orion, JVM, servlet, JSP, Pure, servlet, HTTP, HTML, SSL">
+<META name="distribution" content="global">
+</HEAD>
+<BODY bgColor=#ffffff text=#000000 link=#101030 vlink=#202060>
+<p><i><font face="Arial, Helvetica, sans-serif" color="#808080"><B>Orion Application 
+  Server 1.4.0 - Up and running</B></font></i></p>
+<p><font face="Arial, Helvetica, sans-serif" size="-1">Reading this means that 
+  the server is now up and running and you can start deploying your applications!</font></p>
+<p><font face="Arial, Helvetica, sans-serif" size="-1"> For information e-mail 
+  <a href="mailto:info@orionserver.com">info@orionserver.com</a><br>
+  For sales and licensing, e-mail <a href="mailto:sales@orionserver.com">sales@orionserver.com</a><br>
+  For bug reporting, visit Bugzilla, <a href="http://www.orionserver.com/bugzilla">www.orionserver.com/bugzilla/</a><br>
+  </font></p>
+<p><font face="Arial, Helvetica, sans-serif" size="-1"> You can get the latest 
+  version and current info <A HREF="http://www.orionserver.com/" target="_parent">here</a>. 
+  </font></p>
+<p><font face="Arial, Helvetica, sans-serif" size="-1"> Browse the <A HREF="http://www.orionserver.com/docs/"
+target="_parent">documentation</A> or look at some of the <A href="/examples/jsp/" target="_parent">JSP 
+  examples</A>.</font></p>
+<p><font face="Arial, Helvetica, sans-serif" size="-1">If you haven't yet, remember 
+  to copy tools.jar to the orion/ root directory from your JDK install to enable 
+  using Sun's javac compiler.</font></p>
+<p><font face="Arial, Helvetica, sans-serif" size="-1"> Frequently asked questions 
+  can be found <A HREF="http://www.orionserver.com/faq/">here</A>.</font><BR>
+</p>
+<p><i><font face="Georgia, Times New Roman, Times, serif" size="-2">&copy;1998-2000 
+  Evermind Data</font></i></p>
+</BODY>
+</HTML>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/META-INF/application.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/META-INF/application.xml
--- /usr/ports/java/orion/work/orion/demo/ejb/META-INF/application.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/META-INF/application.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN" "http://java.sun.com/j2ee/dtds/application_1_2.dtd">
+
+<application>
+	<display-name>EJB samples</display-name>
+	<module>
+		<ejb>usermanager</ejb>
+	</module>
+	<module>
+		<ejb>product</ejb>
+	</module>
+	<module>
+		<ejb>cart</ejb>
+	</module>
+	<module>
+		<java>product</java>
+	</module>
+	<module>
+		<java>cart</java>
+	</module>
+</application>
Binary files /usr/ports/java/orion/work/orion/demo/ejb/cart/Cart.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/Cart.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/cart/Cart.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/Cart.java
--- /usr/ports/java/orion/work/orion/demo/ejb/cart/Cart.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/Cart.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,20 @@
+import java.util.*;
+import javax.ejb.*;
+import java.rmi.RemoteException;
+
+public interface Cart extends EJBObject
+{
+	/** Adds an item to the cart
+	 */
+	public void add(String item) throws RemoteException;
+	
+	/**
+	 * Gets the currently selected items
+	 */
+	public Collection getItems() throws RemoteException;
+	
+	/**
+	 * Removes an item from the cart
+	 */
+	public void remove(String name) throws NotInCartException, RemoteException;
+}
Binary files /usr/ports/java/orion/work/orion/demo/ejb/cart/CartClient.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/CartClient.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/cart/CartClient.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/CartClient.java
--- /usr/ports/java/orion/work/orion/demo/ejb/cart/CartClient.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/CartClient.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,61 @@
+import java.rmi.RemoteException;
+import javax.ejb.*;
+import javax.naming.*;
+import javax.rmi.PortableRemoteObject;
+/**
+ * A simple client for accessing a Cart.
+ */
+public class CartClient
+{
+	public static void main(String[] args)
+	{
+		try
+		{
+			/**
+			 * Create access to the naming context.
+			 */
+			Context context = new InitialContext();
+
+			/**
+			 * Lookup the CartHome object. The reference should be retrieved from the
+			 * application-local context (java:comp/env, the variable is
+			 * specified in the assembly descriptor; META-INF/application-client.xml)
+			 * but for simplicity we use a global variable.
+			 */
+			Object homeObject = context.lookup("java:comp/env/MyCart");
+
+			// Narrow the reference to a CartHome.
+			CartHome home = (CartHome)PortableRemoteObject.narrow(homeObject, CartHome.class);
+
+			// Create a new Cart and narrow the reference.
+			Cart cart = (Cart)PortableRemoteObject.narrow(home.create(), Cart.class);
+		
+			// Add some items to the Cart.
+			cart.add("Milk");
+			cart.add("Apples");
+			cart.add("Pizza");
+		
+			// Remove an item.
+			cart.remove("Apples");
+		
+			// Remove an unexistant item from the Cart, will generate a NotInCartException.
+			cart.remove("Oranges");
+		}
+		catch(RemoteException e)
+		{
+			System.err.println("System/communication error: " + e.getMessage());
+		}
+		catch(NamingException e)
+		{
+			System.err.println("Communication error: " + e.getMessage());
+		}
+		catch(CreateException e)
+		{
+			System.err.println("Error creating cart: " + e.getMessage());
+		}
+		catch(NotInCartException e)
+		{
+			System.err.println("Item not found in cart: " + e.getMessage());
+		}
+	}
+}
Binary files /usr/ports/java/orion/work/orion/demo/ejb/cart/CartEJB.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/CartEJB.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/cart/CartEJB.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/CartEJB.java
--- /usr/ports/java/orion/work/orion/demo/ejb/cart/CartEJB.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/CartEJB.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,84 @@
+import java.util.*;
+import javax.ejb.*;
+import java.rmi.RemoteException;
+
+/**
+ * An implementation of the Cart/CartHome interface. Note that the bean
+ * doesnt actually implement the interfaces since the container (middleware)
+ * wraps all access.
+ * 
+ * @author Magnus Stenman/The Orion team
+ */
+public class CartEJB implements SessionBean
+{
+	protected String user;
+	protected Collection items = new ArrayList();
+
+	/**
+	 * Creates a Cart with the default "Anonymous" user.
+	 */
+	public void ejbCreate()
+	{
+		this.user = "Anonymous";
+	}
+
+	/**
+	 * Creates a new Cart with user as owner.
+	 * 
+	 * @param user Owner of the Cart.
+	 */
+	public void ejbCreate(String user)
+	{
+		this.user = user;
+	}
+
+	public void add(String item)
+	{
+		// No need to synchronize, EJB access is always serialized
+		items.add(item);
+	}
+	
+	public void remove(String item) throws NotInCartException
+	{
+		// No need to synchronize, EJB access is always serialized
+		if(!items.remove(item))
+			throw new NotInCartException(item);
+	}
+
+	/**
+	 * Returns the items in the Cart.
+	 */
+	public Collection getItems()
+	{
+		return items;
+	}
+
+	/**
+	 * Called when the Session is activated.
+	 */
+	public void ejbActivate()
+	{
+	}
+	
+	/**
+	 * Called when the SessionBean is passivated due to
+	 * any form of timeout.
+	 */
+	public void ejbPassivate()
+	{
+	}
+
+	/**
+	 * Called when the SessionBean is invalidated.
+	 */
+	public void ejbRemove()
+	{
+	}
+
+	/**
+	 * Gives the bean access to it's context/environment.
+	 */
+	public void setSessionContext(SessionContext context)
+	{
+	}
+}
Binary files /usr/ports/java/orion/work/orion/demo/ejb/cart/CartHome.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/CartHome.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/cart/CartHome.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/CartHome.java
--- /usr/ports/java/orion/work/orion/demo/ejb/cart/CartHome.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/CartHome.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,10 @@
+import java.rmi.RemoteException;
+import javax.ejb.*;
+
+/**
+ * The home for the Carts, this is where new Carts are created.
+ */
+public interface CartHome extends EJBHome
+{
+	public Cart create() throws CreateException, RemoteException;
+}
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/cart/META-INF/MANIFEST.MF /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/META-INF/MANIFEST.MF
--- /usr/ports/java/orion/work/orion/demo/ejb/cart/META-INF/MANIFEST.MF	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/META-INF/MANIFEST.MF	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Main-Class: CartClient
+Name: "CartClient Demo"
+Created-By: 1.2 (Sun Microsystems Inc.)
+Specification-Vendor: "Evermind"
+Specification-Version: "1.0.0"
+Implementation-Vendor: "Evermind"
+Implementation-Version: "1.0.0"
+Implementation-Title: "CartClient"
+Class-Path: orion.jar
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/cart/META-INF/application-client.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/META-INF/application-client.xml
--- /usr/ports/java/orion/work/orion/demo/ejb/cart/META-INF/application-client.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/META-INF/application-client.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!DOCTYPE application-client PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.2//EN" "http://java.sun.com/j2ee/dtds/application-client_1_2.dtd">
+<application-client>
+	<ejb-ref>
+		<ejb-ref-name>MyCart</ejb-ref-name>
+		<ejb-ref-type>Session</ejb-ref-type>
+		<home>CartHome</home>
+		<remote>Cart</remote>
+	</ejb-ref>
+</application-client>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/cart/META-INF/ejb-jar.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/META-INF/ejb-jar.xml
--- /usr/ports/java/orion/work/orion/demo/ejb/cart/META-INF/ejb-jar.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/META-INF/ejb-jar.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.2//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_2.dtd">
+
+<ejb-jar>
+	<display-name>A simple cart jar</display-name>
+	<description>A demo cart bean package.</description>
+	<enterprise-beans>
+		<session>
+			<display-name>Shopping Cart</display-name>
+			<description>A simple shopping cart.</description>
+			<ejb-name>MyCart</ejb-name>
+			<home>CartHome</home>
+			<remote>Cart</remote>
+			<ejb-class>CartEJB</ejb-class>
+			<session-type>Stateful</session-type>
+			<transaction-type>Container</transaction-type>
		</session>
+	</enterprise-beans>
+	<assembly-descriptor>
+	</assembly-descriptor>
+</ejb-jar>
Binary files /usr/ports/java/orion/work/orion/demo/ejb/cart/NotInCartException.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/NotInCartException.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/cart/NotInCartException.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/NotInCartException.java
--- /usr/ports/java/orion/work/orion/demo/ejb/cart/NotInCartException.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/NotInCartException.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,10 @@
+/**
+ * Thrown when a user tries to remove an item from the cart that isnt there.
+ */
+public class NotInCartException extends Exception
+{
+	public NotInCartException(String name)
+	{
+		super(name);
+	}
+}
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/cart/jndi.properties /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/jndi.properties
--- /usr/ports/java/orion/work/orion/demo/ejb/cart/jndi.properties	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/jndi.properties	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,4 @@
+java.naming.factory.initial=com.evermind.server.ApplicationClientInitialContextFactory
+java.naming.provider.url=ormi://localhost/ejbsamples
+java.naming.security.principal=admin
+java.naming.security.credentials=123
Binary files /usr/ports/java/orion/work/orion/demo/ejb/cart/orion-cart.jar and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/cart/orion-cart.jar differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/install.txt /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/install.txt
--- /usr/ports/java/orion/work/orion/demo/ejb/install.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/install.txt	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,38 @@
+1. General setup
+1.1. Copy tools.jar from my/jdk/lib/tools.jar to the /orion directory
+(needed for EJB and JSP compilation).
+
+1.2. For the product and usermanager EJB to deploy correctly you need an
+installed data-source, info on how to install one can be found in
+docs/data-sources-howto.txt.
+
+1.3. To install the EJB-samples add the following tag to config/server.xml
+between the <application-server> and the </application-server> tag:
+<application name="ejbsamples" path="../demo/ejb" />
+
+1.4. For remote RMI access you also need to activate the admin user account,
+this is done by removing deactivated="true" on the admin user config
+in principals.xml.
+
+
+2. Running the cart-client:
+2.1. Make sure Orion is up and running.
+
+2.2. Change directory to the demo/ejb/cart directory.
+
+2.3. Start the client by typing:
+java -classpath ../../../orion.jar;../../../ejb.jar;../../../jndi.jar;. CartClient
+(use ':' insted of ';' as path-separator on UNIX)
+
+
+3. Running the product-client:
+3.1. Same steps as above but with 'product' instead of 'cart'.
+
+4. Installing the EJBUserManager:
+
+4.1. Add the following to META-INF/orion-application.xml:
+	<user-manager class="com.evermind.ejb.EJBUserManager">
+		<property name="home" value="com.evermind.ejb.EJBUser" />
+		<property name="defaultGroups" value="users" />
+	</user-manager>
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/product/META-INF/MANIFEST.MF /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/META-INF/MANIFEST.MF
--- /usr/ports/java/orion/work/orion/demo/ejb/product/META-INF/MANIFEST.MF	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/META-INF/MANIFEST.MF	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Main-Class: ProductClient
+Name: "CartClient Demo"
+Created-By: 1.2 (Sun Microsystems Inc.)
+Specification-Vendor: "Evermind"
+Specification-Version: "1.0.0"
+Implementation-Vendor: "Evermind"
+Implementation-Version: "1.0.0"
+Implementation-Title: "ProductClient"
+Class-Path: orion.jar
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/product/META-INF/application-client.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/META-INF/application-client.xml
--- /usr/ports/java/orion/work/orion/demo/ejb/product/META-INF/application-client.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/META-INF/application-client.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!DOCTYPE application-client PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.2//EN" "http://java.sun.com/j2ee/dtds/application-client_1_2.dtd">
+<application-client>
+	<ejb-ref>
+		<ejb-ref-name>MyProduct</ejb-ref-name>
+		<ejb-ref-type>Entity</ejb-ref-type>
+		<home>ProductHome</home>
+		<remote>Product</remote>
+	</ejb-ref>
+</application-client>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/product/META-INF/ejb-jar.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/META-INF/ejb-jar.xml
--- /usr/ports/java/orion/work/orion/demo/ejb/product/META-INF/ejb-jar.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/META-INF/ejb-jar.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.2//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_2.dtd">
+
+<ejb-jar>
+	<description>
+	</description>
+	<enterprise-beans>
+		<entity>
+			<description>
+			</description>
+			<ejb-name>MyProduct</ejb-name>
+			<home>ProductHome</home>
+			<remote>Product</remote>
+			<ejb-class>ProductEJB</ejb-class>
+			<primkey-class>java.lang.Integer</primkey-class>
+			<reentrant>True</reentrant>
+			<persistence-type>Container</persistence-type>
+			<cmp-field><field-name>id</field-name></cmp-field>
+			<cmp-field><field-name>name</field-name></cmp-field>
+			<cmp-field><field-name>description</field-name></cmp-field>
+			<cmp-field><field-name>price</field-name></cmp-field>
+			<primkey-field>id</primkey-field>
+		</entity>
+	</enterprise-beans>
+	<assembly-descriptor>
+		<container-transaction>
+			<method>
+				<ejb-name>Product</ejb-name>
+				<method-name>*</method-name>
+			</method>
+			<trans-attribute>NotSupported</trans-attribute>
+		</container-transaction>
+	</assembly-descriptor>
+</ejb-jar>
Binary files /usr/ports/java/orion/work/orion/demo/ejb/product/Product.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/Product.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/product/Product.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/Product.java
--- /usr/ports/java/orion/work/orion/demo/ejb/product/Product.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/Product.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,19 @@
+import java.rmi.RemoteException;
+import javax.ejb.*;
+
+public interface Product extends EJBObject
+{
+	public int getId() throws RemoteException;
+
+	public String getName() throws RemoteException;
+
+	public void setName(String value) throws RemoteException;
+
+	public String getDescription() throws RemoteException;
+
+	public void setDescription(String value) throws RemoteException;
+
+	public float getPrice() throws RemoteException;
+
+	public void setPrice(float value) throws RemoteException;
+}
Binary files /usr/ports/java/orion/work/orion/demo/ejb/product/ProductClient.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductClient.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/product/ProductClient.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductClient.java
--- /usr/ports/java/orion/work/orion/demo/ejb/product/ProductClient.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductClient.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,72 @@
+import java.rmi.RemoteException;
+import javax.ejb.*;
+import javax.naming.*;
+import javax.rmi.PortableRemoteObject;
+import java.io.*;
+/**
+ * A simple client for accessing a Cart.
+ */
+public class ProductClient
+{
+	public static void main(String[] args)
+	{
+		try
+		{
+			/**
+			 * Create access to the naming context.
+			 */
+			Context context = new InitialContext();
+
+			/**
+			 * Lookup the ProductHome object. The reference is retrieved from the
+			 * application-local context (java:comp/env). The variable is
+			 * specified in the assembly descriptor (META-INF/application-client.xml).
+			 */
+			Object homeObject = context.lookup("java:comp/env/MyProduct");
+
+			// Narrow the reference to a ProductHome.
+			ProductHome home = (ProductHome)PortableRemoteObject.narrow(homeObject, ProductHome.class);
+
+			BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
+
+			System.out.print("Enter the id (integer) of the product you want to add: ");
+			System.out.flush();
+			int id = Integer.parseInt(in.readLine());
+
+			System.out.print("Enter the name for item " + id + ": ");
+			System.out.flush();
+			String name = in.readLine();
+
+			System.out.print("Enter the cost for " + name + ": ");
+			System.out.flush();
+			float cost = Float.parseFloat(in.readLine());
+
+			// Create a new Product and narrow the reference.
+			Product product = (Product)PortableRemoteObject.narrow(home.create(id), Product.class);
+			product.setName(name);
+			product.setPrice(cost);
+			
+			System.out.println("Product added");
+		}
+		catch(NumberFormatException e)
+		{
+			System.err.println("Invalid number specified");
+		}
+		catch(RemoteException e)
+		{
+			System.err.println("System/communication error: " + e.getMessage());
+		}
+		catch(IOException e)
+		{
+			System.err.println("IO Error: " + e.getMessage());
+		}
+		catch(NamingException e)
+		{
+			System.err.println("Communication error: " + e.getMessage());
+		}
+		catch(CreateException e)
+		{
+			System.err.println("Error creating cart: " + e.getMessage());
+		}
+	}
+}
Binary files /usr/ports/java/orion/work/orion/demo/ejb/product/ProductEJB.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductEJB.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/product/ProductEJB.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductEJB.java
--- /usr/ports/java/orion/work/orion/demo/ejb/product/ProductEJB.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductEJB.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,86 @@
+import javax.ejb.*;
+
+public class ProductEJB implements EntityBean
+{
+	protected EntityContext context;
+
+	public int id;
+	public String name;
+	public String description;
+	public float price;
+
+	public int getId()
+	{
+		return id;
+	}
+
+	public String getName()
+	{
+		return name;
+	}
+
+	public void setName(String value)
+	{
+		this.name = value;
+	}
+
+	public String getDescription()
+	{
+		return description;
+	}
+
+	public void setDescription(String value)
+	{
+		this.description = value;
+	}
+
+	public float getPrice()
+	{
+		return price;
+	}
+
+	public void setPrice(float value)
+	{
+		this.price = value;
+	}
+
+	public void ejbLoad()
+	{
+	}
+
+	public void ejbStore()
+	{
+	}
+
+	public void ejbActivate()
+	{
+	}
+
+	public void ejbPassivate()
+	{
+	}
+
+	public void ejbRemove()
+	{
+	}
+
+	public void setEntityContext(EntityContext context)
+	{
+		this.context = context;
+	}
+
+	public void unsetEntityContext()
+	{
+		this.context = null;
+	}
+
+	public java.lang.Integer ejbCreate(int id) throws CreateException
+	{
+		this.id = id;
+		return null; // Return null when using CMP
+	}
+
+	public void ejbPostCreate(int id)
+	{
+	}
+}
Binary files /usr/ports/java/orion/work/orion/demo/ejb/product/ProductHome.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductHome.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/product/ProductHome.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductHome.java
--- /usr/ports/java/orion/work/orion/demo/ejb/product/ProductHome.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductHome.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,10 @@
+import java.util.Collection;
import javax.ejb.*;
+import java.rmi.RemoteException;
+
+public interface ProductHome extends EJBHome
+{
+	public Product create(int id) throws CreateException, RemoteException;
+
+	public Product findByPrimaryKey(int key) throws RemoteException, FinderException;
+
	public Collection findAll() throws RemoteException, FinderException;
+}
Binary files /usr/ports/java/orion/work/orion/demo/ejb/product/ProductServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/product/ProductServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductServlet.java
--- /usr/ports/java/orion/work/orion/demo/ejb/product/ProductServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/ProductServlet.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,67 @@
+import java.util.*;
+import java.io.IOException;
+import java.rmi.RemoteException;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.ejb.*;
+import javax.naming.*;
+import javax.rmi.PortableRemoteObject;
+
+public class ProductServlet extends HttpServlet
+{
+	ProductHome home;
+
+	public void init() throws ServletException
+	{
+		try
+		{
+			Context context = new InitialContext();		
+			home = (ProductHome)PortableRemoteObject.narrow(context.lookup("MyProduct"), ProductHome.class);
+		}
+		catch(NamingException e)
+		{
+			throw new ServletException("Error looking up home", e);
+		}		
+	}
+
+	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
+	{
+		response.setContentType("text/html");
+		ServletOutputStream out = response.getOutputStream();
+
+		try
+		{
+			Collection products = home.findAll();
+
+			out.println("<html>");
+			out.println("\t<head><title>My products</title></head>");
+			out.println("\t<body>");
+			out.println("\t\t<table border=\"2\">");
+			out.println("\t\t\t<tr><td><b>Name</b></td><td><b>Price</b></td></tr>");
+		
+			Iterator iterator = products.iterator();
+		
+			while(iterator.hasNext())
+			{
+				Product product = (Product)PortableRemoteObject.narrow(iterator.next(), Product.class);
+				out.println("\t\t\t<tr><td>" + product.getName() + "</td><td>" + product.getPrice() + "</td></tr>");
+			}
+
+			out.println("\t\t</table>");
+			out.println("\t</body>");
+			out.println("</html>");	
+		}
+		catch(RemoteException e)
+		{
+			out.println("Error communicating with EJB-server: " + e.getMessage());
+		}
+		catch(FinderException e)
+		{
+			out.println("Error finding products: " + e.getMessage());
+		}
+		finally
+		{
+			out.close();
+		}
+	}
+}
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/product/jndi.properties /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/jndi.properties
--- /usr/ports/java/orion/work/orion/demo/ejb/product/jndi.properties	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/jndi.properties	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,4 @@
+java.naming.factory.initial=com.evermind.server.ApplicationClientInitialContextFactory
+java.naming.provider.url=ormi://localhost/ejbsamples
+java.naming.security.principal=admin
+java.naming.security.credentials=123
Binary files /usr/ports/java/orion/work/orion/demo/ejb/product/orion-product.jar and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/orion-product.jar differ
Binary files /usr/ports/java/orion/work/orion/demo/ejb/product/product.skeleton and /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/product/product.skeleton differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ejb/usermanager/META-INF/ejb-jar.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/usermanager/META-INF/ejb-jar.xml
--- /usr/ports/java/orion/work/orion/demo/ejb/usermanager/META-INF/ejb-jar.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ejb/usermanager/META-INF/ejb-jar.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.2//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_2.dtd">
+
+<ejb-jar>
+	<display-name>EJBUser Archive</display-name>
+	<description>An archive containing a demo user-management setup via the EJBUser interface...</description>
+	<enterprise-beans>
+		<entity>
+			<display-name>EJBUser</display-name>
+			<description>EJBUser management....</description>
+			<ejb-name>com.evermind.ejb.EJBUser</ejb-name>
+			<home>com.evermind.ejb.EJBUserHome</home>
+			<remote>com.evermind.ejb.EJBUser</remote>
+			<ejb-class>com.evermind.ejb.EJBUserBean</ejb-class>
+			<persistence-type>Container</persistence-type>
+			<primkey-class>java.lang.String</primkey-class>
+			<reentrant>False</reentrant>
+			<cmp-field>
+				<field-name>username</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>password</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>description</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>locale</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>certificateIssuerDN</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>certificateSerial</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>groups</field-name>
+			</cmp-field>
+			<primkey-field>username</primkey-field>
+		</entity>
+	</enterprise-beans>
+	<assembly-descriptor>
+	</assembly-descriptor>
+</ejb-jar>
Binary files /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMachine.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMachine.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMachine.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMachine.java
--- /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMachine.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMachine.java	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,23 @@
+/**
+ * A physical coffee-machine
+ */
+public class CoffeeMachine
+{
+	/**
+	 * Make a cup of coffee
+	 */
+	public void makeCoffee(String brand)
+	{
+		System.out.println("Started making coffee of brand " + brand);
+		
+		try
+		{
+			Thread.sleep(30000);
+			System.out.println("*** BING! Coffee of brand " + brand + " done! ***");
+		}
+		catch(InterruptedException e)
+		{
+			System.err.println("Interrupted while making Coffee");
+		}
+	}
+}
Binary files /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMaker.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMaker.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMaker.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMaker.java
--- /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMaker.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/CoffeeMaker.java	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,118 @@
+import java.io.*;
+import javax.jms.*;
+import javax.naming.*;
+
+public class CoffeeMaker implements Runnable
+{
+	/** The machine that makes the coffee - think of it as a real world coffee machine (hardware). */
+	protected CoffeeMachine machine;
+
+	/** The JMS Connection to the Queue. */
+	protected QueueConnection connection;
+	
+	/** The Queue to get orders from. */	
+	protected Queue queue;
+	
+	/** The Session used to interract with the Queue. */
+	protected QueueSession session;
+
+	public static void main(String[] args)
+	{
+		try
+		{
+			QueueConnectionFactory factory = (QueueConnectionFactory)new InitialContext().lookup("java:comp/env/jms/theQueueConnectionFactory");
+			
+			QueueConnection connection = factory.createQueueConnection();
+
+			Queue queue = (Queue)new InitialContext().lookup("java:comp/env/jms/theQueue");
+			
+			if(args.length > 0 && args[0].equals("-order"))
+			{
+				// Start the connection so we can use it
+				connection.start();
+
+				// Get the brand from the user
+				BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+				System.out.print("Brand? ");
+				String brand = reader.readLine();
+
+				QueueSession session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+				
+				// Create the request message, a plain Message will do since
+				// we're just using the properties
+				Message message = session.createMessage();
+				
+				// Specify the brand to brew
+				message.setStringProperty("brand", brand);
+				
+				// We dont want it if it's not starting to brew within three minutes
+				message.setJMSExpiration(180000);
+				
+				// Send our request
+				session.createSender(queue).send(message);
+				
+				// Close up
+				session.close();
+				connection.close();
+				
+				System.out.println("Coffee order sent");
+			}
+			else
+			{
+				CoffeeMaker maker = new CoffeeMaker(connection, queue);
+				maker.run();
+			}
+		}
+		catch(JMSException e)
+		{
+			System.err.println("Communication error: " + e.getMessage());
+		}
+		catch(NamingException e)
+		{
+			System.err.println("Error looking up objects: " + e.getMessage());
+		}
+		catch(IOException e)
+		{
+			System.err.println("IO error: " + e.getMessage());
+		}
+	}
+
+	/**
+	 * Creates a new CoffeeMaker with the specified connection and queue.
+	 */
+	public CoffeeMaker(QueueConnection connection, Queue queue) throws JMSException
+	{
+		this.machine = new CoffeeMachine();
+
+		this.connection = connection;
+		this.queue = queue;
+		this.session = connection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+	}
+
+	public void run()
+	{
+		try
+		{
+			// Start the connection so we can use it
+			connection.start();
+			
+			// Create our receiver
+			QueueReceiver receiver = session.createReceiver(queue);
+
+			System.out.println("Waiting to receive coffee requests");
+
+			while(true)
+			{
+				// Wait for a request for coffee
+				Message message = receiver.receive();
+
+				// Make a cup of the specified brand
+				machine.makeCoffee(message.getStringProperty("brand"));
+			}
+		}
+		catch(JMSException e)
+		{
+			System.err.println("Communication error: " + e.getMessage());
+		}
+	}
+}
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/MANIFEST.MF /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/MANIFEST.MF
--- /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/MANIFEST.MF	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/MANIFEST.MF	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Main-Class: CoffeeMaker
+Name: "CoffeeMaker Demo"
+Created-By: 1.2 (Sun Microsystems Inc.)
+Specification-Vendor: "Evermind"
+Specification-Version: "1.0.0"
+Implementation-Vendor: "Evermind"
+Implementation-Version: "1.0.0"
+Implementation-Title: "CoffeeMaker"
+Class-Path: ../../orion.jar
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/application-client.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/application-client.xml
--- /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/application-client.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/application-client.xml	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE application-client PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.2//EN" "http://java.sun.com/j2ee/dtds/application-client_1_2.dtd">
+<application-client>
+	<display-name>Unnamed</display-name>
+	<resource-ref>
+		<res-ref-name>jms/theQueueConnectionFactory</res-ref-name>
+		<res-type>javax.jms.QueueConnectionFactory</res-type>
+		<res-auth>Container</res-auth>
+	</resource-ref>
+	<resource-ref>
+		<res-ref-name>jms/theQueue</res-ref-name>
+		<res-type>javax.jms.Queue</res-type>
+		<res-auth>Container</res-auth>
+	</resource-ref>
+</application-client>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/orion-application-client.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/orion-application-client.xml
--- /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/orion-application-client.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/META-INF/orion-application-client.xml	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<!DOCTYPE orion-application-client PUBLIC "-//Evermind//DTD J2EE Application-client runtime 1.2//EN" "http://www.orionserver.com/dtds/orion-application-client.dtd">
+
+<orion-application-client>
	<resource-ref-mapping name="jms/theQueueConnectionFactory" />
	<resource-ref-mapping name="jms/theQueue" />
</orion-application-client>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/jndi.properties /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/jndi.properties
--- /usr/ports/java/orion/work/orion/demo/jms/coffeemaker/jndi.properties	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker/jndi.properties	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,3 @@
+java.naming.factory.initial=com.evermind.server.ApplicationClientInitialContextFactory
+java.naming.provider.url=ormi://localhost
+java.naming.security.principal=admin
Binary files /usr/ports/java/orion/work/orion/demo/jms/coffeemaker.jar and /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/coffeemaker.jar differ
Binary files /usr/ports/java/orion/work/orion/demo/jms/jmschat/JMSChat$1.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/JMSChat$1.class differ
Binary files /usr/ports/java/orion/work/orion/demo/jms/jmschat/JMSChat.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/JMSChat.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/jmschat/JMSChat.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/JMSChat.java
--- /usr/ports/java/orion/work/orion/demo/jms/jmschat/JMSChat.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/JMSChat.java	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,109 @@
+import java.io.*;
+import javax.jms.*;
+import javax.naming.*;
+
+public class JMSChat implements Runnable
+{
+	protected String username = "Anonymous";
+	protected TopicConnection connection;
+	protected Topic topic;
+	protected TopicSession session;
+	protected TopicSubscriber subscriber;
+	protected TopicPublisher publisher;
+
+	public static void main(String[] args)
+	{
+		try
+		{
+			TopicConnectionFactory factory = (TopicConnectionFactory)new InitialContext().lookup("java:comp/env/jms/theTopicConnectionFactory");
+
+			TopicConnection connection = factory.createTopicConnection();
+
+			Topic topic = (Topic)new InitialContext().lookup("java:comp/env/jms/theTopic");
+
+			JMSChat chat = new JMSChat(connection, topic);
+			
+			if(args.length > 0)
+				chat.setUsername(args[0]);
+
+			chat.run();
+		}
+		catch(JMSException e)
+		{
+			System.err.println("Communication error: " + e.getMessage());
+		}
+		catch(NamingException e)
+		{
+			System.err.println("Error looking up objects: " + e.getMessage());
+		}
+	}
+	
+	public JMSChat(TopicConnection connection, Topic topic) throws JMSException
+	{
+		this.connection = connection;
+		this.session = connection.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
+		this.topic = topic;
+		
+		this.subscriber = session.createSubscriber(topic, null, true);
+		this.publisher = session.createPublisher(topic);
+		
+	}
+
+	public void setUsername(String username)
+	{
+		this.username = username;
+	}
+
+	public void run()
+	{
+		try
+		{
+			connection.start();
+
+			new Thread(new Runnable() { public void run() { JMSChat.this.listen(); } }).start();
+
+			System.out.println("*** LOGGED IN AS " + this.username + " ****");
+			BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
+
+			while(true)
+			{
+				String line = reader.readLine();
+				
+				TextMessage message = session.createTextMessage();
+				message.setStringProperty("sender", this.username);
+				message.setText(line);
+				
+				publisher.publish(message);
+			}
+		}
+		catch(JMSException e)
+		{
+			System.err.println("Communication error: " + e.getMessage());
+		}
+		catch(IOException e)
+		{
+			System.err.println("Error reading from System in");
+		}
+	}
+
+	protected void listen()
+	{
+		try
+		{
+			while(true)
+			{
+				Message message = subscriber.receive();
+				
+				if(message instanceof TextMessage)
+				{
+					System.out.println(message.getStringProperty("sender") + ": " +
+									   ((TextMessage)message).getText());
+				}
+			}
+		}
+		catch(JMSException e)
+		{
+			System.err.println("Communication error: " + e.getMessage());
+		}
+	}
+}
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/jmschat/META-INF/MANIFEST.MF /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/META-INF/MANIFEST.MF
--- /usr/ports/java/orion/work/orion/demo/jms/jmschat/META-INF/MANIFEST.MF	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/META-INF/MANIFEST.MF	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Main-Class: JMSChat
+Name: "JMSChat Demo"
+Created-By: 1.2 (Sun Microsystems Inc.)
+Specification-Vendor: "Evermind"
+Specification-Version: "1.0.0"
+Implementation-Vendor: "Evermind"
+Implementation-Version: "1.0.0"
+Implementation-Title: "JMSChat"
+Class-Path: ../../orion.jar
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/jmschat/META-INF/application-client.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/META-INF/application-client.xml
--- /usr/ports/java/orion/work/orion/demo/jms/jmschat/META-INF/application-client.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/META-INF/application-client.xml	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<!DOCTYPE application-client PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.2//EN" "http://java.sun.com/j2ee/dtds/application-client_1_2.dtd">
+<application-client>
+	<display-name>Unnamed</display-name>
+	<resource-ref>
+		<res-ref-name>jms/theTopicConnectionFactory</res-ref-name>
+		<res-type>javax.jms.TopicConnectionFactory</res-type>
+		<res-auth>Container</res-auth>
+	</resource-ref>
+	<resource-ref>
+		<res-ref-name>jms/theTopic</res-ref-name>
+		<res-type>javax.jms.Topic</res-type>
+		<res-auth>Container</res-auth>
+	</resource-ref>
+</application-client>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/jmschat/META-INF/orion-application-client.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/META-INF/orion-application-client.xml
--- /usr/ports/java/orion/work/orion/demo/jms/jmschat/META-INF/orion-application-client.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/META-INF/orion-application-client.xml	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<!DOCTYPE orion-application-client PUBLIC "-//Evermind//DTD J2EE Application-client runtime 1.2//EN" "http://www.orionserver.com/dtds/orion-application-client.dtd">
+
+<orion-application-client>
	<resource-ref-mapping name="jms/theTopicConnectionFactory" />
	<resource-ref-mapping name="jms/theTopic" />
</orion-application-client>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/jmschat/jndi.properties /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/jndi.properties
--- /usr/ports/java/orion/work/orion/demo/jms/jmschat/jndi.properties	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat/jndi.properties	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,3 @@
+java.naming.factory.initial=com.evermind.server.ApplicationClientInitialContextFactory
+java.naming.provider.url=ormi://localhost/
+java.naming.security.principal=admin
Binary files /usr/ports/java/orion/work/orion/demo/jms/jmschat.jar and /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmschat.jar differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/jms/jmsdemo-readme.txt /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmsdemo-readme.txt
--- /usr/ports/java/orion/work/orion/demo/jms/jmsdemo-readme.txt	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/jms/jmsdemo-readme.txt	Tue Apr 11 01:00:00 2000
@@ -0,0 +1,22 @@
+-- The JMS demos --
+
+The JMS-Chat is a small chat example to demonstrate topics.
+
+The coffeemaker is a queue demo, it concists of a service part; the machine - a coffee maker which
+takes ~25sec to make a cup of coffee. You can plug in as many makers and as many order units as you wish.
+
+1. Running the jmschat example:
+1.1 Make sure you have installed the server by running "java -jar orion.jar -install" in the
+orion directory to activate the admin account.
+1.2 Edit server.xml and uncomment the <jms-server ... /> tag to activate the JMS service if it is not activated.
+1.3 Start the server.
+1.4 Run the client (from the demo/jms) dir twice (different consoles): java -Djava.naming.security.credentials=<admin password> -jar jmschat.jar
+1.5 Write a message into the console; it should now show up on the other display.
+
+2. Running the coffeemaker example:
+2.1 Make sure you have installed the server by running "java -Djava.naming.security.credentials=<admin password> -jar orion.jar -install" in the
+orion directory to activate the admin account.
+2.2 Edit server.xml and uncomment the <jms-server ... /> tag to activate the JMS service if it is not activated.
+2.3 Start the server.
+2.4 Run the coffee maker (from the demo/jms) dir: java -jar coffeemaker.jar
+2.5 Run the coffee requester (from the demo/jms) dir: java -Djava.naming.security.credentials=<admin password> -jar coffeemaker.jar -order
Binary files /usr/ports/java/orion/work/orion/demo/messagelogger.ear and /home/ernst/freebsd-ports/java/orion/work/orion/demo/messagelogger.ear differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/META-INF/application.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/META-INF/application.xml
--- /usr/ports/java/orion/work/orion/demo/news-app/META-INF/application.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/META-INF/application.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN" "http://java.sun.com/j2ee/dtds/application_1_2.dtd">
+
+<application>
+	<display-name>News</display-name>
+	<module>
+		<ejb>news-ejb.jar</ejb>
+	</module>
+	<module>
+		<web>
+			<web-uri>news-web.war</web-uri>
+			<context-root>/news</context-root>
+		</web>
+	</module>
+	<module>
+		<java>news-client.jar</java>
+	</module>
+	<security-role>
+		<role-name>administrators</role-name>
+	</security-role>
+	<security-role>
+		<role-name>users</role-name>
+	</security-role>
+</application>
Binary files /usr/ports/java/orion/work/orion/demo/news-app/counter.jar and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/counter.jar differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-client-source/META-INF/MANIFEST.MF /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-client-source/META-INF/MANIFEST.MF
--- /usr/ports/java/orion/work/orion/demo/news-app/news-client-source/META-INF/MANIFEST.MF	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-client-source/META-INF/MANIFEST.MF	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Main-Class: com.evermind.ejb.NewsClient
+Name: "NewsClient Demo"
+Created-By: 1.2 (Sun Microsystems Inc.)
+Specification-Vendor: "Evermind"
+Specification-Version: "1.0.0"
+Implementation-Vendor: "Evermind"
+Implementation-Version: "1.0.0"
+Implementation-Title: "NewsClient"
+Class-Path: ../../orion.jar news-ejb.jar
+
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-client-source/META-INF/application-client.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-client-source/META-INF/application-client.xml
--- /usr/ports/java/orion/work/orion/demo/news-app/news-client-source/META-INF/application-client.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-client-source/META-INF/application-client.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!DOCTYPE application-client PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.2//EN" "http://java.sun.com/j2ee/dtds/application-client_1_2.dtd">
+<application-client>
	<display-name>Mail dispatcher</display-name>
+	<ejb-ref>
+		<ejb-ref-name>ejb/NewsSession</ejb-ref-name>
+		<ejb-ref-type>Session</ejb-ref-type>
+		<home>com.evermind.ejb.NewsSessionHome</home>
+		<remote>com.evermind.ejb.NewsSession</remote>
+	</ejb-ref>
+</application-client>
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.java
--- /usr/ports/java/orion/work/orion/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-client-source/com/evermind/ejb/NewsClient.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,76 @@
+package com.evermind.ejb;
+
+import java.util.*;
+import java.io.*;
+import java.rmi.RemoteException;
+import javax.ejb.*;
+import javax.naming.*;
+import javax.rmi.PortableRemoteObject;
+
+/**
+ * A simple client for adding news.
+ */
+public class NewsClient
+{
+	public static void main(String[] args)
+	{
+		try
+		{
+			/**
+			 * Create access to the naming context.
+			 */
+			Context context = new InitialContext();
+
+			/**
+			 * Lookup the NewsItemHome object. The reference is retrieved from the
+			 * application-local context (java:comp/env). The variable is
+			 * specified in the assembly descriptor (META-INF/application-client.xml).
+			 */
+			Object homeObject = context.lookup("java:comp/env/ejb/NewsSession");
+
+			// Narrow the reference to a NewsItemHome.
+			NewsSessionHome home = (NewsSessionHome)PortableRemoteObject.narrow(homeObject, NewsSessionHome.class);
+
+			NewsSession session = home.create();
+
+			BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
+
+			System.out.print("Enter the subject of the news-item you want to add: ");
+			String subject = in.readLine();
+
+			System.out.print("Enter the text for item '" + subject + "': ");
+			System.out.flush();
+			String text = in.readLine();
+
+			// Add a news-item
+			session.addNews(0, new Date(), subject, text);
+
+			System.out.println("Item added");
+			System.exit(0);
+		}
+		catch(NumberFormatException e)
+		{
+			System.err.println("Invalid number specified");
+		}
+		catch(RemoteException e)
+		{
+			System.err.println("System/communication error: " + e.getMessage());
+		}
+		catch(IOException e)
+		{
+			System.err.println("IO Error: " + e.getMessage());
+		}
+		catch(NamingException e)
+		{
+			System.err.println("Communication error: " + e.getMessage());
+		}
+		catch(CreateException e)
+		{
+			System.err.println("Error creating item: " + e.getMessage());
+		}
+		catch(FinderException e)
+		{
+			System.err.println("Error creating item: " + e.getMessage());
+		}
+	}
+}
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-client-source/com/evermind/ejb/NewsItemClient.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-client-source/com/evermind/ejb/NewsItemClient.class differ
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-client.jar and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-client.jar differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/META-INF/ejb-jar.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/META-INF/ejb-jar.xml
--- /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/META-INF/ejb-jar.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/META-INF/ejb-jar.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd">
+<ejb-jar>
+	<description></description>
+	<enterprise-beans>
+		<entity>
+			<description></description>
+			<display-name>com.evermind.ejb.NewsItem</display-name>
+			<ejb-name>com.evermind.ejb.NewsItem</ejb-name>
+			<home>com.evermind.ejb.NewsItemHome</home>
+			<remote>com.evermind.ejb.NewsItem</remote>
+			<ejb-class>com.evermind.ejb.NewsItemEJB</ejb-class>
+			<persistence-type>Container</persistence-type>
+			<prim-key-class>java.lang.Integer</prim-key-class>
+			<reentrant>False</reentrant>
+			<cmp-field>
+				<field-name>submitter</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>text</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>id</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>locale</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>date</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>subject</field-name>
+			</cmp-field>
+			<cmp-field>
+				<field-name>parent</field-name>
+			</cmp-field>
+			<primkey-field>id</primkey-field>
+		</entity>
+		<session>
+			<description></description>
+			<display-name>com.evermind.ejb.NewsSession</display-name>
+			<ejb-name>com.evermind.ejb.NewsSession</ejb-name>
+			<home>com.evermind.ejb.NewsSessionHome</home>
+			<remote>com.evermind.ejb.NewsSession</remote>
+			<ejb-class>com.evermind.ejb.NewsSessionEJB</ejb-class>
+			<session-type>Stateful</session-type>
+			<transaction-type>Container</transaction-type>
+			<ejb-ref>
+				<description>The news items...</description>
+				<ejb-ref-name>ejb/NewsItem</ejb-ref-name>
+				<ejb-ref-type>Entity</ejb-ref-type>
+				<home>com.evermind.ejb.NewsItemHome</home>
+				<remote>com.evermind.ejb.NewsItem</remote>
+			</ejb-ref>
+		</session>
+	</enterprise-beans>
+	<assembly-descriptor>
+	</assembly-descriptor>
+</ejb-jar>
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.java
--- /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItem.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,26 @@
+package com.evermind.ejb;
+
+import java.rmi.RemoteException;
+import javax.ejb.*;
+
+public interface NewsItem extends EJBObject
+{
+	public int getId() throws RemoteException;
+
+	public String getSubject() throws RemoteException;
+
+	public void setSubject(String value) throws RemoteException;
+
+	public String getText() throws RemoteException;
+
+	public void setText(String value) throws RemoteException;
+
+	public java.util.Date getDate() throws RemoteException;
+
+	public void setDate(java.util.Date value) throws RemoteException;
+
	public java.util.Locale getLocale() throws RemoteException;
+
	public String getSubmitter() throws RemoteException;
+	
+	public NewsItem getParent() throws RemoteException;
+
	public void setLocale(java.util.Locale value) throws RemoteException;
	
	public NewsView getView() throws RemoteException;
+}
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemClient.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemClient.class differ
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.java
--- /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemEJB.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,116 @@
+package com.evermind.ejb;
+
import java.util.*;
import java.rmi.RemoteException;
+import javax.ejb.*;
+
+public class NewsItemEJB implements EntityBean
+{
+	protected EntityContext context;
+
	public int id; // Integer primary key for convenience
	public NewsItem parent; // The parent, null if this is not a reply
+	public String submitter; // User who submitted the article
+	public String subject; // Subject of the article
+	public String text; // Content/body of the article
+	public Date date; // Time it was created/posted
+	public Locale locale; // Locale of the user submitting it
+
+	public void ejbPostCreate(int id)
+	{
		this.id = id;
		this.submitter = this.context.getCallerPrincipal().getName();
+	}
+
	public java.lang.Integer ejbCreate(NewsItem parent, Date date, String subject, String text) throws CreateException
+	{
+		this.parent = parent;
		this.date = date;
		this.id = (int)(date.getTime() / 100);
+		this.subject = subject;
		this.text = text;
+		this.locale = new Locale("en", "US");
		this.submitter = this.context.getCallerPrincipal().getName();
+		return null; // Return null when using CMP
+	}
+
+	public void ejbPostCreate(NewsItem parent, Date date, String subject, String text)
+	{
+	}

	public int getId()
+	{
+		return id;
+	}
+
	public NewsItem getParent()
+	{
+		return parent;
+	}
+
+	public String getSubject()
+	{
+		return subject;
+	}
+
+	public String getSubmitter()
+	{
+		return submitter;
+	}
+
	public void setSubject(String value)
+	{
+		this.subject = value;
+	}
+
+	public String getText()
+	{
+		return text;
+	}
+
+	public void setText(String value)
+	{
+		this.text = value;
+	}
+
+	public java.util.Date getDate()
+	{
+		return date;
+	}
+
+	public void setDate(java.util.Date value)
+	{
+		this.date = value;
+	}
+
+	public Locale getLocale()
+	{
+		return locale;
+	}
+
+	public void setLocale(Locale locale)
+	{
+		this.locale = locale;
+	}
+
	public void ejbLoad()
+	{
+	}
+
+	public void ejbStore()
+	{
+	}
+
+	public void ejbActivate()
+	{
+	}
+
+	public void ejbPassivate()
+	{
+	}
+
+	public void ejbRemove()
+	{
+	}
+
+	public void setEntityContext(EntityContext context)
+	{
+		this.context = context;
+	}
+
+	public void unsetEntityContext()
+	{
+		this.context = null;
+	}
+
+	public java.lang.Integer ejbCreate(int id) throws CreateException
+	{
		this.id = id;
+		return null; // Return null when using CMP
+	}
+
	public NewsView getView() throws RemoteException
	{
+		return new NewsView(id, parent == null ? 0 : parent.getId(), submitter, subject, text, date, locale);
	}
+}
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.java
--- /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemHome.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,18 @@
+package com.evermind.ejb;
+
import java.util.*;
+import javax.ejb.*;
+import java.rmi.RemoteException;
+
+public interface NewsItemHome extends EJBHome
+{
+	public NewsItem create(int id) throws CreateException, RemoteException;
+	public NewsItem create(NewsItem parent, Date date, String subject, String text) throws CreateException, RemoteException;
+
+	public NewsItem findByPrimaryKey(int key) throws RemoteException, FinderException;
+	public Collection findAll() throws RemoteException, FinderException;
+	public Collection findByPeriod(Date start, Date end) throws RemoteException, FinderException;
+	public Collection findByContent(String content) throws RemoteException, FinderException;
+	public Collection findByParent(NewsItem parent) throws RemoteException, FinderException;
	
	/**
+	 * Orion-specific finder specification to ease installtion (optional).
+	 */
	public static final String findByParent_query = "$1 = $parent";
+}
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.java
--- /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsItemServlet.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,77 @@
+package com.evermind.ejb;
+
+/*
+	public NewsItem create(int id) throws CreateException, RemoteException;
+	public NewsItem create(Date date, String subject, String text) throws CreateException, RemoteException;
+
+	public NewsItem findByPrimaryKey(int key) throws RemoteException, FinderException;
+	public Collection findAll() throws RemoteException, FinderException;
+	public Collection findByPeriod(Date start, Date end) throws RemoteException, FinderException;
+*/
+import java.util.*;
+import java.io.IOException;
+import java.rmi.RemoteException;
+import javax.servlet.*;
+import javax.servlet.http.*;
+import javax.ejb.*;
+import javax.naming.*;
+import javax.rmi.PortableRemoteObject;
+
+public class NewsItemServlet extends HttpServlet
+{
+	NewsItemHome home;
+
+	public void init() throws ServletException
+	{
+		try
+		{
+			Context context = new InitialContext();		
+			home = (NewsItemHome)PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/NewsItem"), NewsItemHome.class);
+		}
+		catch(NamingException e)
+		{
+			throw new ServletException("Error looking up home", e);
+		}		
+	}
+
+	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
+	{
+		response.setContentType("text/html");
+		ServletOutputStream out = response.getOutputStream();
+
+		try
+		{
+			Collection newsItems = home.findAll();
+
+			out.println("<html>");
+			out.println("\t<head><title>My NewsItems</title></head>");
+			out.println("\t<body>");
+			out.println("\t\t<table border=\"2\">");
+			out.println("\t\t\t<tr><td><b>Date</b></td><td><b>Locale</b></td><td><b>Subject</b></td></tr>");
+		
+			Iterator iterator = newsItems.iterator();
+		
+			while(iterator.hasNext())
+			{
+				NewsItem newsItem = (NewsItem)PortableRemoteObject.narrow(iterator.next(), NewsItem.class);
+				out.println("\t\t\t<tr><td>" + newsItem.getDate() + "</td><td>" + newsItem.getLocale() + "</td><td>" + newsItem.getSubject() + "</td></tr>");
+			}
+
+			out.println("\t\t</table>");
+			out.println("\t</body>");
+			out.println("</html>");	
+		}
+		catch(RemoteException e)
+		{
+			out.println("Error communicating with EJB-server: " + e.getMessage());
+		}
+		catch(FinderException e)
+		{
+			out.println("Error finding newsItems: " + e.getMessage());
+		}
+		finally
+		{
+			out.close();
+		}
+	}
+}
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.java
--- /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSession.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,12 @@
+package com.evermind.ejb;
+
+import java.util.*;
+import java.rmi.*;
+import javax.ejb.*;
+
+public interface NewsSession extends EJBObject
+{
+	public Collection getChildren(int parent) throws RemoteException, FinderException;
+	public NewsView getNews(int id) throws RemoteException, FinderException;
+	public NewsView addNews(int parentID, Date date, String subject, String content) throws RemoteException, CreateException, FinderException;
+}
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.java
--- /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionEJB.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,66 @@
+package com.evermind.ejb;
+
+import java.util.*;
+import java.rmi.RemoteException;
+import javax.ejb.*;
+import javax.naming.*;
+
+public class NewsSessionEJB implements SessionBean
+{
+	private NewsItemHome news;
+	
+	public void ejbCreate() throws CreateException
+	{
+		try
+		{
+			news = (NewsItemHome)new InitialContext().lookup("java:comp/env/ejb/NewsItem");
+		}
+		catch(NamingException e)
+		{
+			throw new CreateException("NamingException: " + e.getMessage());
+		}
+	}
+
+	public void ejbActivate()
+	{
+	}
+
+	public void ejbPassivate()
+	{
+	}
+	
+	public void ejbRemove()
+	{
+	}
+	
+	public void setSessionContext(SessionContext context)
+	{
+	}
+	
+	public Collection getChildren(int parentID) throws RemoteException, FinderException
+	{
+		NewsItem parent = parentID == 0l ? null : news.findByPrimaryKey(parentID);
+		
+		Collection children = news.findByParent(parent);
+		
+		List childrenViews = new ArrayList();
+		Iterator iterator = children.iterator();
+		
+		while(iterator.hasNext())
+		{
+			childrenViews.add(((NewsItem)javax.rmi.PortableRemoteObject.narrow(iterator.next(), NewsItem.class)).getView());
+		}
+
+		return childrenViews;
+	}
+
+	public NewsView getNews(int id) throws RemoteException, FinderException
+	{
+		return news.findByPrimaryKey(id).getView();
+	}
+
+	public NewsView addNews(int parentID, Date date, String subject, String content) throws CreateException, FinderException, RemoteException
+	{
+		return news.create(parentID != 0 ? news.findByPrimaryKey(parentID) : null, date, subject, content).getView();
+	}
+}
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.java
--- /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsSessionHome.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,9 @@
+package com.evermind.ejb;
+
+import java.rmi.RemoteException;
+import javax.ejb.*;
+
+public interface NewsSessionHome extends EJBHome
+{
+	public NewsSession create() throws CreateException, RemoteException;
+}
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.java
--- /usr/ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb-source/com/evermind/ejb/NewsView.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,62 @@
+package com.evermind.ejb;
+
+import java.util.*;
+
+/** 
+ * Data holder passed between the tiers etc, immutable.
+ */
+public class NewsView implements java.io.Serializable
+{
+	private int id; // Integer primary key for convenience
	private int parentID; // The parent, null if this is not a reply
+	private String submitter; // User who submitted the article
+	private String subject; // Subject of the article
+	private String text; // Content/body of the article
+	private Date date; // Time it was created/posted
+	private Locale locale; // Locale of the user submitting it
+
+	public NewsView(int id, int parentID, String submitter, String subject, String text, Date date, Locale locale)
+	{
+		this.id = id;
+		this.parentID = parentID;
+		this.submitter = submitter;
+		this.subject = subject;
+		this.text = text;
+		this.date = date;
+		this.locale = locale;
+	}
+	
+	public int getId()
+	{
+		return this.id;
+	}
+	
+	public int getParentId()
+	{
+		return this.parentID;
+	}
+	
+	public String getSubmitter()
+	{
+		return this.submitter;
+	}
+
+	public String getSubject()
+	{
+		return this.subject;
+	}
+	
+	public String getText()
+	{
+		return this.text;
+	}
+	
+	public Date getDate()
+	{
+		return this.date;
+	}
+
+	public Locale getLocale()
+	{
+		return this.locale;
+	}
+}
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-ejb.jar and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-ejb.jar differ
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-web/WEB-INF/lib/ejbtags.jar and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/WEB-INF/lib/ejbtags.jar differ
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-web/WEB-INF/lib/utiltags.jar and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/WEB-INF/lib/utiltags.jar differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/WEB-INF/web.xml /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/WEB-INF/web.xml
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/WEB-INF/web.xml	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/WEB-INF/web.xml	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
+
+<web-app>
+	<display-name>Useless news HQ</display-name>
+	<description>A small demo web-app demonstrating
+		interaction between JSP and EJB.</description>
+	<welcome-file-list>
+		<welcome-file>default.jsp</welcome-file>
+		<welcome-file>index.html</welcome-file>
+	</welcome-file-list>
+	<taglib>
+		<taglib-uri>ejbtags</taglib-uri>
+		<taglib-location>/WEB-INF/lib/ejbtags.jar</taglib-location>
+	</taglib>
+	<taglib>
+		<taglib-uri>utiltags</taglib-uri>
+		<taglib-location>/WEB-INF/lib/utiltags.jar</taglib-location>
+	</taglib>
+	<security-constraint>
+		<web-resource-collection>
+			<web-resource-name>Unnamed</web-resource-name>
+			<url-pattern>/addnews.jsp</url-pattern>
+			<url-pattern>/addnews_done.jsp</url-pattern>
+			<http-method>*</http-method>
+		</web-resource-collection>
+		<auth-constraint>
+			<role-name>users</role-name>
+		</auth-constraint>
+	</security-constraint>
+	<login-config>
+		<auth-method>FORM</auth-method>
+		<form-login-config>
+			<form-login-page>/login.html</form-login-page>
+			<form-error-page>/login-error.html</form-error-page>
+		</form-login-config>
+	</login-config>
+	<security-role>
+		<description>Registered administrators of this app.</description>
+		<role-name>administrators</role-name>
+	</security-role>
+	<security-role>
+		<description>Registered users of this app. Can add news etc.</description>
+		<role-name>users</role-name>
+	</security-role>
+	<ejb-ref>
+		<ejb-ref-name>ejb/NewsSession</ejb-ref-name>
+		<ejb-ref-type>Session</ejb-ref-type>
+		<home>com.evermind.ejb.NewsSessionHome</home>
+		<remote>com.evermind.ejb.NewsSession</remote>
+	</ejb-ref>
+	<ejb-ref>
+		<ejb-ref-name>ejb/NewsItem</ejb-ref-name>
+		<ejb-ref-type>Entity</ejb-ref-type>
+		<home>com.evermind.ejb.NewsItemHome</home>
+		<remote>com.evermind.ejb.NewsItem</remote>
+	</ejb-ref>
+</web-app>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/addnews.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/addnews.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/addnews.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/addnews.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,31 @@
+<html>
+	<head>
+		<title>News</title>
+	</head>
+	<body bgcolor="e0d0c0">
+		<font size="5" face="Arial"><b>Useless news HQ</b></font><br>
+
+		<form action="addnews_done.jsp" method="POST">
+		<% if(request.getParameter("parent") != null) { %>
+			<input type="hidden" name="parent" value="<%=request.getParameter("parent")%>">
+		<% } %>
+			<table>
+				<tr>
+					<td>
+						<b>Subject: </b><br><input name="subject" type="text" size="40"><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<b>Content: </b><br><textarea name="content" cols="34" rows="5"></textarea><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<input type="submit" value="Add">
+					</td>
+				</tr>
+			</table>
+		</form>
+	</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/addnews_done.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/addnews_done.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/addnews_done.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/addnews_done.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,14 @@
+<%@ include file="checks.jsp" %>
+<%
+	int parentID = request.getParameter("parent") == null ? 0 : Integer.parseInt(request.getParameter("parent"));
+	if(request.getParameter("subject") != null)
+		newsSession.addNews(parentID, new java.util.Date(), request.getParameter("subject"), request.getParameter("content"));
+%>
+
+<% if(parentID != 0) { %>
+<jsp:forward page="newsdetail.jsp">
+	<jsp:param name="id" value="<%=parentID%>" />
+</jsp:forward>
+<% } else { %>
+<jsp:forward page="news.jsp" />
+<% } %>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/admin/editnews.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/admin/editnews.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/admin/editnews.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/admin/editnews.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,44 @@
+<%@ page import="java.text.*" %>
+<%@ taglib uri="ejbtags" prefix="ejb" %>
+
+<ejb:useHome id="home" type="com.evermind.ejb.NewsItemHome" location="java:comp/env/ejb/NewsItem" />
+<ejb:useBean id="news" type="com.evermind.ejb.NewsItem" value="<%=home.findByPrimaryKey(Integer.parseInt(request.getParameter("id")))%>" />
+<% DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG, request.getLocale()); %>
+
+<html>
+	<head>
+		<title>News</title>
+	</head>
+	<body bgcolor="e0d0c0">
+		<font size="5" face="Arial"><b>Useless news HQ - Edit news</b></font><br>
+
+		<form action="editnews_done.jsp" method="POST">
+		<input type="hidden" name="id" value="<%=request.getParameter("id")%>">
+			<table>
+				<tr>
+					<td>
+						<b>Subject: </b><br>
+						<input name="subject" type="text" value="<jsp:getProperty name="news" property="subject">" size="40"><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<b>Date: </b><br>
+						<input name="date" type="text" value="<%=dateFormat.format(news.getDate())%>" size="40"><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<b>Content: </b><br>
+						<textarea name="text" cols="34" rows="5"><jsp:getProperty name="news" property="text"></textarea><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<input type="submit" value="Update">
+					</td>
+				</tr>
+			</table>
+		</form>
+	</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/admin/editnews_done.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/admin/editnews_done.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/admin/editnews_done.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/admin/editnews_done.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,12 @@
+<%@ page import="java.text.*" %>
+<%@ taglib uri="ejbtags" prefix="ejb" %>
+
+<ejb:useHome id="home" type="com.evermind.ejb.NewsItemHome" location="java:comp/env/ejb/NewsItem" />
+<ejb:useBean id="news" type="com.evermind.ejb.NewsItem" value="<%=home.findByPrimaryKey(Integer.parseInt(request.getParameter("id")))%>" />
+<% DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG, request.getLocale()); %>
+<%
+	news.setDate(dateFormat.parse(request.getParameter("date")));
+	news.setSubject(request.getParameter("subject"));
+	news.setText(request.getParameter("text"));
+%>
+<jsp:forward page="/news.jsp" />
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/border.html /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/border.html
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/border.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/border.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,24 @@
+<html>
+	<head>
+	<title>Border</title></head>
+	<body bgColor="000000" text="ffffff" link="e0e0e0" vlink="d0d0d0">
+		<center>
+<!--			<table height="100%" valing="top" align="middle">
+				<tr>
+					<td>-->
+						<a href="news.jsp" target="main">View news</a><br>
+						<a href="addnews.jsp" target="main">Add news</a><br>
+						<form method="POST" action="newssearch.jsp" target="main" id=form1 name=form1>
+							<input name="content" type="text" size="10"><br>
+							<input type="submit" value="Search" id=submit1 name=submit1>
+						</form>
+<!--					</td>
+				</tr> -->
+<!--				<tr>
+					<td>
+					</td>
+				</tr>-->
+			</table>
+		</center>
+	</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/checks.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/checks.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/checks.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/checks.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,9 @@
+<%@ taglib uri="ejbtags" prefix="ejb" %>
+<%
+	if(session.getAttribute("newsSession") == null) { %>
+	<ejb:useHome id="sessionHome" type="com.evermind.ejb.NewsSessionHome" location="java:comp/env/ejb/NewsSession" />
+	<% session.setAttribute("newsSession", sessionHome.create());
+}
+%>
+
+<jsp:useBean id="newsSession" type="com.evermind.ejb.NewsSession" scope="session" />
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/index.html /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/index.html
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/index.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/index.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,9 @@
+<HTML>
+<HEAD>
+<TITLE>Useless news HQ</TITLE>
+</HEAD>
+<FRAMESET COLS="125, *" BORDER=0>
+	<FRAME SRC="border.html" id=border border=0 frameborder=0 framespacing=0 noresize scrolling=no name=border>
+	<FRAME SRC="news.jsp" border=0 frameborder=0 framespacing=0 noresize id=main name=main>
+</FRAMESET>
+</HTML>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/initviews.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/initviews.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/initviews.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/initviews.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,18 @@
+<%-- "Controller part", can also be a servlet --%>
+<%@ include file="/checks.jsp" %>
+<%@ page import="java.text.*" %>
+<%
+	DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG, request.getLocale());
+	int newsID = 0;
+
+	try
+	{
+		newsID = Integer.parseInt(request.getParameter("id"));
+		request.setAttribute("detail", newsSession.getNews(newsID));
+		request.setAttribute("children", newsSession.getChildren(newsID));
+	}
+	catch(NumberFormatException e)
+	{
+		request.setAttribute("children", newsSession.getChildren(0));
+	}
+%>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/login-error.html /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/login-error.html
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/login-error.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/login-error.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,29 @@
+<html>
+	<head>
+		<title>News</title>
+	</head>
+	<body bgcolor="e0d0c0">
+		<font size="5" face="Arial"><b>Useless news HQ</b></font><br>
+
+		<b>Sorry, incorrect username/password, try again.</b><br>
+		<form method="POST">
+			<table>
+				<tr>
+					<td>
+						<b>Username: </b><br><input name="j_username" type="text"><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<b>Password: </b><br><input name="j_password" type="password"><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<input type="submit" value="Log in">
+					</td>
+				</tr>
+			</table>
+		</form>
+	</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/login.html /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/login.html
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/login.html	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/login.html	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,28 @@
+<html>
+	<head>
+		<title>News</title>
+	</head>
+	<body bgcolor="e0d0c0">
+		<font size="5" face="Arial"><b>Useless news HQ</b></font><br>
+
+		<form method="POST">
+			<table>
+				<tr>
+					<td>
+						<b>Username: </b><br><input name="j_username" type="text"><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<b>Password: </b><br><input name="j_password" type="password"><br>
+					</td>
+				</tr>
+				<tr>
+					<td>
+						<input type="submit" value="Log in">
+					</td>
+				</tr>
+			</table>
+		</form>
+	</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/loginbox.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/loginbox.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/loginbox.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/loginbox.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,37 @@
+<%@ taglib uri="utiltags" prefix="util" %>
+<util:ifInRole role="users" include="true">
+	<table bgcolor="ffffff">
+		<tr>
+			<td><b>Logged in as <%=request.getRemoteUser()%></b></td>
+		</tr>
+		<tr>
+			<td>
+				<form action="logout.jsp">
+					<input type="submit" value="Log out">
+					<input type="hidden" name="forward" value="<%=request.getAttribute("javax.servlet.include.request_uri")%>">
+				</form>
+			</td>
+		</tr>
+	</table>
+</util:ifInRole>
+<util:ifInRole role="users" include="false">
+	<form method="POST">
+		<table bgcolor="ffffff">
+			<tr>
+				<td>
+					<b>Username: </b><br><input name="j_username" type="text"><br>
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<b>Password: </b><br><input name="j_password" type="password"><br>
+				</td>
+			</tr>
+			<tr>
+				<td>
+					<input type="submit" value="Log in">
+				</td>
+			</tr>
+		</table>
+	</form>
+</util:ifInRole>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/logout.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/logout.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/logout.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/logout.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,5 @@
+<%
+	session.invalidate();
+	if(request.getParameter("forward") != null)
+		pageContext.forward(request.getParameter("forward"));
+%>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/news-body.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/news-body.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/news-body.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/news-body.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,24 @@
+<%-- Specify the use of the util taglib --%>
+<%@ page import="java.text.*" %>
+<% DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG, request.getLocale()); %>
+<%@ taglib uri="utiltags" prefix="util" %>
+
+		<jsp:useBean id="children" type="java.util.Collection" scope="request" />
+			
+		<table border="2" width="50%">
+			<tr><td bgcolor="7070a0"><b>Date</b></td><td bgcolor="7070a0"><b>Subject</b></td></tr>
+			
+			<%-- Iterate thru the news items, max 10 of them --%>
+			<util:iterate id="news" type="com.evermind.ejb.NewsView" collection="<%=children%>" max="10">
+				<tr>
+					<td bgcolor="ffffff"><%=dateFormat.format(news.getDate())%></td>
+					<td bgcolor="ffffff">
+						<jsp:getProperty name="news" property="subject" />
+						(<a href="newsdetail.jsp?id=<%=news.getId()%>">detail</a>)
+						<util:ifInRole role="administrators">
+							(<a href="admin/editnews.jsp?id=<%=news.getId()%>">edit</a>)
+						</util:ifInRole>
+					</td>
+				</tr>
+			</util:iterate>
+		</table>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/news.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/news.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/news.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/news.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,11 @@
+<%@ include file="initviews.jsp" %>
+<html>
+	<head>
+		<title>News</title>
+	</head>
+	<body bgcolor="e0d0c0">
+		<font size="5" face="Arial"><b>Useless news HQ</b></font><br>
+		<jsp:include page="loginbox.jsp" />		
+		<jsp:include page="news-body.jsp" />
+	</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/newsdetail.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/newsdetail.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/newsdetail.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/newsdetail.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,38 @@
+<%@ include file="initviews.jsp" %>
+
+<jsp:useBean id="detail" type="com.evermind.ejb.NewsView" scope="request" />
+<html>
+	<head>
+		<title>News</title>
+	</head>
+	<body bgcolor="e0d0c0">
+		<font size="5" face="Arial"><b>Useless news HQ - <td bgcolor="ffffff"><jsp:getProperty name="detail" property="subject" /></b></font><br>
+
+		<table border="2" width="50%">
+			<tr>
+				<td bgcolor="7070a0"><b><%=dateFormat.format(detail.getDate())%> - <jsp:getProperty name="detail" property="subject" />, by <jsp:getProperty name="detail" property="submitter" /></b></td>
+			</tr>
+			<tr>
+				<td bgcolor="ffffff"><jsp:getProperty name="detail" property="text" /></td>
+			</tr>
+		</table>
+		<form action="addnews.jsp">
+			<input type="hidden" name="parent" value="<%=detail.getId()%>">
+			<input type="Submit" value="Add reply...">
+		</form>
+
+		<b>Replies<b><br>
+		<jsp:include page="news-body.jsp" />
+
+		<% if(detail.getParentId() != 0) { %>
+			<form action="newsdetail.jsp">
+				<input type="hidden" name="parent" value="<%=detail.getParentId()%>">
+				<input type="Submit" value="Back">
+			</form>
+		<% } else { %>
+			<form action="news.jsp">
+				<input type="Submit" value="Back">
+			</form>		
+		<% } %>
+	</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/newssearch.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/newssearch.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/newssearch.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/newssearch.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,29 @@
+<%-- Specify the use of the EJB taglib --%>
+<%@ page import="java.text.*" %>
+<%@ taglib uri="ejbtags" prefix="ejb" %>
+
+<% DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM, request.getLocale()); %>
+
+<html>
+	<head>
+		<title>News</title>
+	</head>
+	<body bgcolor="e0d0c0">
+		<font size="5" face="Arial"><b>Useless news HQ search results</b></font><br>
+
+		<%-- Look up the home --%>
+		<ejb:useHome id="home" type="com.evermind.ejb.NewsItemHome" location="java:comp/env/ejb/NewsItem" />
+
+		<table border="2">
+			<tr><td bgcolor="7070a0"><b>Date</b></td><td bgcolor="7070a0"><b>Subject</b></td></tr>
+			
+			<%-- Iterate thru the news items, max 20 of them --%>
+			<ejb:iterate id="news" type="com.evermind.ejb.NewsItem" collection="<%=home.findByContent("%" + request.getParameter("content") + "%")%>" max="20">
+				<tr>
+					<td bgcolor="ffffff"><%=dateFormat.format(news.getDate())%></td>
+					<td bgcolor="ffffff"><jsp:getProperty name="news" property="subject" /> (<a href="newsdetail.jsp?id=<%=news.getId()%>">detail</a>)</td>
+				</tr>
+			</ejb:iterate>
+		</table>
+	</body>
+</html>
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/news-app/news-web/usertest.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/usertest.jsp
--- /usr/ports/java/orion/work/orion/demo/news-app/news-web/usertest.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web/usertest.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,9 @@
+<html>
+	<head>
+		<title>News</title>
+	</head>
+	<body bgcolor="e0d0c0">
+		<font size="5" face="Arial"><b>Useless news HQ</b></font><br>
+		Is user in role? <%=request.isUserInRole("users")%>
+	</body>
+</html>
Binary files /usr/ports/java/orion/work/orion/demo/news-app/news-web.war and /home/ernst/freebsd-ports/java/orion/work/orion/demo/news-app/news-web.war differ
Binary files /usr/ports/java/orion/work/orion/demo/rmi/RMIApp.class and /home/ernst/freebsd-ports/java/orion/work/orion/demo/rmi/RMIApp.class differ
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/rmi/RMIApp.java /home/ernst/freebsd-ports/java/orion/work/orion/demo/rmi/RMIApp.java
--- /usr/ports/java/orion/work/orion/demo/rmi/RMIApp.java	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/rmi/RMIApp.java	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,38 @@
+import java.net.*;
+import java.util.*;
+import javax.naming.*;
+import java.io.*;
+
+/**
+ * A demo app example describing how to interact with the RMI-server.
+ */
+public class RMIApp
+{
+	public static void main(String[] args) throws Throwable
+	{
+		Hashtable environment = new Hashtable();
+
+		// Specify the emd-rmi SPI
+		environment.put("java.naming.factory.initial", "com.evermind.server.rmi.RMIInitialContextFactory");
+
+		// Specify the host
+		environment.put("host", "the.remote.server.com");
+		
+		// Specify username - this must be an admin account on the remote server
+		environment.put("username", "adminUser");
+		
+		// Password
+		environment.put("password", "123abc");
+
+		InitialContext context = new InitialContext(environment);
+
+		for(int i = 0; i < 10; i++)
+		{
+			com.evermind.ejb.EJBUserHome home = (com.evermind.ejb.EJBUserHome)context.lookup("com.evermind.ejb.EJBUser");
+			System.out.println("Home: " + home);
+
+			com.evermind.ejb.EJBUser user = home.findByPrimaryKey(new com.evermind.ejb.EJBUserID("anewuser"));
+			System.out.println("User: " + user.getName());
+		}
+	}
+}
diff -ruN --exclude=CVS /usr/ports/java/orion/work/orion/demo/ssl/ssl-user-registration.jsp /home/ernst/freebsd-ports/java/orion/work/orion/demo/ssl/ssl-user-registration.jsp
--- /usr/ports/java/orion/work/orion/demo/ssl/ssl-user-registration.jsp	Thu Jan  1 01:00:00 1970
+++ /home/ernst/freebsd-ports/java/orion/work/orion/demo/ssl/ssl-user-registration.jsp	Thu Mar  2 00:00:00 2000
@@ -0,0 +1,22 @@
+<%@ page session="false" %>

<html>
	<head>
		<title>User-adding (SSL) example</title>
	</head>
+
	<body bgcolor="ffffff">
+		This example shows how to use of request attributes.<br>
		<br>
+			Username: <jsp:getProperty name="request" property="userPrincipal:name" /><br>
+			User language: <jsp:getProperty name="request" property="locale:displayLanguage" /><br>
			User country: <jsp:getProperty name="request" property="locale:displayCountry" /><br>
			User host: <jsp:getProperty name="request" property="remoteHost" /><br>
+
+			<% java.security.cert.X509Certificate cert = (java.security.cert.X509Certificate)request.getAttribute("javax.servlet.request.X509Certificate"); %>
+			
			<%
				com.evermind.util.UserManager manager = (com.evermind.util.UserManager)application.getAttribute("user.manager");
+
+				if(request.getParameter("username") != null && manager.getUser(request.getParameter("username")) == null)
+				{
					com.evermind.util.User user = manager.createUser(request.getParameter("username"), request.getParameter("password"));
+					
+					if(cert != null)
+					{
						user.setCertificate(cert.getIssuerDN().getName(), cert.getSerialNumber());
+					}
+
					out.println("ADDED " + request.getParameter("username") + "<br>");
+				}
+			%>
			User cert: <%= cert != null ? cert.getSubjectDN() : "" %><br>
			User ID: <%= "" + cert != null ? cert.getSerialNumber() : "" %><br>
			
			<br>
			<form action="<%=request.getRequestURI()%>">
				<b>Username:</b> <input type="text" name="username"><br>
+				<b>Password:</b> <input type="password" name="password"><br>
+				
+				<input type="Submit" value="Add">
			</form>
+	</body>
</html>
Binary files /usr/ports/java/orion/work/orion/earassembler.jar and /home/ernst/freebsd-ports/java/orion/work/orion/earassembler.jar differ
Binary files /usr/ports/java/orion/work/orion/ejb.jar and /home/ernst/freebsd-ports/java/orion/work/orion/ejb.jar differ
Binary files /usr/ports/java/orion/work/orion/ejbassembler.jar and /home/ernst/freebsd-ports/java/orion/work/orion/ejbassembler.jar differ
Binary files /usr/ports/java/orion/work/orion/ejbmaker.jar and /home/ernst/freebsd-ports/java/orion/work/orion/ejbmaker.jar differ
Binary files /usr/ports/java/orion/work/orion/jaxp.jar and /home/ernst/freebsd-ports/java/orion/work/orion/jaxp.jar differ
Binary files /usr/ports/java/orion/work/orion/jcert.jar and /home/ernst/freebsd-ports/java/orion/work/orion/jcert.jar differ
Binary files /usr/ports/java/orion/work/orion/jdbc.jar and /home/ernst/freebsd-ports/java/orion/work/orion/jdbc.jar differ
Binary files /usr/ports/java/orion/work/orion/jndi.jar and /home/ernst/freebsd-ports/java/orion/work/orion/jndi.jar differ
Binary files /usr/ports/java/orion/work/orion/jnet.jar and /home/ernst/freebsd-ports/java/orion/work/orion/jnet.jar differ
Binary files /usr/ports/java/orion/work/orion/jsse.jar and /home/ernst/freebsd-ports/java/orion/work/orion/jsse.jar differ
Binary files /usr/ports/java/orion/work/orion/jta.jar and /home/ernst/freebsd-ports/java/orion/work/orion/jta.jar differ
Binary files /usr/ports/java/orion/work/orion/lib/hsql.jar and /home/ernst/freebsd-ports/java/orion/work/orion/lib/hsql.jar differ
Binary files /usr/ports/java/orion/work/orion/loadbalancer.jar and /home/ernst/freebsd-ports/java/orion/work/orion/loadbalancer.jar differ
Binary files /usr/ports/java/orion/work/orion/mail.jar and /home/ernst/freebsd-ports/java/orion/work/orion/mail.jar differ
Binary files /usr/ports/java/orion/work/orion/orion.jar and /home/ernst/freebsd-ports/java/orion/work/orion/orion.jar differ
Binary files /usr/ports/java/orion/work/orion/orionconsole.jar and /home/ernst/freebsd-ports/java/orion/work/orion/orionconsole.jar differ
Binary files /usr/ports/java/orion/work/orion/parser.jar and /home/ernst/freebsd-ports/java/orion/work/orion/parser.jar differ
Binary files /usr/ports/java/orion/work/orion/taglibassembler.jar and /home/ernst/freebsd-ports/java/orion/work/orion/taglibassembler.jar differ
Binary files /usr/ports/java/orion/work/orion/webappassembler.jar and /home/ernst/freebsd-ports/java/orion/work/orion/webappassembler.jar differ
Binary files /usr/ports/java/orion/work/orion/xalan.jar and /home/ernst/freebsd-ports/java/orion/work/orion/xalan.jar differ
Binary files /usr/ports/java/orion/work/orion/xerces.jar and /home/ernst/freebsd-ports/java/orion/work/orion/xerces.jar differ
>Release-Note:
>Audit-Trail:

From: Maxim Sobolev <sobomax@FreeBSD.org>
To: freebsd-gnats-submit@FreeBSD.org, ernst@heinz.jollem.com
Cc:  
Subject: Re: ports/27643: Update port: java/orion
Date: Tue, 29 May 2001 15:36:14 +0300

 HEY! Next time please don't submit working directory!
 
 -Maxim
 

From: Ernst de Haan <ernst@jollem.com>
To: Maxim Sobolev <sobomax@FreeBSD.org>
Cc: freebsd-gnats-submit@FreeBSD.org, ernst@heinz.jollem.com
Subject: Re: ports/27643: Update port: java/orion
Date: Tue, 29 May 2001 14:44:29 +0200

 Hehe, I did? :)
 
 Will make sure to --exclude=work too :)
 
 /Ernst
 
 
 Maxim Sobolev wrote:
 > HEY! Next time please don't submit working directory!
 > 
 > -Maxim
 > 
 > 
 
 -- 
 Ernst de Haan
 Java Architect
 Jollem Information Technology
 
     "Come to me all who are weary and burdened
         and I will give you rest" -- Jesus Christ
State-Changed-From-To: open->closed 
State-Changed-By: ijliao 
State-Changed-When: Tue May 29 10:10:29 PDT 2001 
State-Changed-Why:  
plz send-pr again without work dir, thanks 

http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27643 
>Unformatted:
