forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cross...@apache.org
Subject svn commit: rev 9583 - in xml/forrest/trunk: etc scratchpad/forrestbot2/webapp scratchpad/forrestbot2/webapp/lib scratchpad/forrestbot2/webapp/src/conf scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/dto scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/util scratchpad/forrestbot2/webapp/src/webapp scratchpad/forrestbot2/webapp/src/webapp/WEB-INF scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld scratchpad/forrestbot2/webapp/src/webapp/common tools/ant/bin
Date Thu, 18 Mar 2004 05:11:07 GMT
Author: crossley
Date: Wed Mar 17 21:11:06 2004
New Revision: 9583

Modified:
   xml/forrest/trunk/etc/relicense-tree.txt
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/.classpath
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/.project
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/README.txt
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/lib/README.txt
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/maven.xml
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/project.properties
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/project.xml
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/groups.xml
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/log4j.properties
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/osuser.xml
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/projects.xml
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/settings.properties
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/users.xml
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Config.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Constants.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Resources.properties
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/BaseAction.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ExecuteAction.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/LogoutAction.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogBodyAction.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogFrameAction.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogHeaderAction.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewSummaryAction.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/dto/ProjectDTO.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/util/Executor.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/util/Project.java
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/struts-config.xml
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/struts-tiles.xml
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-bean-el.tld
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-html-el.tld
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-logic-el.tld
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/web.xml
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/commandForm.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/layout.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/simple.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/viewlog_frame.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/execute.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/index.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/loginForm.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/logout.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/summary.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/viewlog_body.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/viewlog_header.jsp
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/welcome.html
   xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/welcome.local.html
   xml/forrest/trunk/tools/ant/bin/ant.bat
   xml/forrest/trunk/tools/ant/bin/ant.cmd
   xml/forrest/trunk/tools/ant/bin/antRun.bat
   xml/forrest/trunk/tools/ant/bin/antenv.cmd
   xml/forrest/trunk/tools/ant/bin/envset.cmd
   xml/forrest/trunk/tools/ant/bin/lcp.bat
   xml/forrest/trunk/tools/ant/bin/runrc.cmd
Log:
Fixing end-of-line issues.


Modified: xml/forrest/trunk/etc/relicense-tree.txt
==============================================================================
--- xml/forrest/trunk/etc/relicense-tree.txt	(original)
+++ xml/forrest/trunk/etc/relicense-tree.txt	Wed Mar 17 21:11:06 2004
@@ -167,7 +167,7 @@
 L    |   |   |-- conf
 L    |   |   |-- content
 L    |   |   |   |-- skins
-*L   |   |   |   `-- xdocs                     # to do *.cwiki ?
+*L   |   |   |   `-- xdocs    # fix license.xml          # to do *.cwiki ?
 L    |   |   |       `-- community
 L    |   |   |           `-- howto
 L    |   |   |               |-- bugzilla-patch

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/.classpath
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/.classpath	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/.classpath	Wed Mar 17 21:11:06 2004
@@ -1,20 +1,20 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <classpathentry kind="src" path="src/java"/>
-    <classpathentry kind="var" path="MAVEN_REPO/servletapi/jars/servletapi-2.3.jar"/>
-    <classpathentry kind="var" path="MAVEN_REPO/xerces/jars/xerces-2.4.0.jar"/>
-    <classpathentry kind="var" path="MAVEN_REPO/jstl/jars/jstl-1.0.2.jar"/>
-    <classpathentry kind="var" path="MAVEN_REPO/log4j/jars/log4j-1.2.8.jar"/>
-    <classpathentry kind="var" path="MAVEN_REPO/struts/jars/struts-1.1.jar"/>
-    <classpathentry kind="var" path="MAVEN_REPO/taglibs/jars/standard-1.0.4.jar"/>
-    <classpathentry kind="var" path="MAVEN_REPO/commons-logging/jars/commons-logging-1.0.3.jar"/>
-    <classpathentry kind="var" path="MAVEN_REPO/commons-beanutils/jars/commons-beanutils-1.6.1.jar"/>
-    <classpathentry kind="var" path="MAVEN_REPO/commons-digester/jars/commons-digester-1.5.jar"/>
-    <classpathentry kind="var" path="MAVEN_REPO/commons-collections/jars/commons-collections-2.1.jar"/>
-    <classpathentry kind="var" path="MAVEN_REPO/commons-validator/jars/commons-validator-1.0.2.jar"/>
-    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.4"/>
-    <classpathentry kind="lib" path="lib/oscore-2.2.2.jar"/>
-    <classpathentry kind="lib" path="lib/propertyset-1.2.jar"/>
-    <classpathentry kind="lib" path="lib/osuser-1.0-dev.jar" sourcepath="/osuser/src/java"/>
-    <classpathentry kind="output" path="target/classes"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+    <classpathentry kind="src" path="src/java"/>
+    <classpathentry kind="var" path="MAVEN_REPO/servletapi/jars/servletapi-2.3.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/xerces/jars/xerces-2.4.0.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/jstl/jars/jstl-1.0.2.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/log4j/jars/log4j-1.2.8.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/struts/jars/struts-1.1.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/taglibs/jars/standard-1.0.4.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/commons-logging/jars/commons-logging-1.0.3.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/commons-beanutils/jars/commons-beanutils-1.6.1.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/commons-digester/jars/commons-digester-1.5.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/commons-collections/jars/commons-collections-2.1.jar"/>
+    <classpathentry kind="var" path="MAVEN_REPO/commons-validator/jars/commons-validator-1.0.2.jar"/>
+    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.4"/>
+    <classpathentry kind="lib" path="lib/oscore-2.2.2.jar"/>
+    <classpathentry kind="lib" path="lib/propertyset-1.2.jar"/>
+    <classpathentry kind="lib" path="lib/osuser-1.0-dev.jar" sourcepath="/osuser/src/java"/>
+    <classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/.project
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/.project	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/.project	Wed Mar 17 21:11:06 2004
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<projectDescription>
-  <name>forrestbot-webapp</name>
-  <comment>
-  </comment>
-  <projects>
-  </projects>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-      <arguments>
-      </arguments>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<projectDescription>
+  <name>forrestbot-webapp</name>
+  <comment>
+  </comment>
+  <projects>
+  </projects>
+  <buildSpec>
+    <buildCommand>
+      <name>org.eclipse.jdt.core.javabuilder</name>
+      <arguments>
+      </arguments>
+    </buildCommand>
+  </buildSpec>
+  <natures>
+    <nature>org.eclipse.jdt.core.javanature</nature>
+  </natures>
 </projectDescription>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/README.txt
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/README.txt	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/README.txt	Wed Mar 17 21:11:06 2004
@@ -1,33 +1,33 @@
-                            Forrestbot Web Interface
-
-                            ------------------------
-
-This webapp implements a website staging application for sites built with
-Apache Forrest. The webapp hosts HTML for a number of managed websites.  The
-user can regenerate these sites at will.  Once the user is satisfied with the
-site, they may 'deploy' the site, making it live.
-
-Build
------
-To build the webapp from source, you need maven installed.  From a command prompt,
-enter this directory and execute "maven war".
-
-
-Installation
-------------
-
-
-
-FAQ
----------------
-1. The build and/or deploy commands don't seem to work
-
-Currently forrestbot only logs the forrest part of it's execution, not the whole
-thing.  And the web interface starts a forrestbot process and doesn't watch it's 
-progress directly.  So look at the debugging output for the command executed and
-the working directory used.  Log into the server using the login of the Tomcat server
-and cd to the working directory and then execute the command.  This will fairly
-accurately simulate what the web interface does.
-
-Also, set debug-exec=true in settings.properties and make sure log4j.properties
+                            Forrestbot Web Interface
+
+                            ------------------------
+
+This webapp implements a website staging application for sites built with
+Apache Forrest. The webapp hosts HTML for a number of managed websites.  The
+user can regenerate these sites at will.  Once the user is satisfied with the
+site, they may 'deploy' the site, making it live.
+
+Build
+-----
+To build the webapp from source, you need maven installed.  From a command prompt,
+enter this directory and execute "maven war".
+
+
+Installation
+------------
+
+
+
+FAQ
+---------------
+1. The build and/or deploy commands don't seem to work
+
+Currently forrestbot only logs the forrest part of it's execution, not the whole
+thing.  And the web interface starts a forrestbot process and doesn't watch it's 
+progress directly.  So look at the debugging output for the command executed and
+the working directory used.  Log into the server using the login of the Tomcat server
+and cd to the working directory and then execute the command.  This will fairly
+accurately simulate what the web interface does.
+
+Also, set debug-exec=true in settings.properties and make sure log4j.properties
 logs DEBUG.  This will log all the thread output.

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/lib/README.txt
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/lib/README.txt	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/lib/README.txt	Wed Mar 17 21:11:06 2004
@@ -1,6 +1,6 @@
-This directory is *ONLY* for dependencies that are not in a maven repository.
-
-If you need to put a .jar file here, then you need to specify something like this in project.properties
-
-maven.jar.override = on
-maven.jar.osuser = ${basedir}/lib/osuser-1.0-dev.jar
+This directory is *ONLY* for dependencies that are not in a maven repository.
+
+If you need to put a .jar file here, then you need to specify something like this in project.properties
+
+maven.jar.override = on
+maven.jar.osuser = ${basedir}/lib/osuser-1.0-dev.jar

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/maven.xml
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/maven.xml	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/maven.xml	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -14,9 +14,9 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<project
-  default="war"
-  xmlns:j="jelly:core"
-  xmlns:u="jelly:util">
-
+<project
+  default="war"
+  xmlns:j="jelly:core"
+  xmlns:u="jelly:util">
+
 </project>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/project.properties
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/project.properties	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/project.properties	Wed Mar 17 21:11:06 2004
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-maven.jar.override = on
-maven.jar.osuser = ${basedir}/lib/osuser-1.0-dev.jar
-maven.jar.oscore = ${basedir}/lib/oscore-2.2.2.jar
+maven.jar.override = on
+maven.jar.osuser = ${basedir}/lib/osuser-1.0-dev.jar
+maven.jar.oscore = ${basedir}/lib/oscore-2.2.2.jar
 maven.jar.propertyset = ${basedir}/lib/propertyset-1.2.jar

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/project.xml
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/project.xml	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/project.xml	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="ISO-8859-1"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -14,149 +14,149 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<project>
-
-  <!-- the version of maven's project object model -->
-  <pomVersion>3</pomVersion>
-  
-  <!-- a unique name for this project -->
-  <id>forrestbot-webapp</id>
-  
-  <!-- a short but descriptive name for the project -->
-  <name>Forrestbot Webapp</name>
-  
-  <!-- The version of the project under development, e.g.
-       1.1, 1.2, 2.0-SNAPSHOT -->
-  <currentVersion>2.0</currentVersion>
-  
-  <!-- details about the organization that 'owns' the project -->
-  <organization>
-    <name>Apache Software Foundation</name>
-    <url>http://www.apache.org/</url>
-  </organization>
-  
-  <!-- the year the project started -->
-  <inceptionYear>2004</inceptionYear>
-  <package>org.apache.forrest.forrestbot.webapp</package>
-
-  <!-- jar files the project is dependent on -->
-  <dependencies>
-    <!-- for build only -->
-    <dependency>
-      <id>servletapi</id>
-      <version>2.3</version>
-    </dependency>
-    
-    <!-- include in war for runtime -->
-    <dependency>
-      <id>xerces</id>
-      <version>2.4.0</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>jstl</id>
-      <version>1.0.2</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>log4j</id>
-      <version>1.2.8</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>struts</id>
-      <version>1.1</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>struts</id>
-      <artifactId>struts-el</artifactId>
-      <version>1.1</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <groupId>taglibs</groupId>
-      <artifactId>standard</artifactId>
-      <version>1.0.4</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>commons-logging</id>
-      <version>1.0.3</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>commons-beanutils</id>
-      <version>1.6.1</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>commons-digester</id>
-      <version>1.5</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>commons-collections</id>
-      <version>2.1</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>commons-validator</id>
-      <version>1.0.2</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    
-    <!-- osuser and dependencies -->
-    <dependency>
-      <id>osuser</id>
-      <version>1.0-dev</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>oscore</id>
-      <version>2.2.2</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>propertyset</id>
-      <version>1.2</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-    <dependency>
-      <id>dom4j</id>
-      <version>1.4</version>
-      <properties><war.bundle>true</war.bundle></properties>
-    </dependency>
-
-    <!-- 2.3+ servlet container would have the struts tlds already 
-    ...
-    -->
-    
-  </dependencies>
-  
-  <!-- build information for the project -->
-  <build>
-    <sourceDirectory>src</sourceDirectory>
-
-    <resources>
-      <resource>
-        <directory>src/conf</directory>
-        <includes>
-          <include>*.properties</include>
-          <include>*.xml</include>
-        </includes>
-      </resource>
-      <resource>
-        <directory>src/java/org/apache/forrest/forrestbot/webapp</directory>
-        <targetPath>org/apache/forrest/forrestbot/webapp</targetPath>
-        <includes>
-          <include>*.properties</include>
-          <include>*.xml</include>
-        </includes>
-      </resource>
-    </resources>
-  </build>
-
-
-</project>
-
+<project>
+
+  <!-- the version of maven's project object model -->
+  <pomVersion>3</pomVersion>
+  
+  <!-- a unique name for this project -->
+  <id>forrestbot-webapp</id>
+  
+  <!-- a short but descriptive name for the project -->
+  <name>Forrestbot Webapp</name>
+  
+  <!-- The version of the project under development, e.g.
+       1.1, 1.2, 2.0-SNAPSHOT -->
+  <currentVersion>2.0</currentVersion>
+  
+  <!-- details about the organization that 'owns' the project -->
+  <organization>
+    <name>Apache Software Foundation</name>
+    <url>http://www.apache.org/</url>
+  </organization>
+  
+  <!-- the year the project started -->
+  <inceptionYear>2004</inceptionYear>
+  <package>org.apache.forrest.forrestbot.webapp</package>
+
+  <!-- jar files the project is dependent on -->
+  <dependencies>
+    <!-- for build only -->
+    <dependency>
+      <id>servletapi</id>
+      <version>2.3</version>
+    </dependency>
+    
+    <!-- include in war for runtime -->
+    <dependency>
+      <id>xerces</id>
+      <version>2.4.0</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>jstl</id>
+      <version>1.0.2</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>log4j</id>
+      <version>1.2.8</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>struts</id>
+      <version>1.1</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>struts</id>
+      <artifactId>struts-el</artifactId>
+      <version>1.1</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <groupId>taglibs</groupId>
+      <artifactId>standard</artifactId>
+      <version>1.0.4</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>commons-logging</id>
+      <version>1.0.3</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>commons-beanutils</id>
+      <version>1.6.1</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>commons-digester</id>
+      <version>1.5</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>commons-collections</id>
+      <version>2.1</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>commons-validator</id>
+      <version>1.0.2</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    
+    <!-- osuser and dependencies -->
+    <dependency>
+      <id>osuser</id>
+      <version>1.0-dev</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>oscore</id>
+      <version>2.2.2</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>propertyset</id>
+      <version>1.2</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+    <dependency>
+      <id>dom4j</id>
+      <version>1.4</version>
+      <properties><war.bundle>true</war.bundle></properties>
+    </dependency>
+
+    <!-- 2.3+ servlet container would have the struts tlds already 
+    ...
+    -->
+    
+  </dependencies>
+  
+  <!-- build information for the project -->
+  <build>
+    <sourceDirectory>src</sourceDirectory>
+
+    <resources>
+      <resource>
+        <directory>src/conf</directory>
+        <includes>
+          <include>*.properties</include>
+          <include>*.xml</include>
+        </includes>
+      </resource>
+      <resource>
+        <directory>src/java/org/apache/forrest/forrestbot/webapp</directory>
+        <targetPath>org/apache/forrest/forrestbot/webapp</targetPath>
+        <includes>
+          <include>*.properties</include>
+          <include>*.xml</include>
+        </includes>
+      </resource>
+    </resources>
+  </build>
+
+
+</project>
+

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/groups.xml
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/groups.xml	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/groups.xml	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -14,22 +14,22 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-
-<groups>
-    <group id="All Projects">
-        <!-- projects -->
-        <user id="xml-forrest"/>
-        <user id="xml-forrest-krysalis"/>
-        <user id="xml-forrest-template"/>
-        <user id="xml-xindice"/>
-        <user id="incubator-site"/>
-        <user id="xml-site"/>
-        <user id="xml-fop"/>
-        <user id="avalon-site"/>
-        <user id="avalon-phoenix"/>
-        <user id="krysalis-centipede"/>
-        <user id="ws-site"/>
-        <!-- users -->
-        <user id="forrest-dev"/>
-    </group>
+
+<groups>
+    <group id="All Projects">
+        <!-- projects -->
+        <user id="xml-forrest"/>
+        <user id="xml-forrest-krysalis"/>
+        <user id="xml-forrest-template"/>
+        <user id="xml-xindice"/>
+        <user id="incubator-site"/>
+        <user id="xml-site"/>
+        <user id="xml-fop"/>
+        <user id="avalon-site"/>
+        <user id="avalon-phoenix"/>
+        <user id="krysalis-centipede"/>
+        <user id="ws-site"/>
+        <!-- users -->
+        <user id="forrest-dev"/>
+    </group>
 </groups>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/log4j.properties
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/log4j.properties	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/log4j.properties	Wed Mar 17 21:11:06 2004
@@ -12,15 +12,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-#log4j.rootLogger=DEBUG, socket, stdout
-log4j.rootLogger=WARN, stdout
-
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
-
-log4j.appender.socket=org.apache.log4j.net.SocketAppender
-log4j.appender.socket.RemoteHost=localhost
-log4j.appender.socket.Port=4445
-
-log4j.appender.file=org.apache.log4j.FileAppender
-log4j.appender.file.File=forrestbot-webapp.log
+#log4j.rootLogger=DEBUG, socket, stdout
+log4j.rootLogger=WARN, stdout
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
+
+log4j.appender.socket=org.apache.log4j.net.SocketAppender
+log4j.appender.socket.RemoteHost=localhost
+log4j.appender.socket.Port=4445
+
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.File=forrestbot-webapp.log

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/osuser.xml
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/osuser.xml	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/osuser.xml	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -14,24 +14,24 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<opensymphony-user>
-    <!-- users -->
-    <provider class="com.opensymphony.user.provider.file.XMLAccessProvider">
-        <property name="storeFile">users.xml</property>
-        <property name="storeFileType">resource</property>
-    </provider>
-    
-    <!-- projects -->
-    <provider class="com.opensymphony.user.provider.file.XMLCredentialsProvider">
-        <property name="storeFile">projects.xml</property>
-        <property name="storeFileType">resource</property>
-    </provider>
-    
-    <!-- groups -->
-    <provider class="com.opensymphony.user.provider.file.XMLAccessProvider">
-        <property name="storeFile">groups.xml</property>
-        <property name="storeFileType">resource</property>
-    </provider>
-    
-    <provider class="com.opensymphony.user.provider.memory.MemoryProfileProvider" />
+<opensymphony-user>
+    <!-- users -->
+    <provider class="com.opensymphony.user.provider.file.XMLAccessProvider">
+        <property name="storeFile">users.xml</property>
+        <property name="storeFileType">resource</property>
+    </provider>
+    
+    <!-- projects -->
+    <provider class="com.opensymphony.user.provider.file.XMLCredentialsProvider">
+        <property name="storeFile">projects.xml</property>
+        <property name="storeFileType">resource</property>
+    </provider>
+    
+    <!-- groups -->
+    <provider class="com.opensymphony.user.provider.file.XMLAccessProvider">
+        <property name="storeFile">groups.xml</property>
+        <property name="storeFileType">resource</property>
+    </provider>
+    
+    <provider class="com.opensymphony.user.provider.memory.MemoryProfileProvider" />
 </opensymphony-user>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/projects.xml
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/projects.xml	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/projects.xml	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -14,17 +14,17 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-
-<users>
-    <user id="xml-forrest"/>
-    <user id="xml-forrest-krysalis"/>
-    <user id="xml-forrest-template"/>
-    <user id="xml-xindice"/>
-    <user id="incubator-site"/>
-    <user id="xml-site"/>
-    <user id="xml-fop"/>
-    <user id="avalon-site"/>
-    <user id="avalon-phoenix"/>
-    <user id="krysalis-centipede"/>
-    <user id="ws-site"/>
+
+<users>
+    <user id="xml-forrest"/>
+    <user id="xml-forrest-krysalis"/>
+    <user id="xml-forrest-template"/>
+    <user id="xml-xindice"/>
+    <user id="incubator-site"/>
+    <user id="xml-site"/>
+    <user id="xml-fop"/>
+    <user id="avalon-site"/>
+    <user id="avalon-phoenix"/>
+    <user id="krysalis-centipede"/>
+    <user id="ws-site"/>
 </users>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/settings.properties
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/settings.properties	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/settings.properties	Wed Mar 17 21:11:06 2004
@@ -12,44 +12,44 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# settings.properties is used to configure the webapp to look
-# in certain locations for files and directories
-#
-# all of the following should be absolute
-#
-# forrest executable
-#forrest-exec=/path/to/xml-forrest/bin/forrest
-#forrest-exec=d:/path/to/xml-forrest/bin/forrest.bat
-#
-# directory that contains the forrestbot definition files for each site
-#config-dir=/path/to/somewhere/conf
-#
-# filesystem paths
-#build-dir=/path/to/somewhere/build
-#logs-dir=/path/to/somewhere/logs
-#
-# URLs (for HTML links)
-#build-url=http://somedomain/path/to/builds
-#
-# this will debug ALL output from the 'build' and 'deploy' processes that are started
-#debug-exec=false
-# 
-# seconds to wait before refreshing log viewing page
-#refreshrate=60
-#
-# customize what targets to run (e.g. "build notify.special")
-#targets.build=build
-#targets.deploy=deploy
-
-forrest-exec=c:/path/to/forrest/bin/forrest.bat
-
-config-dir=c:/path/to/forrestbot/projects
-logs-dir=c:/some/path/to/build/logs
-build-dir=c:/some/path/to/build/sites
-build-url=http://127.0.0.1/myprojects
-
-debug-exec=false
-refreshrate=60
-
-targets.build=build
+# settings.properties is used to configure the webapp to look
+# in certain locations for files and directories
+#
+# all of the following should be absolute
+#
+# forrest executable
+#forrest-exec=/path/to/xml-forrest/bin/forrest
+#forrest-exec=d:/path/to/xml-forrest/bin/forrest.bat
+#
+# directory that contains the forrestbot definition files for each site
+#config-dir=/path/to/somewhere/conf
+#
+# filesystem paths
+#build-dir=/path/to/somewhere/build
+#logs-dir=/path/to/somewhere/logs
+#
+# URLs (for HTML links)
+#build-url=http://somedomain/path/to/builds
+#
+# this will debug ALL output from the 'build' and 'deploy' processes that are started
+#debug-exec=false
+# 
+# seconds to wait before refreshing log viewing page
+#refreshrate=60
+#
+# customize what targets to run (e.g. "build notify.special")
+#targets.build=build
+#targets.deploy=deploy
+
+forrest-exec=c:/path/to/forrest/bin/forrest.bat
+
+config-dir=c:/path/to/forrestbot/projects
+logs-dir=c:/some/path/to/build/logs
+build-dir=c:/some/path/to/build/sites
+build-url=http://127.0.0.1/myprojects
+
+debug-exec=false
+refreshrate=60
+
+targets.build=build
 targets.deploy=deploy

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/users.xml
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/users.xml	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/conf/users.xml	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -14,7 +14,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-
-<users>
-    <user id="forrest-dev" password="forrest-dev"/>
+
+<users>
+    <user id="forrest-dev" password="forrest-dev"/>
 </users>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Config.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Config.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Config.java	Wed Mar 17 21:11:06 2004
@@ -13,91 +13,91 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-/*
- * Created on Oct 21, 2003
- */
-package org.apache.forrest.forrestbot.webapp;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Properties;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
-
-/**
- * A singleton that takes care of any configuration
- */
-public class Config {
-	private static Logger log = Logger.getLogger(Config.class);
-	private static Properties p = new Properties();
-
-	// singleton holder
-	private static final class SingletonHolder {
-		static final Config a = new Config();
-	}
-	// get the singleton instance
-	public static Config getInstance() {
-		return SingletonHolder.a;
-	}
-
-	// private constructor to prevent construction
-	private Config() {
-			configureLog4j();
-			configureProperties();
-			validateProperties();
-	}
-
-	private static void configureLog4j() {
-		Properties log4j = new Properties();
-		try {
-			log4j.load(Config.class.getClassLoader().getResourceAsStream("log4j.properties"));
-		} catch (IOException e1) {
-			log.warn("can't load log4j.properties", e1);
-		}
-		PropertyConfigurator.configure(log4j);
-	}
-
-	private static void configureProperties() {
-		log.info("loading settings.properties");
-		try {
-			p.load(
-			Config.class.getClassLoader().getResourceAsStream("settings.properties"));
-		} catch (IOException e) {
-			log.error("can't load settings.properties", e);
-		}
-	}
-
-	public static void validateProperties() {
-		String [] requiredProperties = { "forrest-exec", "config-dir", "build-dir", "logs-dir", "build-url", "refreshrate", "debug-exec", "targets.build", "targets.deploy" };
-		String [] filesToCheck = { "forrest-exec" };
-		String [] directoriesToCheck = { "config-dir", "build-dir", "logs-dir" };
-		
-		for (int i = 0; i < requiredProperties.length; i++) {
-			if (getProperty(requiredProperties[i]) == null) {
-				log.error("Property " + requiredProperties[i] + " is required.");
-			}
-		}
-		for (int i = 0; i < filesToCheck.length; i++) {
-			File f = new File(getProperty(filesToCheck[i]));
-			if (!f.isFile()) {
-				log.error("Property " + filesToCheck[i] + " must reference a file.  Current value: " + f.toString());
-			}
-		}
-		for (int i = 0; i < directoriesToCheck.length; i++) {
-			File f = new File(getProperty(directoriesToCheck[i]));
-			if (!f.isDirectory()) {
-				log.error("Property " + directoriesToCheck[i] + " must reference a directory.  Current value: " + f.toString());
-			}
-		}
-	}
-
-	public static String getProperty(String arg0, String arg1) {
-		return p.getProperty(arg0, arg1);
-	}
-
-	public static String getProperty(String arg0) {
-		return p.getProperty(arg0);
-	}
-
-}
+/*
+ * Created on Oct 21, 2003
+ */
+package org.apache.forrest.forrestbot.webapp;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Properties;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.PropertyConfigurator;
+
+/**
+ * A singleton that takes care of any configuration
+ */
+public class Config {
+	private static Logger log = Logger.getLogger(Config.class);
+	private static Properties p = new Properties();
+
+	// singleton holder
+	private static final class SingletonHolder {
+		static final Config a = new Config();
+	}
+	// get the singleton instance
+	public static Config getInstance() {
+		return SingletonHolder.a;
+	}
+
+	// private constructor to prevent construction
+	private Config() {
+			configureLog4j();
+			configureProperties();
+			validateProperties();
+	}
+
+	private static void configureLog4j() {
+		Properties log4j = new Properties();
+		try {
+			log4j.load(Config.class.getClassLoader().getResourceAsStream("log4j.properties"));
+		} catch (IOException e1) {
+			log.warn("can't load log4j.properties", e1);
+		}
+		PropertyConfigurator.configure(log4j);
+	}
+
+	private static void configureProperties() {
+		log.info("loading settings.properties");
+		try {
+			p.load(
+			Config.class.getClassLoader().getResourceAsStream("settings.properties"));
+		} catch (IOException e) {
+			log.error("can't load settings.properties", e);
+		}
+	}
+
+	public static void validateProperties() {
+		String [] requiredProperties = { "forrest-exec", "config-dir", "build-dir", "logs-dir", "build-url", "refreshrate", "debug-exec", "targets.build", "targets.deploy" };
+		String [] filesToCheck = { "forrest-exec" };
+		String [] directoriesToCheck = { "config-dir", "build-dir", "logs-dir" };
+		
+		for (int i = 0; i < requiredProperties.length; i++) {
+			if (getProperty(requiredProperties[i]) == null) {
+				log.error("Property " + requiredProperties[i] + " is required.");
+			}
+		}
+		for (int i = 0; i < filesToCheck.length; i++) {
+			File f = new File(getProperty(filesToCheck[i]));
+			if (!f.isFile()) {
+				log.error("Property " + filesToCheck[i] + " must reference a file.  Current value: " + f.toString());
+			}
+		}
+		for (int i = 0; i < directoriesToCheck.length; i++) {
+			File f = new File(getProperty(directoriesToCheck[i]));
+			if (!f.isDirectory()) {
+				log.error("Property " + directoriesToCheck[i] + " must reference a directory.  Current value: " + f.toString());
+			}
+		}
+	}
+
+	public static String getProperty(String arg0, String arg1) {
+		return p.getProperty(arg0, arg1);
+	}
+
+	public static String getProperty(String arg0) {
+		return p.getProperty(arg0);
+	}
+
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Constants.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Constants.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Constants.java	Wed Mar 17 21:11:06 2004
@@ -13,67 +13,67 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-/*
- * Created on Oct 21, 2003
- */
-package org.apache.forrest.forrestbot.webapp;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-
-public class Constants {
-
-	private static Logger log = Logger.getLogger(Constants.class);
-	
-    // FORWARD NAMES
-    public static final String FORWARD_NAME_SUCCESS = "Success";
-    public static final String FORWARD_NAME_FAILURE = "Failure";
-	public static final String FORWARD_NAME_AUTHORIZED = "Authorized";
-
-	// string tokens
-	public static final String BUILD_SUCCESS_STRING = "BUILD SUCCESSFUL";
-
-    // status values
-	public static final int STATUS_UNKNOWN = 0;
-	public static final int STATUS_FAILED = 1;
-	public static final int STATUS_SUCCESS = 2;
-	public static final int STATUS_RUNNING = 3;
-
-	
-	/**
-	 * Creates a map of our constants so it can be passed to struts JSPs
-	 * only objects, not static stuff can be accessed in a JSP expression
-	 * 
-	 * http://www.mail-archive.com/taglibs-user@jakarta.apache.org/msg05024.html
-	 */
-	private static Map constantsMap;
-	public static Map getConstantFieldsAsMap()
-	  throws IllegalAccessException {
-	  	
-		if (constantsMap != null)
-			return constantsMap;
-	  	
-	  	log.debug("building constants map");
-		Field[] allFields = Constants.class.getDeclaredFields();
-		int numFields = allFields.length;
-		Map propMap = new HashMap(numFields);
-		for (int i = 0; i < numFields; i++) {
-			Field f = allFields[i];
-			int mods = f.getModifiers();
-			if (Modifier.isPublic(mods) &&
-				Modifier.isStatic(mods) &&
-				Modifier.isFinal(mods)) {
-				String name = f.getName();
-				Object value = f.get(null);
-				propMap.put(name, value);
-			}
-		}
-		constantsMap = Collections.unmodifiableMap(propMap);
-		return constantsMap;
-	}
-}
+/*
+ * Created on Oct 21, 2003
+ */
+package org.apache.forrest.forrestbot.webapp;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.log4j.Logger;
+
+public class Constants {
+
+	private static Logger log = Logger.getLogger(Constants.class);
+	
+    // FORWARD NAMES
+    public static final String FORWARD_NAME_SUCCESS = "Success";
+    public static final String FORWARD_NAME_FAILURE = "Failure";
+	public static final String FORWARD_NAME_AUTHORIZED = "Authorized";
+
+	// string tokens
+	public static final String BUILD_SUCCESS_STRING = "BUILD SUCCESSFUL";
+
+    // status values
+	public static final int STATUS_UNKNOWN = 0;
+	public static final int STATUS_FAILED = 1;
+	public static final int STATUS_SUCCESS = 2;
+	public static final int STATUS_RUNNING = 3;
+
+	
+	/**
+	 * Creates a map of our constants so it can be passed to struts JSPs
+	 * only objects, not static stuff can be accessed in a JSP expression
+	 * 
+	 * http://www.mail-archive.com/taglibs-user@jakarta.apache.org/msg05024.html
+	 */
+	private static Map constantsMap;
+	public static Map getConstantFieldsAsMap()
+	  throws IllegalAccessException {
+	  	
+		if (constantsMap != null)
+			return constantsMap;
+	  	
+	  	log.debug("building constants map");
+		Field[] allFields = Constants.class.getDeclaredFields();
+		int numFields = allFields.length;
+		Map propMap = new HashMap(numFields);
+		for (int i = 0; i < numFields; i++) {
+			Field f = allFields[i];
+			int mods = f.getModifiers();
+			if (Modifier.isPublic(mods) &&
+				Modifier.isStatic(mods) &&
+				Modifier.isFinal(mods)) {
+				String name = f.getName();
+				Object value = f.get(null);
+				propMap.put(name, value);
+			}
+		}
+		constantsMap = Collections.unmodifiableMap(propMap);
+		return constantsMap;
+	}
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Resources.properties
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Resources.properties	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/Resources.properties	Wed Mar 17 21:11:06 2004
@@ -12,44 +12,44 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-prompt.username=Username:
-prompt.password=Password:
-button.submit=Submit
-
-summary.current.time=Current server time:
-summary.site=Site
-summary.status=Status
-summary.log=Log
-summary.date=Date
-summary.execute=Execute
-summary.execute.build=Build
-summary.execute.deploy=Deploy
-summary.status.success=Success
-summary.status.failed=Failed
-summary.status.unknown=Unknown
-summary.status.running=Running
-
-login.as=Logged in as {0}
-login.out=Log out
-login.out.done=You have succesfully logged out
-
-log.back=Back
-log.refresh=Refreshes every {0} seconds
-log.force.refresh=Force refresh
-
-back.to.main=Back to main
-view.log=View log for {0}
-execute.started=Started process for {0}.  It may take a minute or two for the log file to begin (it has to get the source first).
-
-error.required=Please enter a value for '{0}'
-error.authentication=Invalid username/password
-error.authorization=Not authorized, sorry
-error.project.notfound=Project '{0}' not found
-error.project.stillrunning=Project '{0}' is still running
-error.logfile.notfound=Log file '{0}' not found
-error.build=Error building {0}
-error.deploy=Error deploying {0}
-
-errors.header=<span style="color:red">
-errors.footer=</span>
+prompt.username=Username:
+prompt.password=Password:
+button.submit=Submit
+
+summary.current.time=Current server time:
+summary.site=Site
+summary.status=Status
+summary.log=Log
+summary.date=Date
+summary.execute=Execute
+summary.execute.build=Build
+summary.execute.deploy=Deploy
+summary.status.success=Success
+summary.status.failed=Failed
+summary.status.unknown=Unknown
+summary.status.running=Running
+
+login.as=Logged in as {0}
+login.out=Log out
+login.out.done=You have succesfully logged out
+
+log.back=Back
+log.refresh=Refreshes every {0} seconds
+log.force.refresh=Force refresh
+
+back.to.main=Back to main
+view.log=View log for {0}
+execute.started=Started process for {0}.  It may take a minute or two for the log file to begin (it has to get the source first).
+
+error.required=Please enter a value for '{0}'
+error.authentication=Invalid username/password
+error.authorization=Not authorized, sorry
+error.project.notfound=Project '{0}' not found
+error.project.stillrunning=Project '{0}' is still running
+error.logfile.notfound=Log file '{0}' not found
+error.build=Error building {0}
+error.deploy=Error deploying {0}
+
+errors.header=<span style="color:red">
+errors.footer=</span>
 errors.suffix=<br/>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/BaseAction.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/BaseAction.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/BaseAction.java	Wed Mar 17 21:11:06 2004
@@ -13,63 +13,63 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.forrest.forrestbot.webapp.action;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.forrest.forrestbot.webapp.Config;
-import org.apache.forrest.forrestbot.webapp.Constants;
-import org.apache.log4j.Logger;
-import org.apache.struts.action.Action;
-import org.apache.struts.action.ActionError;
-import org.apache.struts.action.ActionErrors;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-
-public class BaseAction extends Action {
-	private static Logger log = Logger.getLogger(BaseAction.class);
-	
-	public BaseAction() {
-		super();
-		Config.getInstance(); // set up log4j
-	}
-
-	public ActionForward execute(
-		ActionMapping mapping,
-		ActionForm form,
-		HttpServletRequest request,
-		HttpServletResponse response)
-		throws Exception {
-		super.execute(mapping, form, request, response);
-		
-		/*
-		 * Make the constants available to all JSP expressions
-		 */
-		request.setAttribute("Constants", Constants.getConstantFieldsAsMap());
-		
-		response.setHeader("Pragma", "no-cache");
-
-		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
-	}
-	
-	protected boolean checkAuthorized(HttpServletRequest request, HttpServletResponse response, boolean setErrors) {
-		Object attr = request.getSession(true).getAttribute("auth");
-		if (attr != null && ((Boolean)attr).booleanValue()) {
-			return true;
-		} else {
-			if (setErrors) {
-				ActionErrors errors = new ActionErrors();
-				errors.add("authorize", new ActionError("error.authorization"));
-				saveErrors(request, errors);
-			}
-			return false;
-		}
-	}
-	
-	protected boolean checkAuthorized(HttpServletRequest request, HttpServletResponse response) {
-		return checkAuthorized(request, response, true);
-	}
-
-}
+package org.apache.forrest.forrestbot.webapp.action;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.forrest.forrestbot.webapp.Config;
+import org.apache.forrest.forrestbot.webapp.Constants;
+import org.apache.log4j.Logger;
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionError;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+public class BaseAction extends Action {
+	private static Logger log = Logger.getLogger(BaseAction.class);
+	
+	public BaseAction() {
+		super();
+		Config.getInstance(); // set up log4j
+	}
+
+	public ActionForward execute(
+		ActionMapping mapping,
+		ActionForm form,
+		HttpServletRequest request,
+		HttpServletResponse response)
+		throws Exception {
+		super.execute(mapping, form, request, response);
+		
+		/*
+		 * Make the constants available to all JSP expressions
+		 */
+		request.setAttribute("Constants", Constants.getConstantFieldsAsMap());
+		
+		response.setHeader("Pragma", "no-cache");
+
+		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
+	}
+	
+	protected boolean checkAuthorized(HttpServletRequest request, HttpServletResponse response, boolean setErrors) {
+		Object attr = request.getSession(true).getAttribute("auth");
+		if (attr != null && ((Boolean)attr).booleanValue()) {
+			return true;
+		} else {
+			if (setErrors) {
+				ActionErrors errors = new ActionErrors();
+				errors.add("authorize", new ActionError("error.authorization"));
+				saveErrors(request, errors);
+			}
+			return false;
+		}
+	}
+	
+	protected boolean checkAuthorized(HttpServletRequest request, HttpServletResponse response) {
+		return checkAuthorized(request, response, true);
+	}
+
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ExecuteAction.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ExecuteAction.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ExecuteAction.java	Wed Mar 17 21:11:06 2004
@@ -13,82 +13,82 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.forrest.forrestbot.webapp.action;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.apache.forrest.forrestbot.webapp.Constants;
-import org.apache.forrest.forrestbot.webapp.util.Project;
-import org.apache.log4j.Logger;
-import org.apache.struts.action.ActionError;
-import org.apache.struts.action.ActionErrors;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-import org.apache.forrest.forrestbot.webapp.util.Executor;
-
-public final class ExecuteAction extends BaseAction {
-	private static Logger log = Logger.getLogger(ExecuteAction.class);
-
-	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
-		super.execute(mapping, form, request, response);
-		
-		if (!checkAuthorized(request, response))
-			return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
-
-		ActionErrors errors = new ActionErrors();
-
-		String project = (String) PropertyUtils.getSimpleProperty(form, "project");
-		String build = (String) PropertyUtils.getSimpleProperty(form, "build");
-		String deploy = (String) PropertyUtils.getSimpleProperty(form, "deploy");
-
-		request.setAttribute("project", project);
-
-		if (!Project.exists(project)) {
-			log.warn("project doesn't exist: " + project);
-			errors.add("execute", new ActionError("error.project.notfound", project));
-			saveErrors(request, errors);
-			return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
-		}
-		
-		Project p = new Project();
-		p.asDTO().setName(project);
-		p.loadData();
-		p.loadSecurity((String) request.getSession(true).getAttribute("username"));
-		if (p.asDTO().getStatus() == Constants.STATUS_RUNNING) {
-			log.warn("can't execute " + project + " while still running");
-			errors.add("execute", new ActionError("error.project.stillrunning", project));
-			saveErrors(request, errors);
-			return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
-		}
-
-		if (build != null) {
-			if (p.asDTO().isBuildable()) {
-				try {
-					Executor.build(project);
-				} catch (Exception e) {
-					log.warn("couldn't build " + project, e);
-					errors.add("execute", new ActionError("error.build", project));
-				}
-			} else {
-				errors.add("execute", new ActionError("error.authorization"));
-			}
-		} else if (deploy != null) {
-			if (p.asDTO().isDeployable()) {
-				try {
-					Executor.deploy(project);
-				} catch (Exception e) {
-					log.warn("couldn't deploy " + project, e);
-					errors.add("execute", new ActionError("error.deploy", project));
-				}
-			} else {
-				errors.add("execute", new ActionError("error.authorization"));
-			}
-		}
-		saveErrors(request, errors);
-		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
-
-	}
-}
+package org.apache.forrest.forrestbot.webapp.action;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.forrest.forrestbot.webapp.Constants;
+import org.apache.forrest.forrestbot.webapp.util.Project;
+import org.apache.log4j.Logger;
+import org.apache.struts.action.ActionError;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.forrest.forrestbot.webapp.util.Executor;
+
+public final class ExecuteAction extends BaseAction {
+	private static Logger log = Logger.getLogger(ExecuteAction.class);
+
+	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
+		super.execute(mapping, form, request, response);
+		
+		if (!checkAuthorized(request, response))
+			return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
+
+		ActionErrors errors = new ActionErrors();
+
+		String project = (String) PropertyUtils.getSimpleProperty(form, "project");
+		String build = (String) PropertyUtils.getSimpleProperty(form, "build");
+		String deploy = (String) PropertyUtils.getSimpleProperty(form, "deploy");
+
+		request.setAttribute("project", project);
+
+		if (!Project.exists(project)) {
+			log.warn("project doesn't exist: " + project);
+			errors.add("execute", new ActionError("error.project.notfound", project));
+			saveErrors(request, errors);
+			return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
+		}
+		
+		Project p = new Project();
+		p.asDTO().setName(project);
+		p.loadData();
+		p.loadSecurity((String) request.getSession(true).getAttribute("username"));
+		if (p.asDTO().getStatus() == Constants.STATUS_RUNNING) {
+			log.warn("can't execute " + project + " while still running");
+			errors.add("execute", new ActionError("error.project.stillrunning", project));
+			saveErrors(request, errors);
+			return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
+		}
+
+		if (build != null) {
+			if (p.asDTO().isBuildable()) {
+				try {
+					Executor.build(project);
+				} catch (Exception e) {
+					log.warn("couldn't build " + project, e);
+					errors.add("execute", new ActionError("error.build", project));
+				}
+			} else {
+				errors.add("execute", new ActionError("error.authorization"));
+			}
+		} else if (deploy != null) {
+			if (p.asDTO().isDeployable()) {
+				try {
+					Executor.deploy(project);
+				} catch (Exception e) {
+					log.warn("couldn't deploy " + project, e);
+					errors.add("execute", new ActionError("error.deploy", project));
+				}
+			} else {
+				errors.add("execute", new ActionError("error.authorization"));
+			}
+		}
+		saveErrors(request, errors);
+		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
+
+	}
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/LogoutAction.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/LogoutAction.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/LogoutAction.java	Wed Mar 17 21:11:06 2004
@@ -13,30 +13,30 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.forrest.forrestbot.webapp.action;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.forrest.forrestbot.webapp.Constants;
-import org.apache.log4j.Logger;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-
-public final class LogoutAction extends BaseAction {
-	private static Logger log = Logger.getLogger(LogoutAction.class);
-
-	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
-		super.execute(mapping, form, request, response);
-
-		// session
-		request.getSession(true).removeAttribute("auth");
-		
-		// request & application for good measure
-		request.removeAttribute("auth");
-		request.getSession(true).getServletContext().removeAttribute("auth");
-		
-		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
-	}
-}
+package org.apache.forrest.forrestbot.webapp.action;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.forrest.forrestbot.webapp.Constants;
+import org.apache.log4j.Logger;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+public final class LogoutAction extends BaseAction {
+	private static Logger log = Logger.getLogger(LogoutAction.class);
+
+	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
+		super.execute(mapping, form, request, response);
+
+		// session
+		request.getSession(true).removeAttribute("auth");
+		
+		// request & application for good measure
+		request.removeAttribute("auth");
+		request.getSession(true).getServletContext().removeAttribute("auth");
+		
+		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
+	}
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogBodyAction.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogBodyAction.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogBodyAction.java	Wed Mar 17 21:11:06 2004
@@ -13,63 +13,63 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.forrest.forrestbot.webapp.action;
-
-import java.io.File;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.forrest.forrestbot.webapp.Config;
-import org.apache.forrest.forrestbot.webapp.Constants;
-import org.apache.forrest.forrestbot.webapp.util.Project;
-import org.apache.log4j.Logger;
-import org.apache.struts.action.ActionError;
-import org.apache.struts.action.ActionErrors;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-
-public final class ViewLogBodyAction extends BaseAction {
-	private static Logger log = Logger.getLogger(ViewLogBodyAction.class);
-
-	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
-		super.execute(mapping, form, request, response);
-
-		ActionErrors errors = new ActionErrors();
-
-		String refreshrate = Config.getProperty("refreshrate");
-		String project = request.getParameter("project");
-		String logfile = null;
-
-		// security checks
-		if (!Project.exists(project)) {
-			log.warn("project doesn't exist: " + project);
-			errors.add("logfile", new ActionError("error.project.notfound", project));
-		}
-
-		if (errors.isEmpty()) {
-			logfile = Config.getProperty("logs-dir") + "/" + project + ".log";
-			log.debug(logfile);
-			File f = new File(logfile);
-			if (!f.isFile()) {
-				log.warn("couldn't find file: " + logfile);
-				errors.add("logfile", new ActionError("error.logfile.notfound", logfile));
-			}
-		}
-		log.debug("errors: " + errors.size());
-		saveErrors(request, errors);
-
-		response.addHeader("Refresh", refreshrate);
-
-		//request.setAttribute("refreshrate", refreshrate);
-		if (errors.isEmpty())
-			request.setAttribute("logfile", logfile);
-		else
-			request.setAttribute("logfile", null);
-
-		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
-
-	}
-
-}
+package org.apache.forrest.forrestbot.webapp.action;
+
+import java.io.File;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.forrest.forrestbot.webapp.Config;
+import org.apache.forrest.forrestbot.webapp.Constants;
+import org.apache.forrest.forrestbot.webapp.util.Project;
+import org.apache.log4j.Logger;
+import org.apache.struts.action.ActionError;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+public final class ViewLogBodyAction extends BaseAction {
+	private static Logger log = Logger.getLogger(ViewLogBodyAction.class);
+
+	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
+		super.execute(mapping, form, request, response);
+
+		ActionErrors errors = new ActionErrors();
+
+		String refreshrate = Config.getProperty("refreshrate");
+		String project = request.getParameter("project");
+		String logfile = null;
+
+		// security checks
+		if (!Project.exists(project)) {
+			log.warn("project doesn't exist: " + project);
+			errors.add("logfile", new ActionError("error.project.notfound", project));
+		}
+
+		if (errors.isEmpty()) {
+			logfile = Config.getProperty("logs-dir") + "/" + project + ".log";
+			log.debug(logfile);
+			File f = new File(logfile);
+			if (!f.isFile()) {
+				log.warn("couldn't find file: " + logfile);
+				errors.add("logfile", new ActionError("error.logfile.notfound", logfile));
+			}
+		}
+		log.debug("errors: " + errors.size());
+		saveErrors(request, errors);
+
+		response.addHeader("Refresh", refreshrate);
+
+		//request.setAttribute("refreshrate", refreshrate);
+		if (errors.isEmpty())
+			request.setAttribute("logfile", logfile);
+		else
+			request.setAttribute("logfile", null);
+
+		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
+
+	}
+
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogFrameAction.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogFrameAction.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogFrameAction.java	Wed Mar 17 21:11:06 2004
@@ -13,36 +13,36 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.forrest.forrestbot.webapp.action;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.forrest.forrestbot.webapp.Constants;
-import org.apache.log4j.Logger;
-import org.apache.struts.action.ActionErrors;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-
-public final class ViewLogFrameAction extends BaseAction {
-	private static Logger log = Logger.getLogger(ViewLogFrameAction.class);
-
-	ActionErrors errors = new ActionErrors();
-
-	public ActionForward execute(
-		ActionMapping mapping,
-		ActionForm form,
-		HttpServletRequest request,
-		HttpServletResponse response)
-		throws Exception {
-		super.execute(mapping, form, request, response);
-
-		String project = request.getParameter("project");
-		
-		request.setAttribute("project", project);
-		
-		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
-
-	}
-}
+package org.apache.forrest.forrestbot.webapp.action;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.forrest.forrestbot.webapp.Constants;
+import org.apache.log4j.Logger;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+public final class ViewLogFrameAction extends BaseAction {
+	private static Logger log = Logger.getLogger(ViewLogFrameAction.class);
+
+	ActionErrors errors = new ActionErrors();
+
+	public ActionForward execute(
+		ActionMapping mapping,
+		ActionForm form,
+		HttpServletRequest request,
+		HttpServletResponse response)
+		throws Exception {
+		super.execute(mapping, form, request, response);
+
+		String project = request.getParameter("project");
+		
+		request.setAttribute("project", project);
+		
+		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
+
+	}
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogHeaderAction.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogHeaderAction.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewLogHeaderAction.java	Wed Mar 17 21:11:06 2004
@@ -13,39 +13,39 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.forrest.forrestbot.webapp.action;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.forrest.forrestbot.webapp.Config;
-import org.apache.forrest.forrestbot.webapp.Constants;
-import org.apache.log4j.Logger;
-import org.apache.struts.action.ActionErrors;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-
-public final class ViewLogHeaderAction extends BaseAction {
-	private static Logger log = Logger.getLogger(ViewLogHeaderAction.class);
-
-	ActionErrors errors = new ActionErrors();
-
-	public ActionForward execute(
-		ActionMapping mapping,
-		ActionForm form,
-		HttpServletRequest request,
-		HttpServletResponse response)
-		throws Exception {
-		super.execute(mapping, form, request, response);
-
-		String refreshrate = Config.getProperty("refreshrate");
-		String project = request.getParameter("project");
-
-		request.setAttribute("refreshrate", refreshrate);
-		request.setAttribute("project", project);
-		
-		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
-
-	}
-}
+package org.apache.forrest.forrestbot.webapp.action;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.forrest.forrestbot.webapp.Config;
+import org.apache.forrest.forrestbot.webapp.Constants;
+import org.apache.log4j.Logger;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+public final class ViewLogHeaderAction extends BaseAction {
+	private static Logger log = Logger.getLogger(ViewLogHeaderAction.class);
+
+	ActionErrors errors = new ActionErrors();
+
+	public ActionForward execute(
+		ActionMapping mapping,
+		ActionForm form,
+		HttpServletRequest request,
+		HttpServletResponse response)
+		throws Exception {
+		super.execute(mapping, form, request, response);
+
+		String refreshrate = Config.getProperty("refreshrate");
+		String project = request.getParameter("project");
+
+		request.setAttribute("refreshrate", refreshrate);
+		request.setAttribute("project", project);
+		
+		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
+
+	}
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewSummaryAction.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewSummaryAction.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/action/ViewSummaryAction.java	Wed Mar 17 21:11:06 2004
@@ -13,82 +13,82 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.forrest.forrestbot.webapp.action;
-
-import java.util.Collection;
-import java.util.Date;
-import java.util.Iterator;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.beanutils.PropertyUtils;
-import org.apache.forrest.forrestbot.webapp.Constants;
-import org.apache.forrest.forrestbot.webapp.dto.ProjectDTO;
-import org.apache.forrest.forrestbot.webapp.util.Project;
-import org.apache.log4j.Logger;
-import org.apache.struts.action.ActionError;
-import org.apache.struts.action.ActionErrors;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-
-import com.opensymphony.user.EntityNotFoundException;
-import com.opensymphony.user.UserManager;
-
-public final class ViewSummaryAction extends BaseAction {
-	private static Logger log = Logger.getLogger(ViewSummaryAction.class);
-
-	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
-		super.execute(mapping, form, request, response);
-
-		if (form != null && !PropertyUtils.getSimpleProperty(form, "submit").equals("unsubmitted")) {
-			ActionErrors errors = form.validate(mapping, request);
-
-			String username = (String) PropertyUtils.getSimpleProperty(form, "username");
-			String password = (String) PropertyUtils.getSimpleProperty(form, "password");
-
-			request.setAttribute("username", username);
-			
-
-			UserManager userManager = UserManager.getInstance();
-
-			boolean validPassword = false;
-			try {
-				validPassword = userManager.getUser(username).authenticate(password);
-			} catch (EntityNotFoundException e) {
-				validPassword = false;
-			}
-			if (!validPassword) {
-				log.debug("bad password");
-				errors.add("password", new ActionError("error.authentication"));
-				saveErrors(request, errors);
-				return mapping.findForward(Constants.FORWARD_NAME_FAILURE);
-			} else {
-				log.debug("authenticated");
-				request.getSession(true).setAttribute("auth", Boolean.TRUE);
-				request.getSession(true).setAttribute("username", username);
-				//return mapping.findForward(Constants.FORWARD_NAME_AUTHORIZED);
-			}
-		}
-
-		request.setAttribute("serverTime", new Date());
-
-		if (checkAuthorized(request, response, false)) {
-			// set access for each project
-			String currentUser = (String) request.getSession(true).getAttribute("username");
-			Collection projects = Project.getAllProjects();
-			for (Iterator i = projects.iterator(); i.hasNext();) {
-				ProjectDTO projectDTO = (ProjectDTO)i.next();
-				(new Project(projectDTO)).loadSecurity(currentUser);
-			}
-			request.setAttribute("projects", projects);
-			
-			return mapping.findForward(Constants.FORWARD_NAME_AUTHORIZED);
-		}
-		
-		request.setAttribute("projects", Project.getAllProjects());
-		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
-
-	}
-}
+package org.apache.forrest.forrestbot.webapp.action;
+
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.beanutils.PropertyUtils;
+import org.apache.forrest.forrestbot.webapp.Constants;
+import org.apache.forrest.forrestbot.webapp.dto.ProjectDTO;
+import org.apache.forrest.forrestbot.webapp.util.Project;
+import org.apache.log4j.Logger;
+import org.apache.struts.action.ActionError;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+import com.opensymphony.user.EntityNotFoundException;
+import com.opensymphony.user.UserManager;
+
+public final class ViewSummaryAction extends BaseAction {
+	private static Logger log = Logger.getLogger(ViewSummaryAction.class);
+
+	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
+		super.execute(mapping, form, request, response);
+
+		if (form != null && !PropertyUtils.getSimpleProperty(form, "submit").equals("unsubmitted")) {
+			ActionErrors errors = form.validate(mapping, request);
+
+			String username = (String) PropertyUtils.getSimpleProperty(form, "username");
+			String password = (String) PropertyUtils.getSimpleProperty(form, "password");
+
+			request.setAttribute("username", username);
+			
+
+			UserManager userManager = UserManager.getInstance();
+
+			boolean validPassword = false;
+			try {
+				validPassword = userManager.getUser(username).authenticate(password);
+			} catch (EntityNotFoundException e) {
+				validPassword = false;
+			}
+			if (!validPassword) {
+				log.debug("bad password");
+				errors.add("password", new ActionError("error.authentication"));
+				saveErrors(request, errors);
+				return mapping.findForward(Constants.FORWARD_NAME_FAILURE);
+			} else {
+				log.debug("authenticated");
+				request.getSession(true).setAttribute("auth", Boolean.TRUE);
+				request.getSession(true).setAttribute("username", username);
+				//return mapping.findForward(Constants.FORWARD_NAME_AUTHORIZED);
+			}
+		}
+
+		request.setAttribute("serverTime", new Date());
+
+		if (checkAuthorized(request, response, false)) {
+			// set access for each project
+			String currentUser = (String) request.getSession(true).getAttribute("username");
+			Collection projects = Project.getAllProjects();
+			for (Iterator i = projects.iterator(); i.hasNext();) {
+				ProjectDTO projectDTO = (ProjectDTO)i.next();
+				(new Project(projectDTO)).loadSecurity(currentUser);
+			}
+			request.setAttribute("projects", projects);
+			
+			return mapping.findForward(Constants.FORWARD_NAME_AUTHORIZED);
+		}
+		
+		request.setAttribute("projects", Project.getAllProjects());
+		return mapping.findForward(Constants.FORWARD_NAME_SUCCESS);
+
+	}
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/dto/ProjectDTO.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/dto/ProjectDTO.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/dto/ProjectDTO.java	Wed Mar 17 21:11:06 2004
@@ -13,133 +13,133 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-/*
- * Created on Feb 10, 2004
- */
-package org.apache.forrest.forrestbot.webapp.dto;
-
-import java.util.Date;
-
-public class ProjectDTO {
-	String name;
-	int status;
-	Date lastBuilt;
-	String logUrl;
-	String url;
-	boolean isLogged;
-	boolean deployable;
-	boolean buildable;
-
-	/**
-	 * @return
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * @return
-	 */
-	public int getStatus() {
-		return status;
-	}
-
-	/**
-	 * @param string
-	 */
-	public void setName(String string) {
-		name = string;
-	}
-
-	/**
-	 * @param string
-	 */
-	public void setStatus(int i) {
-		status = i;
-	}
-
-	/**
-	 * @return
-	 */
-	public Date getLastBuilt() {
-		return lastBuilt;
-	}
-
-	/**
-	 * @param date
-	 */
-	public void setLastBuilt(Date date) {
-		lastBuilt = date;
-	}
-
-	/**
-	 * @return
-	 */
-	public String getLogUrl() {
-		return logUrl;
-	}
-
-	/**
-	 * @return
-	 */
-	public String getUrl() {
-		return url;
-	}
-
-	/**
-	 * @param string
-	 */
-	public void setLogUrl(String string) {
-		logUrl = string;
-	}
-
-	/**
-	 * @param string
-	 */
-	public void setUrl(String string) {
-		url = string;
-	}
-
-	/**
-	 * @return
-	 */
-	public boolean isLogged() {
-		return isLogged;
-	}
-
-	/**
-	 * @param b
-	 */
-	public void setLogged(boolean b) {
-		isLogged = b;
-	}
-
-	/**
-	 * @return
-	 */
-	public boolean isBuildable() {
-		return buildable;
-	}
-
-	/**
-	 * @return
-	 */
-	public boolean isDeployable() {
-		return deployable;
-	}
-
-	/**
-	 * @param b
-	 */
-	public void setBuildable(boolean b) {
-		buildable = b;
-	}
-
-	/**
-	 * @param b
-	 */
-	public void setDeployable(boolean b) {
-		deployable = b;
-	}
-
-}
+/*
+ * Created on Feb 10, 2004
+ */
+package org.apache.forrest.forrestbot.webapp.dto;
+
+import java.util.Date;
+
+public class ProjectDTO {
+	String name;
+	int status;
+	Date lastBuilt;
+	String logUrl;
+	String url;
+	boolean isLogged;
+	boolean deployable;
+	boolean buildable;
+
+	/**
+	 * @return
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * @return
+	 */
+	public int getStatus() {
+		return status;
+	}
+
+	/**
+	 * @param string
+	 */
+	public void setName(String string) {
+		name = string;
+	}
+
+	/**
+	 * @param string
+	 */
+	public void setStatus(int i) {
+		status = i;
+	}
+
+	/**
+	 * @return
+	 */
+	public Date getLastBuilt() {
+		return lastBuilt;
+	}
+
+	/**
+	 * @param date
+	 */
+	public void setLastBuilt(Date date) {
+		lastBuilt = date;
+	}
+
+	/**
+	 * @return
+	 */
+	public String getLogUrl() {
+		return logUrl;
+	}
+
+	/**
+	 * @return
+	 */
+	public String getUrl() {
+		return url;
+	}
+
+	/**
+	 * @param string
+	 */
+	public void setLogUrl(String string) {
+		logUrl = string;
+	}
+
+	/**
+	 * @param string
+	 */
+	public void setUrl(String string) {
+		url = string;
+	}
+
+	/**
+	 * @return
+	 */
+	public boolean isLogged() {
+		return isLogged;
+	}
+
+	/**
+	 * @param b
+	 */
+	public void setLogged(boolean b) {
+		isLogged = b;
+	}
+
+	/**
+	 * @return
+	 */
+	public boolean isBuildable() {
+		return buildable;
+	}
+
+	/**
+	 * @return
+	 */
+	public boolean isDeployable() {
+		return deployable;
+	}
+
+	/**
+	 * @param b
+	 */
+	public void setBuildable(boolean b) {
+		buildable = b;
+	}
+
+	/**
+	 * @param b
+	 */
+	public void setDeployable(boolean b) {
+		deployable = b;
+	}
+
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/util/Executor.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/util/Executor.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/util/Executor.java	Wed Mar 17 21:11:06 2004
@@ -13,71 +13,71 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-/*
- * Created on Mar 9, 2004
- */
-package org.apache.forrest.forrestbot.webapp.util;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-import org.apache.forrest.forrestbot.webapp.Config;
-import org.apache.log4j.Logger;
-
-class ExecutorThread extends Thread {
-	private Process proc;
-	private Logger log;
-	private boolean debug; 
-	
-	public ExecutorThread(String id, Process p) {
-		super(id);
-		proc = p;
-		log = Logger.getLogger(Executor.class + " " + id);
-		debug = Boolean.valueOf(Config.getProperty("debug-exec")).booleanValue();
-	}
-
-	public void run() {
-		BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
-
-		try {
-			String line;
-			while ((line = br.readLine()) != null) {
-				if (debug)
-					log.debug(line);
-			}
-		} catch (IOException e) {
-			log.warn("error reading from process output", e);
-			return;
-		}
-	}
-
-}
-
-public class Executor {
-	private static Logger log = Logger.getLogger(Executor.class);
-
-	private static void run(String target, String project) throws IOException {
-		String command = Config.getProperty("forrest-exec") + " -f " + project + ".xml " + target;
-		File workingDir = new File(Config.getProperty("config-dir"));
-
-		log.debug("executing '" + command + "' in " + workingDir);
-
-		Runtime rt = Runtime.getRuntime();
-		Process proc = rt.exec(command, null, workingDir);
-		ExecutorThread execThread = new ExecutorThread(project, proc);
-		execThread.start();
-		// don't wait for it to finish
-	}
-
-	public static void build(String project) throws IOException {
-		run(Config.getProperty("targets.build"), project);
-
-	}
-
-	public static void deploy(String project) throws IOException {
-		run(Config.getProperty("targets.deploy"), project);
-	}
-
-}
+/*
+ * Created on Mar 9, 2004
+ */
+package org.apache.forrest.forrestbot.webapp.util;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.apache.forrest.forrestbot.webapp.Config;
+import org.apache.log4j.Logger;
+
+class ExecutorThread extends Thread {
+	private Process proc;
+	private Logger log;
+	private boolean debug; 
+	
+	public ExecutorThread(String id, Process p) {
+		super(id);
+		proc = p;
+		log = Logger.getLogger(Executor.class + " " + id);
+		debug = Boolean.valueOf(Config.getProperty("debug-exec")).booleanValue();
+	}
+
+	public void run() {
+		BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
+
+		try {
+			String line;
+			while ((line = br.readLine()) != null) {
+				if (debug)
+					log.debug(line);
+			}
+		} catch (IOException e) {
+			log.warn("error reading from process output", e);
+			return;
+		}
+	}
+
+}
+
+public class Executor {
+	private static Logger log = Logger.getLogger(Executor.class);
+
+	private static void run(String target, String project) throws IOException {
+		String command = Config.getProperty("forrest-exec") + " -f " + project + ".xml " + target;
+		File workingDir = new File(Config.getProperty("config-dir"));
+
+		log.debug("executing '" + command + "' in " + workingDir);
+
+		Runtime rt = Runtime.getRuntime();
+		Process proc = rt.exec(command, null, workingDir);
+		ExecutorThread execThread = new ExecutorThread(project, proc);
+		execThread.start();
+		// don't wait for it to finish
+	}
+
+	public static void build(String project) throws IOException {
+		run(Config.getProperty("targets.build"), project);
+
+	}
+
+	public static void deploy(String project) throws IOException {
+		run(Config.getProperty("targets.deploy"), project);
+	}
+
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/util/Project.java
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/util/Project.java	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/java/org/apache/forrest/forrestbot/webapp/util/Project.java	Wed Mar 17 21:11:06 2004
@@ -13,164 +13,164 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-/*
- * Created on Feb 10, 2004
- */
-package org.apache.forrest.forrestbot.webapp.util;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.Iterator;
-
-import org.apache.forrest.forrestbot.webapp.Constants;
-import org.apache.forrest.forrestbot.webapp.Config;
-import org.apache.forrest.forrestbot.webapp.dto.ProjectDTO;
-import org.apache.log4j.Logger;
-
-import com.opensymphony.user.Group;
-import com.opensymphony.user.UserManager;
-
-public class Project {
-	protected ProjectDTO dto;
-	private static Logger log = Logger.getLogger(Project.class);
-
-	private String logfile = null;
-
-	public Project() {
-		this(new ProjectDTO());
-	}
-	public Project(ProjectDTO dto) {
-		this.dto = dto;
-	}
-	public ProjectDTO asDTO() {
-		return dto;
-	}
-
-	public void loadData() {
-		dto.setLastBuilt(getLastBuilt());
-		dto.setUrl(getUrl());
-		dto.setLogUrl(getLogUrl());
-		dto.setStatus(getStatus());
-		dto.setLogged(isLogged());
-	}
-
-	public void loadSecurity(String user) {
-		dto.setBuildable(isBuildable(user));
-		dto.setDeployable(isDeployable(user));
-	}
-
-	private boolean isBuildable(String user) {
-		UserManager userManager = UserManager.getInstance();
-		try {
-			for (Iterator i = userManager.getGroups().iterator(); i.hasNext();) {
-				Group g = (Group) i.next();
-				if (g.containsUser(dto.getName()) && g.containsUser(user))
-					return true;
-			}
-		} catch (Exception e) {
-			log.warn("error while checking if " + user + " has access to build " + dto.getName(), e);
-		}
-		
-		return false;
-	}
-
-	private boolean isDeployable(String user) {
-		// for now we don't need to seperate deployable and buildable security
-		return isBuildable(user);
-	}
-
-	private boolean isLogged() {
-		return new File(getLogFile()).isFile();
-	}
-	
-	private String getLogFile() {
-		if (logfile == null) {
-			logfile = Config.getProperty("logs-dir") + "/" + dto.getName() + ".log";
-		}
-		return logfile;
-	}
-
-	private Date getLastBuilt() {
-		File f = new File(getLogFile());
-		long lm = f.lastModified();
-		if (lm == 0)
-			return null;
-		else
-			return new Date(lm);
-	}
-
-	private String getUrl() {
-		return Config.getProperty("build-url") + "/" + dto.getName() + "/";
-	}
-
-	private String getLogUrl() {
-		return Config.getProperty("logs-url") + "/" + dto.getName() + ".log";
-	}
-
-	private int getStatus() {
-		RandomAccessFile f;
-		try {
-			f = new RandomAccessFile(getLogFile(), "r");
-		} catch (FileNotFoundException e) {
-			log.debug("couldn't find log file for: " + getLogFile());
-			return Constants.STATUS_UNKNOWN;
-		}
-
-		byte[] checkSuccess = new byte[Constants.BUILD_SUCCESS_STRING.length()];
-		try {
-			f.seek((int) f.length() - checkSuccess.length - 2);
-			f.read(checkSuccess, 0, checkSuccess.length);
-		} catch (IOException e1) {
-			log.debug("couldn't find seek in log file: " + f.toString());
-			return Constants.STATUS_UNKNOWN;
-		}
-
-		if (Constants.BUILD_SUCCESS_STRING.equals(new String(checkSuccess))) {
-			return Constants.STATUS_SUCCESS;
-		} else if (getLastBuilt().getTime() > (new Date()).getTime() - 60 * 1000) {
-			// if date is in last minute, consider it still running
-			return Constants.STATUS_RUNNING;
-		} else {
-			return Constants.STATUS_FAILED;
-		}
-	}
-
-	/**
-	 * @return Collection of type ProjectDTO
-	 */
-	public static Collection getAllProjects() {
-
-		/* based on config files */
-		Collection sites = new ArrayList();
-		File f = new File(Config.getProperty("config-dir"));
-		File[] possibleSites = f.listFiles();
-		for (int i = 0; i < possibleSites.length; i++) {
-			if (possibleSites[i].isFile()) {
-				String name = possibleSites[i].getName();
-				if (name.endsWith(".xml")) {
-					ProjectDTO projectDTO = new ProjectDTO();
-					projectDTO.setName(name.substring(0, name.length() - 4));
-					(new Project(projectDTO)).loadData();
-					sites.add(projectDTO);
-				}
-			}
-		}
-		return sites;
-	}
-
-
-	public static boolean exists(String project) {
-		Collection c = getAllProjects();
-		for (Iterator i = c.iterator(); i.hasNext();) {
-			if (((ProjectDTO)i.next()).getName().equals(project)) {
-				return true;
-			}
-		}
-		return false;
-	}
-}
+/*
+ * Created on Feb 10, 2004
+ */
+package org.apache.forrest.forrestbot.webapp.util;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.Iterator;
+
+import org.apache.forrest.forrestbot.webapp.Constants;
+import org.apache.forrest.forrestbot.webapp.Config;
+import org.apache.forrest.forrestbot.webapp.dto.ProjectDTO;
+import org.apache.log4j.Logger;
+
+import com.opensymphony.user.Group;
+import com.opensymphony.user.UserManager;
+
+public class Project {
+	protected ProjectDTO dto;
+	private static Logger log = Logger.getLogger(Project.class);
+
+	private String logfile = null;
+
+	public Project() {
+		this(new ProjectDTO());
+	}
+	public Project(ProjectDTO dto) {
+		this.dto = dto;
+	}
+	public ProjectDTO asDTO() {
+		return dto;
+	}
+
+	public void loadData() {
+		dto.setLastBuilt(getLastBuilt());
+		dto.setUrl(getUrl());
+		dto.setLogUrl(getLogUrl());
+		dto.setStatus(getStatus());
+		dto.setLogged(isLogged());
+	}
+
+	public void loadSecurity(String user) {
+		dto.setBuildable(isBuildable(user));
+		dto.setDeployable(isDeployable(user));
+	}
+
+	private boolean isBuildable(String user) {
+		UserManager userManager = UserManager.getInstance();
+		try {
+			for (Iterator i = userManager.getGroups().iterator(); i.hasNext();) {
+				Group g = (Group) i.next();
+				if (g.containsUser(dto.getName()) && g.containsUser(user))
+					return true;
+			}
+		} catch (Exception e) {
+			log.warn("error while checking if " + user + " has access to build " + dto.getName(), e);
+		}
+		
+		return false;
+	}
+
+	private boolean isDeployable(String user) {
+		// for now we don't need to seperate deployable and buildable security
+		return isBuildable(user);
+	}
+
+	private boolean isLogged() {
+		return new File(getLogFile()).isFile();
+	}
+	
+	private String getLogFile() {
+		if (logfile == null) {
+			logfile = Config.getProperty("logs-dir") + "/" + dto.getName() + ".log";
+		}
+		return logfile;
+	}
+
+	private Date getLastBuilt() {
+		File f = new File(getLogFile());
+		long lm = f.lastModified();
+		if (lm == 0)
+			return null;
+		else
+			return new Date(lm);
+	}
+
+	private String getUrl() {
+		return Config.getProperty("build-url") + "/" + dto.getName() + "/";
+	}
+
+	private String getLogUrl() {
+		return Config.getProperty("logs-url") + "/" + dto.getName() + ".log";
+	}
+
+	private int getStatus() {
+		RandomAccessFile f;
+		try {
+			f = new RandomAccessFile(getLogFile(), "r");
+		} catch (FileNotFoundException e) {
+			log.debug("couldn't find log file for: " + getLogFile());
+			return Constants.STATUS_UNKNOWN;
+		}
+
+		byte[] checkSuccess = new byte[Constants.BUILD_SUCCESS_STRING.length()];
+		try {
+			f.seek((int) f.length() - checkSuccess.length - 2);
+			f.read(checkSuccess, 0, checkSuccess.length);
+		} catch (IOException e1) {
+			log.debug("couldn't find seek in log file: " + f.toString());
+			return Constants.STATUS_UNKNOWN;
+		}
+
+		if (Constants.BUILD_SUCCESS_STRING.equals(new String(checkSuccess))) {
+			return Constants.STATUS_SUCCESS;
+		} else if (getLastBuilt().getTime() > (new Date()).getTime() - 60 * 1000) {
+			// if date is in last minute, consider it still running
+			return Constants.STATUS_RUNNING;
+		} else {
+			return Constants.STATUS_FAILED;
+		}
+	}
+
+	/**
+	 * @return Collection of type ProjectDTO
+	 */
+	public static Collection getAllProjects() {
+
+		/* based on config files */
+		Collection sites = new ArrayList();
+		File f = new File(Config.getProperty("config-dir"));
+		File[] possibleSites = f.listFiles();
+		for (int i = 0; i < possibleSites.length; i++) {
+			if (possibleSites[i].isFile()) {
+				String name = possibleSites[i].getName();
+				if (name.endsWith(".xml")) {
+					ProjectDTO projectDTO = new ProjectDTO();
+					projectDTO.setName(name.substring(0, name.length() - 4));
+					(new Project(projectDTO)).loadData();
+					sites.add(projectDTO);
+				}
+			}
+		}
+		return sites;
+	}
+
+
+	public static boolean exists(String project) {
+		Collection c = getAllProjects();
+		for (Iterator i = c.iterator(); i.hasNext();) {
+			if (((ProjectDTO)i.next()).getName().equals(project)) {
+				return true;
+			}
+		}
+		return false;
+	}
+}

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/struts-config.xml
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/struts-config.xml	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/struts-config.xml	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -14,61 +14,61 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-<struts-config>
-  <form-beans>
-    <form-bean name="LoginForm" type="org.apache.forrest.forrestbot.webapp.form.LoginForm">
-      <form-property name="submit" type="java.lang.String" initial="unsubmitted"/>
-      <form-property name="username" type="java.lang.String"/>
-      <form-property name="password" type="java.lang.String"/>
-    </form-bean>
-    <form-bean name="ExecuteForm" type="org.apache.struts.action.DynaActionForm">
-      <form-property name="project" type="java.lang.String"/>
-      <form-property name="build" type="java.lang.String"/>
-      <form-property name="deploy" type="java.lang.String"/>
-    </form-bean>
-  </form-beans>
-  <global-forwards>
-    <forward name="index" path="/summary.do" />
-  </global-forwards>
-  <action-mappings>
-    <!-- these forward to tile definitions, which in turn put the decorations around the content JSP file -->
-    <action type="org.apache.forrest.forrestbot.webapp.action.ViewSummaryAction"
-      path="/summary"
-      name="LoginForm"
-      scope="request"
-      validate="false"
-      input="/summary.jsp">
-        <forward name="Success" path="summary"/>
-        <forward name="Failure" path="summary"/>
-        <forward name="Authorized" path="summaryAuthorized"/>
-    </action>
-    <action type="org.apache.forrest.forrestbot.webapp.action.ViewLogFrameAction" path="/viewlog">
-		<forward name="Success" path="viewlog_frame"/>
-    </action>
-    <action type="org.apache.forrest.forrestbot.webapp.action.ViewLogBodyAction" path="/viewlog_body">
-		<forward name="Success" path="viewlog_body"/>
-    </action>
-    <action type="org.apache.forrest.forrestbot.webapp.action.ViewLogHeaderAction" path="/viewlog_header">
-		<forward name="Success" path="viewlog_header"/>
-    </action>
-    <action type="org.apache.forrest.forrestbot.webapp.action.ExecuteAction"
-      path="/execute"
-      name="ExecuteForm"
-      scope="request"
-      validate="false"
-      input="/summary.jsp">
-        <forward name="Success" path="execute"/>
-    </action>
-    <action type="org.apache.forrest.forrestbot.webapp.action.LogoutAction" path="/logout">
-		<forward name="Success" path="logout"/>
-    </action>
-  </action-mappings>
-  
-  <message-resources parameter="org.apache.forrest.forrestbot.webapp.Resources"/>
-  
-  <plug-in className="org.apache.struts.tiles.TilesPlugin">
-    <set-property value="/WEB-INF/struts-tiles.xml" property="definitions-config" />
-    <set-property value="true" property="definitions-parser-validate" />
-  </plug-in>
-</struts-config>
+<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
+<struts-config>
+  <form-beans>
+    <form-bean name="LoginForm" type="org.apache.forrest.forrestbot.webapp.form.LoginForm">
+      <form-property name="submit" type="java.lang.String" initial="unsubmitted"/>
+      <form-property name="username" type="java.lang.String"/>
+      <form-property name="password" type="java.lang.String"/>
+    </form-bean>
+    <form-bean name="ExecuteForm" type="org.apache.struts.action.DynaActionForm">
+      <form-property name="project" type="java.lang.String"/>
+      <form-property name="build" type="java.lang.String"/>
+      <form-property name="deploy" type="java.lang.String"/>
+    </form-bean>
+  </form-beans>
+  <global-forwards>
+    <forward name="index" path="/summary.do" />
+  </global-forwards>
+  <action-mappings>
+    <!-- these forward to tile definitions, which in turn put the decorations around the content JSP file -->
+    <action type="org.apache.forrest.forrestbot.webapp.action.ViewSummaryAction"
+      path="/summary"
+      name="LoginForm"
+      scope="request"
+      validate="false"
+      input="/summary.jsp">
+        <forward name="Success" path="summary"/>
+        <forward name="Failure" path="summary"/>
+        <forward name="Authorized" path="summaryAuthorized"/>
+    </action>
+    <action type="org.apache.forrest.forrestbot.webapp.action.ViewLogFrameAction" path="/viewlog">
+		<forward name="Success" path="viewlog_frame"/>
+    </action>
+    <action type="org.apache.forrest.forrestbot.webapp.action.ViewLogBodyAction" path="/viewlog_body">
+		<forward name="Success" path="viewlog_body"/>
+    </action>
+    <action type="org.apache.forrest.forrestbot.webapp.action.ViewLogHeaderAction" path="/viewlog_header">
+		<forward name="Success" path="viewlog_header"/>
+    </action>
+    <action type="org.apache.forrest.forrestbot.webapp.action.ExecuteAction"
+      path="/execute"
+      name="ExecuteForm"
+      scope="request"
+      validate="false"
+      input="/summary.jsp">
+        <forward name="Success" path="execute"/>
+    </action>
+    <action type="org.apache.forrest.forrestbot.webapp.action.LogoutAction" path="/logout">
+		<forward name="Success" path="logout"/>
+    </action>
+  </action-mappings>
+  
+  <message-resources parameter="org.apache.forrest.forrestbot.webapp.Resources"/>
+  
+  <plug-in className="org.apache.struts.tiles.TilesPlugin">
+    <set-property value="/WEB-INF/struts-tiles.xml" property="definitions-config" />
+    <set-property value="true" property="definitions-parser-validate" />
+  </plug-in>
+</struts-config>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/struts-tiles.xml
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/struts-tiles.xml	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/struts-tiles.xml	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -14,44 +14,44 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration//EN" "http://jakarta.apache.org/struts/dtds/tiles-config.dtd">
-<tiles-definitions>
-    <definition name="summary" path="/common/layout.jsp">
-        <put name="title" value="Forrestbot Web Interface" direct="true"/>
-        <put name="header" value="/common/header.jsp"/>
-        <put name="welcome" value="/welcome.html"/>
-        <put name="welcome-local" value="/welcome.local.html"/>
-        <put name="login" value="/loginForm.jsp"/>
-        <put name="footer" value="/common/footer.jsp"/>
-        <put name="body-content" value="/summary.jsp"/>
-    </definition>
-    
-    <definition name="summaryAuthorized" extends="summary">
-        <put name="title" value="Forrestbot Web Interfaced - authorized" direct="true"/>
-        <put name="login" value="/commandForm.jsp"/>
-    </definition>
-    
-    <definition name="execute" path="/common/simple.jsp">
-        <put name="title" value="Forrestbot Web Interface" direct="true"/>
-        <put name="header" value="/common/header.jsp"/>
-        <put name="footer" value="/common/footer.jsp"/>
-        <put name="body-content" value="/execute.jsp"/>
-    </definition>
-
-    <definition name="viewlog_frame" path="/common/viewlog_frame.jsp">
-        <put name="title" value="Forrestbot log" direct="true"/>
-    </definition>
-    
-    <definition name="viewlog_body" path="/viewlog_body.jsp"/>
-    <definition name="viewlog_header" path="/viewlog_header.jsp">
-        <put name="title" value="Forrestbot log" direct="true"/>
-    </definition>
-
-    <definition name="logout" path="/common/simple.jsp">
-        <put name="title" value="Forrestbot Web Interface" direct="true"/>
-        <put name="header" value="/common/header.jsp"/>
-        <put name="footer" value="/common/footer.jsp"/>
-        <put name="body-content" value="/logout.jsp"/>
-    </definition>
-
-</tiles-definitions>
+<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration//EN" "http://jakarta.apache.org/struts/dtds/tiles-config.dtd">
+<tiles-definitions>
+    <definition name="summary" path="/common/layout.jsp">
+        <put name="title" value="Forrestbot Web Interface" direct="true"/>
+        <put name="header" value="/common/header.jsp"/>
+        <put name="welcome" value="/welcome.html"/>
+        <put name="welcome-local" value="/welcome.local.html"/>
+        <put name="login" value="/loginForm.jsp"/>
+        <put name="footer" value="/common/footer.jsp"/>
+        <put name="body-content" value="/summary.jsp"/>
+    </definition>
+    
+    <definition name="summaryAuthorized" extends="summary">
+        <put name="title" value="Forrestbot Web Interfaced - authorized" direct="true"/>
+        <put name="login" value="/commandForm.jsp"/>
+    </definition>
+    
+    <definition name="execute" path="/common/simple.jsp">
+        <put name="title" value="Forrestbot Web Interface" direct="true"/>
+        <put name="header" value="/common/header.jsp"/>
+        <put name="footer" value="/common/footer.jsp"/>
+        <put name="body-content" value="/execute.jsp"/>
+    </definition>
+
+    <definition name="viewlog_frame" path="/common/viewlog_frame.jsp">
+        <put name="title" value="Forrestbot log" direct="true"/>
+    </definition>
+    
+    <definition name="viewlog_body" path="/viewlog_body.jsp"/>
+    <definition name="viewlog_header" path="/viewlog_header.jsp">
+        <put name="title" value="Forrestbot log" direct="true"/>
+    </definition>
+
+    <definition name="logout" path="/common/simple.jsp">
+        <put name="title" value="Forrestbot Web Interface" direct="true"/>
+        <put name="header" value="/common/header.jsp"/>
+        <put name="footer" value="/common/footer.jsp"/>
+        <put name="body-content" value="/logout.jsp"/>
+    </definition>
+
+</tiles-definitions>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-bean-el.tld
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-bean-el.tld	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-bean-el.tld	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -13,214 +13,214 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
--->
-
-
-
-
-
-
-<!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>bean</shortname>
-<uri>http://jakarta.apache.org/struts/tags-bean-el</uri>
-<tag>
-<name>include</name>
-<tagclass>org.apache.strutsel.taglib.bean.ELIncludeTag</tagclass>
-<teiclass>org.apache.struts.taglib.bean.IncludeTei</teiclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>anchor</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>forward</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>href</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>id</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>transaction</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>message</name>
-<tagclass>org.apache.strutsel.taglib.bean.ELMessageTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>arg0</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>arg1</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>arg2</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>arg3</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>arg4</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>key</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>page</name>
-<tagclass>org.apache.strutsel.taglib.bean.ELPageTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>id</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>resource</name>
-<tagclass>org.apache.strutsel.taglib.bean.ELResourceTag</tagclass>
-<teiclass>org.apache.struts.taglib.bean.ResourceTei</teiclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>id</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>input</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>size</name>
-<tagclass>org.apache.strutsel.taglib.bean.ELSizeTag</tagclass>
-<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>collection</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>id</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>struts</name>
-<tagclass>org.apache.strutsel.taglib.bean.ELStrutsTag</tagclass>
-<teiclass>org.apache.struts.taglib.bean.StrutsTei</teiclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>id</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>formBean</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>forward</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>mapping</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-</taglib>
-
-
-
+-->
+
+
+
+
+
+
+<!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>bean</shortname>
+<uri>http://jakarta.apache.org/struts/tags-bean-el</uri>
+<tag>
+<name>include</name>
+<tagclass>org.apache.strutsel.taglib.bean.ELIncludeTag</tagclass>
+<teiclass>org.apache.struts.taglib.bean.IncludeTei</teiclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>anchor</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>forward</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>href</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>id</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>transaction</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>message</name>
+<tagclass>org.apache.strutsel.taglib.bean.ELMessageTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>arg0</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>arg1</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>arg2</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>arg3</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>arg4</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>bundle</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>key</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>locale</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>page</name>
+<tagclass>org.apache.strutsel.taglib.bean.ELPageTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>id</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>resource</name>
+<tagclass>org.apache.strutsel.taglib.bean.ELResourceTag</tagclass>
+<teiclass>org.apache.struts.taglib.bean.ResourceTei</teiclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>id</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>input</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>size</name>
+<tagclass>org.apache.strutsel.taglib.bean.ELSizeTag</tagclass>
+<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>collection</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>id</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>struts</name>
+<tagclass>org.apache.strutsel.taglib.bean.ELStrutsTag</tagclass>
+<teiclass>org.apache.struts.taglib.bean.StrutsTei</teiclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>id</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>formBean</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>forward</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>mapping</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+</taglib>
+
+
+

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-html-el.tld
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-html-el.tld	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-html-el.tld	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -13,2893 +13,2893 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
--->
-
-
-
-
-
-
-<!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>html</shortname>
-<uri>http://jakarta.apache.org/struts/tags-html-el</uri>
-<tag>
-<name>base</name>
-<tagclass>org.apache.strutsel.taglib.html.ELBaseTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>target</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>server</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>button</name>
-<tagclass>org.apache.strutsel.taglib.html.ELButtonTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>cancel</name>
-<tagclass>org.apache.strutsel.taglib.html.ELCancelTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>checkbox</name>
-<tagclass>org.apache.strutsel.taglib.html.ELCheckboxTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>errors</name>
-<tagclass>org.apache.strutsel.taglib.html.ELErrorsTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>file</name>
-<tagclass>org.apache.strutsel.taglib.html.ELFileTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>accept</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>maxlength</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>size</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>form</name>
-<tagclass>org.apache.strutsel.taglib.html.ELFormTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>action</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>enctype</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>focus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>focusIndex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>method</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onreset</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onsubmit</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>target</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>type</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>frame</name>
-<tagclass>org.apache.strutsel.taglib.html.ELFrameTag</tagclass>
-<attribute>
-<name>action</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>anchor</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>forward</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>frameborder</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>frameName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>href</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>longdesc</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>marginheight</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>marginwidth</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>noresize</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramProperty</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramScope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scrolling</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>transaction</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>hidden</name>
-<tagclass>org.apache.strutsel.taglib.html.ELHiddenTag</tagclass>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>write</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>html</name>
-<tagclass>org.apache.strutsel.taglib.html.ELHtmlTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>xhtml</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>image</name>
-<tagclass>org.apache.strutsel.taglib.html.ELImageTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>align</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>border</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>pageKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>src</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>srcKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>img</name>
-<tagclass>org.apache.strutsel.taglib.html.ELImgTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>align</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>border</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>height</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>hspace</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>imageName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ismap</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>lowsrc</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>pageKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramProperty</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramScope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>src</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>srcKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>usemap</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>vspace</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>width</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>javascript</name>
-<tagclass>org.apache.strutsel.taglib.html.ELJavascriptValidatorTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>cdata</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>dynamicJavascript</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>formName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>method</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>src</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>staticJavascript</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>htmlComment</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>link</name>
-<tagclass>org.apache.strutsel.taglib.html.ELLinkTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>action</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>anchor</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>forward</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>href</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>linkName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramProperty</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramScope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>target</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>transaction</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>messages</name>
-<tagclass>org.apache.strutsel.taglib.html.ELMessagesTag</tagclass>
-<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>id</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>header</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>footer</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>message</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>multibox</name>
-<tagclass>org.apache.strutsel.taglib.html.ELMultiboxTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>option</name>
-<tagclass>org.apache.strutsel.taglib.html.ELOptionTag</tagclass>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>key</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>options</name>
-<tagclass>org.apache.strutsel.taglib.html.ELOptionsTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>collection</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>filter</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>labelName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>labelProperty</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>optionsCollection</name>
-<tagclass>org.apache.strutsel.taglib.html.ELOptionsCollectionTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>filter</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>label</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>password</name>
-<tagclass>org.apache.strutsel.taglib.html.ELPasswordTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>maxlength</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>readonly</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>redisplay</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>size</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>radio</name>
-<tagclass>org.apache.strutsel.taglib.html.ELRadioTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>idName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>reset</name>
-<tagclass>org.apache.strutsel.taglib.html.ELResetTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>rewrite</name>
-<tagclass>org.apache.strutsel.taglib.html.ELRewriteTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>anchor</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>forward</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>href</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramProperty</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramScope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>transaction</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>select</name>
-<tagclass>org.apache.strutsel.taglib.html.ELSelectTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>multiple</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>size</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>submit</name>
-<tagclass>org.apache.strutsel.taglib.html.ELSubmitTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>text</name>
-<tagclass>org.apache.strutsel.taglib.html.ELTextTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>maxlength</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>readonly</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>size</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>textarea</name>
-<tagclass>org.apache.strutsel.taglib.html.ELTextareaTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>cols</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>readonly</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>rows</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>xhtml</name>
-<tagclass>org.apache.struts.taglib.html.XhtmlTag</tagclass>
-<bodycontent>empty</bodycontent>
-</tag>
-</taglib>
-
+-->
+
+
+
+
+
+
+<!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>html</shortname>
+<uri>http://jakarta.apache.org/struts/tags-html-el</uri>
+<tag>
+<name>base</name>
+<tagclass>org.apache.strutsel.taglib.html.ELBaseTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>target</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>server</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>button</name>
+<tagclass>org.apache.strutsel.taglib.html.ELButtonTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>cancel</name>
+<tagclass>org.apache.strutsel.taglib.html.ELCancelTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>checkbox</name>
+<tagclass>org.apache.strutsel.taglib.html.ELCheckboxTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>errors</name>
+<tagclass>org.apache.strutsel.taglib.html.ELErrorsTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>bundle</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>locale</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>file</name>
+<tagclass>org.apache.strutsel.taglib.html.ELFileTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>accept</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>maxlength</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>size</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>form</name>
+<tagclass>org.apache.strutsel.taglib.html.ELFormTag</tagclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>action</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>enctype</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>focus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>focusIndex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>method</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onreset</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onsubmit</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>target</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>type</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>frame</name>
+<tagclass>org.apache.strutsel.taglib.html.ELFrameTag</tagclass>
+<attribute>
+<name>action</name>
+<required>false</required>
+<rtexprvalue>true</rtexprvalue>
+</attribute>
+<attribute>
+<name>anchor</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>forward</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>frameborder</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>frameName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>href</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>longdesc</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>marginheight</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>marginwidth</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>noresize</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramProperty</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramScope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scrolling</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>transaction</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>hidden</name>
+<tagclass>org.apache.strutsel.taglib.html.ELHiddenTag</tagclass>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>write</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>html</name>
+<tagclass>org.apache.strutsel.taglib.html.ELHtmlTag</tagclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>locale</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>xhtml</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>image</name>
+<tagclass>org.apache.strutsel.taglib.html.ELImageTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>align</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>border</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>bundle</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>locale</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>pageKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>src</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>srcKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>img</name>
+<tagclass>org.apache.strutsel.taglib.html.ELImgTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>align</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>border</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>bundle</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>height</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>hspace</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>imageName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ismap</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>locale</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>lowsrc</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>pageKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramProperty</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramScope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>src</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>srcKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>usemap</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>vspace</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>width</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>javascript</name>
+<tagclass>org.apache.strutsel.taglib.html.ELJavascriptValidatorTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>cdata</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>dynamicJavascript</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>formName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>method</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>src</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>staticJavascript</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>htmlComment</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>link</name>
+<tagclass>org.apache.strutsel.taglib.html.ELLinkTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>action</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>anchor</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>forward</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>href</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>linkName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramProperty</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramScope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>target</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>transaction</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>messages</name>
+<tagclass>org.apache.strutsel.taglib.html.ELMessagesTag</tagclass>
+<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>id</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>bundle</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>locale</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>header</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>footer</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>message</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>multibox</name>
+<tagclass>org.apache.strutsel.taglib.html.ELMultiboxTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>option</name>
+<tagclass>org.apache.strutsel.taglib.html.ELOptionTag</tagclass>
+<attribute>
+<name>bundle</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>key</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>locale</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>options</name>
+<tagclass>org.apache.strutsel.taglib.html.ELOptionsTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>collection</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>filter</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>labelName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>labelProperty</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>optionsCollection</name>
+<tagclass>org.apache.strutsel.taglib.html.ELOptionsCollectionTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>filter</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>label</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>password</name>
+<tagclass>org.apache.strutsel.taglib.html.ELPasswordTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>maxlength</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>readonly</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>redisplay</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>size</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>radio</name>
+<tagclass>org.apache.strutsel.taglib.html.ELRadioTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>idName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>reset</name>
+<tagclass>org.apache.strutsel.taglib.html.ELResetTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>rewrite</name>
+<tagclass>org.apache.strutsel.taglib.html.ELRewriteTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>anchor</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>forward</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>href</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramProperty</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramScope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>transaction</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>select</name>
+<tagclass>org.apache.strutsel.taglib.html.ELSelectTag</tagclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>multiple</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>size</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>submit</name>
+<tagclass>org.apache.strutsel.taglib.html.ELSubmitTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>text</name>
+<tagclass>org.apache.strutsel.taglib.html.ELTextTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>maxlength</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>readonly</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>size</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>textarea</name>
+<tagclass>org.apache.strutsel.taglib.html.ELTextareaTag</tagclass>
+<attribute>
+<name>accesskey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>alt</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>altKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>cols</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>disabled</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexed</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onblur</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onchange</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>ondblclick</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onfocus</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeydown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeypress</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onkeyup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousedown</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmousemove</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseout</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseover</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>onmouseup</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>readonly</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>rows</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>style</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleClass</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>styleId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>tabindex</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>title</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>titleKey</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>xhtml</name>
+<tagclass>org.apache.struts.taglib.html.XhtmlTag</tagclass>
+<bodycontent>empty</bodycontent>
+</tag>
+</taglib>
+

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-logic-el.tld
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-logic-el.tld	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/tld/struts-logic-el.tld	Wed Mar 17 21:11:06 2004
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
   Copyright 2002-2004 The Apache Software Foundation
 
@@ -13,374 +13,374 @@
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
--->
-
-
-
-
-
-<!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>logic</shortname>
-<uri>http://jakarta.apache.org/struts/tags-logic-el</uri>
-<tag>
-<name>forward</name>
-<tagclass>org.apache.strutsel.taglib.logic.ELForwardTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>name</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>iterate</name>
-<tagclass>org.apache.strutsel.taglib.logic.ELIterateTag</tagclass>
-<teiclass>org.apache.struts.taglib.logic.IterateTei</teiclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>collection</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>id</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>length</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>offset</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>type</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>match</name>
-<tagclass>org.apache.strutsel.taglib.logic.ELMatchTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>cookie</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>expr</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>header</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>location</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>parameter</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>messagesNotPresent</name>
-<tagclass>org.apache.strutsel.taglib.logic.ELMessagesNotPresentTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>message</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>messagesPresent</name>
-<tagclass>org.apache.strutsel.taglib.logic.ELMessagesPresentTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>message</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>notMatch</name>
-<tagclass>org.apache.strutsel.taglib.logic.ELNotMatchTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>cookie</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>expr</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>header</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>location</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>parameter</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>true</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>notPresent</name>
-<tagclass>org.apache.strutsel.taglib.logic.ELNotPresentTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>cookie</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>header</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>parameter</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>role</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>user</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>present</name>
-<tagclass>org.apache.strutsel.taglib.logic.ELPresentTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>cookie</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>header</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>parameter</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>role</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>user</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>redirect</name>
-<tagclass>org.apache.strutsel.taglib.logic.ELRedirectTag</tagclass>
-<attribute>
-<name>anchor</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>forward</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>href</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramId</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramName</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramProperty</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramScope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>transaction</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-</taglib>
-
-
-
+-->
+
+
+
+
+
+<!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>logic</shortname>
+<uri>http://jakarta.apache.org/struts/tags-logic-el</uri>
+<tag>
+<name>forward</name>
+<tagclass>org.apache.strutsel.taglib.logic.ELForwardTag</tagclass>
+<bodycontent>empty</bodycontent>
+<attribute>
+<name>name</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>iterate</name>
+<tagclass>org.apache.strutsel.taglib.logic.ELIterateTag</tagclass>
+<teiclass>org.apache.struts.taglib.logic.IterateTei</teiclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>collection</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>id</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>indexId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>length</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>offset</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>type</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>match</name>
+<tagclass>org.apache.strutsel.taglib.logic.ELMatchTag</tagclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>cookie</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>expr</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>header</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>location</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>parameter</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>messagesNotPresent</name>
+<tagclass>org.apache.strutsel.taglib.logic.ELMessagesNotPresentTag</tagclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>message</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>messagesPresent</name>
+<tagclass>org.apache.strutsel.taglib.logic.ELMessagesPresentTag</tagclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>message</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>notMatch</name>
+<tagclass>org.apache.strutsel.taglib.logic.ELNotMatchTag</tagclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>cookie</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>expr</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>header</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>location</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>parameter</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>value</name>
+<required>true</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>notPresent</name>
+<tagclass>org.apache.strutsel.taglib.logic.ELNotPresentTag</tagclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>cookie</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>header</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>parameter</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>role</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>user</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>present</name>
+<tagclass>org.apache.strutsel.taglib.logic.ELPresentTag</tagclass>
+<bodycontent>JSP</bodycontent>
+<attribute>
+<name>cookie</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>header</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>parameter</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>role</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>user</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+<tag>
+<name>redirect</name>
+<tagclass>org.apache.strutsel.taglib.logic.ELRedirectTag</tagclass>
+<attribute>
+<name>anchor</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>forward</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>href</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>name</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>page</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramId</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramName</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramProperty</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>paramScope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>property</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>scope</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+<attribute>
+<name>transaction</name>
+<required>false</required>
+<rtexprvalue>false</rtexprvalue>
+</attribute>
+</tag>
+</taglib>
+
+
+

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/web.xml
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/web.xml	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/WEB-INF/web.xml	Wed Mar 17 21:11:06 2004
@@ -1,34 +1,34 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!DOCTYPE web-app
-PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
-"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
-
-<web-app>
-  <servlet>
-    <servlet-name>action</servlet-name>
-    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
-    <init-param>
-      <param-name>config</param-name>
-      <param-value>/WEB-INF/struts-config.xml</param-value>
-    </init-param>
-    
-    <!--
-    <init-param>
-      <param-name>debug</param-name>
-      <param-value>1</param-value>
-    </init-param>
-    
-    <load-on-startup>2</load-on-startup>
-    -->
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>action</servlet-name>
-    <url-pattern>*.do</url-pattern>
-  </servlet-mapping>
-  <welcome-file-list>
-    <welcome-file>index.jsp</welcome-file>
-    <welcome-file>index.html</welcome-file>
-  </welcome-file-list>
-  
-</web-app>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE web-app
+PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
+
+<web-app>
+  <servlet>
+    <servlet-name>action</servlet-name>
+    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
+    <init-param>
+      <param-name>config</param-name>
+      <param-value>/WEB-INF/struts-config.xml</param-value>
+    </init-param>
+    
+    <!--
+    <init-param>
+      <param-name>debug</param-name>
+      <param-value>1</param-value>
+    </init-param>
+    
+    <load-on-startup>2</load-on-startup>
+    -->
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>action</servlet-name>
+    <url-pattern>*.do</url-pattern>
+  </servlet-mapping>
+  <welcome-file-list>
+    <welcome-file>index.jsp</welcome-file>
+    <welcome-file>index.html</welcome-file>
+  </welcome-file-list>
+  
+</web-app>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/commandForm.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/commandForm.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/commandForm.jsp	Wed Mar 17 21:11:06 2004
@@ -13,12 +13,12 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean-el" prefix="bean-el" %>
-
-<bean-el:message key="login.as" arg0="${username}"/>
-<br/>
-<a href="logout.do"><bean:message key="login.out"/></a>
-<br/>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean-el" prefix="bean-el" %>
+
+<bean-el:message key="login.as" arg0="${username}"/>
+<br/>
+<a href="logout.do"><bean:message key="login.out"/></a>
+<br/>
 <br/>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/layout.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/layout.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/layout.jsp	Wed Mar 17 21:11:06 2004
@@ -13,23 +13,23 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
-<html:html locale="true">
-    <head>
-        <title><tiles:insert attribute="title"/></title>
-    </head>
-    <body bgcolor="#FFFFFF"/>
-
-    <tiles:insert attribute="header"/>
-	<h2>
-		<tiles:insert attribute="title"/>
-	</h2>
-    <tiles:insert attribute="welcome"/>
-    <tiles:insert attribute="welcome-local"/>
-    <tiles:insert attribute="login"/>
-    <tiles:insert attribute="body-content"/>
-    <tiles:insert attribute="footer"/>
-
-    </body>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
+<html:html locale="true">
+    <head>
+        <title><tiles:insert attribute="title"/></title>
+    </head>
+    <body bgcolor="#FFFFFF"/>
+
+    <tiles:insert attribute="header"/>
+	<h2>
+		<tiles:insert attribute="title"/>
+	</h2>
+    <tiles:insert attribute="welcome"/>
+    <tiles:insert attribute="welcome-local"/>
+    <tiles:insert attribute="login"/>
+    <tiles:insert attribute="body-content"/>
+    <tiles:insert attribute="footer"/>
+
+    </body>
 </html:html>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/simple.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/simple.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/simple.jsp	Wed Mar 17 21:11:06 2004
@@ -13,20 +13,20 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
-<html:html locale="true">
-    <head>
-        <title><tiles:insert attribute="title"/></title>
-    </head>
-    <body bgcolor="#FFFFFF"/>
-
-    <tiles:insert attribute="header"/>
-	<h2>
-		<tiles:insert attribute="title"/>
-	</h2>
-    <tiles:insert attribute="body-content"/>
-    <tiles:insert attribute="footer"/>
-
-    </body>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
+<html:html locale="true">
+    <head>
+        <title><tiles:insert attribute="title"/></title>
+    </head>
+    <body bgcolor="#FFFFFF"/>
+
+    <tiles:insert attribute="header"/>
+	<h2>
+		<tiles:insert attribute="title"/>
+	</h2>
+    <tiles:insert attribute="body-content"/>
+    <tiles:insert attribute="footer"/>
+
+    </body>
 </html:html>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/viewlog_frame.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/viewlog_frame.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/common/viewlog_frame.jsp	Wed Mar 17 21:11:06 2004
@@ -13,18 +13,18 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
-<html:html locale="true">
-    <head>
-        <title><tiles:insert attribute="title"/></title>
-    </head>
-    <frameset rows="40,*">
-        <html:frame framename="header" page="/viewlog_header.do" paramid="project" paramname="project"/>
-        <html:frame framename="body" page="/viewlog_body.do" paramid="project" paramname="project"/>
-    </frameset>
-    <noframes>
-      <html:link page="/viewlog_header.do" paramid="project" paramname="project">header</html:link>
-      <html:link page="/viewlog_body.do" paramid="project" paramname="project">body</html:link>
-    </noframes>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
+<html:html locale="true">
+    <head>
+        <title><tiles:insert attribute="title"/></title>
+    </head>
+    <frameset rows="40,*">
+        <html:frame framename="header" page="/viewlog_header.do" paramid="project" paramname="project"/>
+        <html:frame framename="body" page="/viewlog_body.do" paramid="project" paramname="project"/>
+    </frameset>
+    <noframes>
+      <html:link page="/viewlog_header.do" paramid="project" paramname="project">header</html:link>
+      <html:link page="/viewlog_body.do" paramid="project" paramname="project">body</html:link>
+    </noframes>
   </html:html>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/execute.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/execute.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/execute.jsp	Wed Mar 17 21:11:06 2004
@@ -13,17 +13,17 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean-el" prefix="bean-el" %>
-
-<html:errors/>
-
-<logic:messagesNotPresent> 
-	<bean-el:message key="execute.started" arg0="${project}"/>
-</logic:messagesNotPresent>
-<br/>
-<html:link page="/summary.do"><bean:message key="back.to.main"/></html:link>
-<br/>
-<html:link page="/viewlog.do" paramid="project" paramname="project"><bean-el:message key="view.log" arg0="${project}"/></html:link>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean-el" prefix="bean-el" %>
+
+<html:errors/>
+
+<logic:messagesNotPresent> 
+	<bean-el:message key="execute.started" arg0="${project}"/>
+</logic:messagesNotPresent>
+<br/>
+<html:link page="/summary.do"><bean:message key="back.to.main"/></html:link>
+<br/>
+<html:link page="/viewlog.do" paramid="project" paramname="project"><bean-el:message key="view.log" arg0="${project}"/></html:link>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/index.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/index.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/index.jsp	Wed Mar 17 21:11:06 2004
@@ -13,6 +13,6 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
-
-<logic:forward name="index"/>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
+
+<logic:forward name="index"/>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/loginForm.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/loginForm.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/loginForm.jsp	Wed Mar 17 21:11:06 2004
@@ -13,38 +13,38 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
-
-
-<html:errors/>
-
-<html:form action="/summary" focus="username">
-<table border="0">
-    <tr>
-        <th>
-            <bean:message key="prompt.username"/>
-        </th>
-        <td>
-            <html:text property="username" size="16"/>
-        </td>
-    </tr>
-    <tr>
-        <th>
-            <bean:message key="prompt.password"/>
-        </th>
-        <td>
-            <html:password property="password" size="16"/>
-        </td>
-    </tr>
-    <tr>
-        <td colspan="2">
-        	<input type="hidden" name="submit"/>
-            <html:submit>
-                <bean:message key="button.submit"/>
-            </html:submit>
-        </td>
-    </tr>
-</table>
-
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
+
+
+<html:errors/>
+
+<html:form action="/summary" focus="username">
+<table border="0">
+    <tr>
+        <th>
+            <bean:message key="prompt.username"/>
+        </th>
+        <td>
+            <html:text property="username" size="16"/>
+        </td>
+    </tr>
+    <tr>
+        <th>
+            <bean:message key="prompt.password"/>
+        </th>
+        <td>
+            <html:password property="password" size="16"/>
+        </td>
+    </tr>
+    <tr>
+        <td colspan="2">
+        	<input type="hidden" name="submit"/>
+            <html:submit>
+                <bean:message key="button.submit"/>
+            </html:submit>
+        </td>
+    </tr>
+</table>
+
 </html:form>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/logout.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/logout.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/logout.jsp	Wed Mar 17 21:11:06 2004
@@ -13,13 +13,13 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
-
-<br/>
-<html:errors/>
-<br/>
-<bean:message key="login.out.done"/>
-<br/>
-<br/>
-<html:link page="/summary.do"><bean:message key="back.to.main"/></html:link>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
+
+<br/>
+<html:errors/>
+<br/>
+<bean:message key="login.out.done"/>
+<br/>
+<br/>
+<html:link page="/summary.do"><bean:message key="back.to.main"/></html:link>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/summary.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/summary.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/summary.jsp	Wed Mar 17 21:11:06 2004
@@ -13,80 +13,80 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
-<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
-<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
-
-<%@ page import="org.apache.forrest.forrestbot.webapp.dto.*" %>
-
-
-<bean:message key="summary.current.time"/> <fmt:formatDate value="${serverTime}" type="BOTH"/>
-<table>
-<tr>
-	<th><bean:message key="summary.site"/></th>
-	<th><bean:message key="summary.status"/></th>
-	<th><bean:message key="summary.log"/></th>
-	<th><bean:message key="summary.date"/></th>
-	<c:if test="${auth}">
-		<th><bean:message key="summary.execute"/></th>
-	</c:if>
-</tr>
-<logic:iterate id="project" name="projects" type="ProjectDTO">
-	<tr>
-		<td>
-			<a href="<c:out value="${project.url}"/>"><c:out value="${project.name}"/></a>
-		</td>
-        <c:choose>
-        	<c:when test="${project.status == Constants.STATUS_FAILED}">
-				<td bgcolor='red'>
-					<bean:message key="summary.status.failed"/>
-				</td>
-			</c:when>
-			<c:when test="${project.status == Constants.STATUS_SUCCESS}">
-				<td>
-					<bean:message key="summary.status.success"/>
-				</td>
-			</c:when>
-			<c:when test="${project.status == Constants.STATUS_RUNNING}">
-				<td bgcolor='green'>
-					<bean:message key="summary.status.running"/>
-				</td>
-			</c:when>
-			<c:otherwise>
-				<td bgcolor='yellow'>
-					<bean:message key="summary.status.unknown"/>
-				</td>  
-			</c:otherwise>
-		</c:choose>
-		<td>
-			<c:if test="${project.logged}">
-				<html:link page="/viewlog.do" paramid="project" paramname="project" paramproperty="name"><bean:message key="summary.log"/></html:link>
-			</c:if>
-		</td>
-		<td>
-			<c:if test="${project.lastBuilt != null}">
-				<fmt:formatDate value="${project.lastBuilt}" type="BOTH"/>
-			</c:if>
-		</td>
-		<c:if test="${auth}">
-			<td>
-				<html:form action="/execute">
-					<input type="hidden" name="project" value="<c:out value="${project.name}"/>"/>
-					<c:if test="${project.buildable}">
-						<html:submit property="build">
-			                <bean:message key="summary.execute.build"/>
-			            </html:submit>
-			        </c:if>
-					<c:if test="${project.deployable}">
-						<html:submit property="deploy">
-			                <bean:message key="summary.execute.deploy"/>
-			            </html:submit>
-			        </c:if>
-			    </html:form>
-    	    </td>
-	    </c:if>
-	</tr>
-</logic:iterate>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
+<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
+<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
+
+<%@ page import="org.apache.forrest.forrestbot.webapp.dto.*" %>
+
+
+<bean:message key="summary.current.time"/> <fmt:formatDate value="${serverTime}" type="BOTH"/>
+<table>
+<tr>
+	<th><bean:message key="summary.site"/></th>
+	<th><bean:message key="summary.status"/></th>
+	<th><bean:message key="summary.log"/></th>
+	<th><bean:message key="summary.date"/></th>
+	<c:if test="${auth}">
+		<th><bean:message key="summary.execute"/></th>
+	</c:if>
+</tr>
+<logic:iterate id="project" name="projects" type="ProjectDTO">
+	<tr>
+		<td>
+			<a href="<c:out value="${project.url}"/>"><c:out value="${project.name}"/></a>
+		</td>
+        <c:choose>
+        	<c:when test="${project.status == Constants.STATUS_FAILED}">
+				<td bgcolor='red'>
+					<bean:message key="summary.status.failed"/>
+				</td>
+			</c:when>
+			<c:when test="${project.status == Constants.STATUS_SUCCESS}">
+				<td>
+					<bean:message key="summary.status.success"/>
+				</td>
+			</c:when>
+			<c:when test="${project.status == Constants.STATUS_RUNNING}">
+				<td bgcolor='green'>
+					<bean:message key="summary.status.running"/>
+				</td>
+			</c:when>
+			<c:otherwise>
+				<td bgcolor='yellow'>
+					<bean:message key="summary.status.unknown"/>
+				</td>  
+			</c:otherwise>
+		</c:choose>
+		<td>
+			<c:if test="${project.logged}">
+				<html:link page="/viewlog.do" paramid="project" paramname="project" paramproperty="name"><bean:message key="summary.log"/></html:link>
+			</c:if>
+		</td>
+		<td>
+			<c:if test="${project.lastBuilt != null}">
+				<fmt:formatDate value="${project.lastBuilt}" type="BOTH"/>
+			</c:if>
+		</td>
+		<c:if test="${auth}">
+			<td>
+				<html:form action="/execute">
+					<input type="hidden" name="project" value="<c:out value="${project.name}"/>"/>
+					<c:if test="${project.buildable}">
+						<html:submit property="build">
+			                <bean:message key="summary.execute.build"/>
+			            </html:submit>
+			        </c:if>
+					<c:if test="${project.deployable}">
+						<html:submit property="deploy">
+			                <bean:message key="summary.execute.deploy"/>
+			            </html:submit>
+			        </c:if>
+			    </html:form>
+    	    </td>
+	    </c:if>
+	</tr>
+</logic:iterate>
 </table>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/viewlog_body.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/viewlog_body.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/viewlog_body.jsp	Wed Mar 17 21:11:06 2004
@@ -13,35 +13,35 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
-
-<%@ page import="java.io.BufferedReader" %>
-<%@ page import="java.io.FileReader" %>
-<%@ page import="org.apache.log4j.Logger" %>
-
-<%
-Logger log = Logger.getLogger(request.getRequestURI());
-%>
-
-<html:errors/>
-
-<pre>
-<%--
-I don't know of a way to put a bean variable into a jsp:include page attribute
-nor how to use tiles to include an absolute file
-so we include it the old fashioned way
---%>
-<%
-String logfile = (String)request.getAttribute("logfile");
-if (logfile != null)
-{
-	log.debug(logfile);
-	BufferedReader in = new BufferedReader(new FileReader(logfile));
-	String line;
-	while ((line = in.readLine()) != null) {
-		out.println(line);
-	}
-}
-%>
-</pre>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
+
+<%@ page import="java.io.BufferedReader" %>
+<%@ page import="java.io.FileReader" %>
+<%@ page import="org.apache.log4j.Logger" %>
+
+<%
+Logger log = Logger.getLogger(request.getRequestURI());
+%>
+
+<html:errors/>
+
+<pre>
+<%--
+I don't know of a way to put a bean variable into a jsp:include page attribute
+nor how to use tiles to include an absolute file
+so we include it the old fashioned way
+--%>
+<%
+String logfile = (String)request.getAttribute("logfile");
+if (logfile != null)
+{
+	log.debug(logfile);
+	BufferedReader in = new BufferedReader(new FileReader(logfile));
+	String line;
+	while ((line = in.readLine()) != null) {
+		out.println(line);
+	}
+}
+%>
+</pre>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/viewlog_header.jsp
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/viewlog_header.jsp	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/viewlog_header.jsp	Wed Mar 17 21:11:06 2004
@@ -13,21 +13,21 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
-<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean-el" prefix="bean-el" %>
-<html:html locale="true">
-    <head>
-    </head>
-    <body bgcolor="#FFFFFF"/>
-    <table border="0" width="100%" cellpadding="0" cellspacing="0">
-    <tr><td>
-        <html:link target="_top" page="/"><bean:message key="log.back"/></html:link>
-    </td><td align="center">
-        <bean-el:message key="log.refresh" arg0="${refreshrate}"/>
-    </td><td align="right">
-        <html:link target="body" page="/viewlog_body.do" paramid="project" paramname="project"><bean:message key="log.force.refresh"/></html:link>
-    </td></tr>
-    </table>
-    </body>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean-el" prefix="bean-el" %>
+<html:html locale="true">
+    <head>
+    </head>
+    <body bgcolor="#FFFFFF"/>
+    <table border="0" width="100%" cellpadding="0" cellspacing="0">
+    <tr><td>
+        <html:link target="_top" page="/"><bean:message key="log.back"/></html:link>
+    </td><td align="center">
+        <bean-el:message key="log.refresh" arg0="${refreshrate}"/>
+    </td><td align="right">
+        <html:link target="body" page="/viewlog_body.do" paramid="project" paramname="project"><bean:message key="log.force.refresh"/></html:link>
+    </td></tr>
+    </table>
+    </body>
 </html:html>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/welcome.html
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/welcome.html	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/welcome.html	Wed Mar 17 21:11:06 2004
@@ -13,19 +13,19 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<p>
-This site contains automatically updated and built versions of websites built
-with the latest <a href="http://xml.apache.org/forrest/">Forrest</a>. It aims
-to provide a service similar to <a
-  href="http://jakarta.apache.org/gump/">Gump</a>, but for websites.  Hosted
-projects' source is automatically checked out and the HTML rebuilt periodically.
-</p>
-<p>
-In addition, if you have just made a site update and are itching to see the
-result, site builds can be triggered manually.  Certain users can also
-trigger a publish of the generated files.
-</p>
-<p>
-To set up the Forrestbot Web Inteface for your own collection of projects, checkout the source and read README.txt
-</p>
+<p>
+This site contains automatically updated and built versions of websites built
+with the latest <a href="http://xml.apache.org/forrest/">Forrest</a>. It aims
+to provide a service similar to <a
+  href="http://jakarta.apache.org/gump/">Gump</a>, but for websites.  Hosted
+projects' source is automatically checked out and the HTML rebuilt periodically.
+</p>
+<p>
+In addition, if you have just made a site update and are itching to see the
+result, site builds can be triggered manually.  Certain users can also
+trigger a publish of the generated files.
+</p>
+<p>
+To set up the Forrestbot Web Inteface for your own collection of projects, checkout the source and read README.txt
+</p>
 <hr>

Modified: xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/welcome.local.html
==============================================================================
--- xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/welcome.local.html	(original)
+++ xml/forrest/trunk/scratchpad/forrestbot2/webapp/src/webapp/welcome.local.html	Wed Mar 17 21:11:06 2004
@@ -13,12 +13,12 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<p>
-To request a username/password that allows you to build and/or deploy your
-project's site, please mail <a href="mailto:site.administrator">Insert
-Site Administrator Here</a>.
-</p>
-<p>
-This file is welcome.local.html, please modify to suit your installation
-</p>
+<p>
+To request a username/password that allows you to build and/or deploy your
+project's site, please mail <a href="mailto:site.administrator">Insert
+Site Administrator Here</a>.
+</p>
+<p>
+This file is welcome.local.html, please modify to suit your installation
+</p>
 <hr>

Modified: xml/forrest/trunk/tools/ant/bin/ant.bat
==============================================================================
--- xml/forrest/trunk/tools/ant/bin/ant.bat	(original)
+++ xml/forrest/trunk/tools/ant/bin/ant.bat	Wed Mar 17 21:11:06 2004
@@ -1,106 +1,106 @@
-@echo off
-
-REM  Copyright 2001,2004 The Apache Software Foundation
-REM
-REM  Licensed under the Apache License, Version 2.0 (the "License");
-REM  you may not use this file except in compliance with the License.
-REM  You may obtain a copy of the License at
-REM
-REM      http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM  Unless required by applicable law or agreed to in writing, software
-REM  distributed under the License is distributed on an "AS IS" BASIS,
-REM  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-REM  See the License for the specific language governing permissions and
-REM  limitations under the License.
-
-if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat"
-
-if "%OS%"=="Windows_NT" @setlocal
-
-rem %~dp0 is expanded pathname of the current script under NT
-set DEFAULT_ANT_HOME=%~dp0..
-
-if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME%
-set DEFAULT_ANT_HOME=
-
-rem Slurp the command line arguments. This loop allows for an unlimited number
-rem of arguments (up to the command line limit, anyway).
-set ANT_CMD_LINE_ARGS=%1
-if ""%1""=="""" goto doneStart
-shift
-:setupArgs
-if ""%1""=="""" goto doneStart
-set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
-shift
-goto setupArgs
-rem This label provides a place for the argument list loop to break out
-rem and for NT handling to skip to.
-
-:doneStart
-rem find ANT_HOME if it does not exist due to either an invalid value passed
-rem by the user or the %0 problem on Windows 9x
-if exist "%ANT_HOME%\lib\ant.jar" goto checkJava
-
-rem check for ant in Program Files
-if not exist "%ProgramFiles%\ant" goto checkSystemDrive
-set ANT_HOME=%ProgramFiles%\ant
-goto checkJava
-
-:checkSystemDrive
-rem check for ant in root directory of system drive
-if not exist %SystemDrive%\ant\lib\ant.jar goto checkCDrive
-set ANT_HOME=%SystemDrive%\ant
-goto checkJava
-
-:checkCDrive
-rem check for ant in C:\ant for Win9X users
-if not exist C:\ant\lib\ant.jar goto noAntHome
-set ANT_HOME=C:\ant
-goto checkJava
-
-:noAntHome
-echo ANT_HOME is set incorrectly or ant could not be located. Please set ANT_HOME.
-goto end
-
-:checkJava
-set _JAVACMD=%JAVACMD%
-
-if "%JAVA_HOME%" == "" goto noJavaHome
-if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
-if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe
-goto checkJikes
-
-:noJavaHome
-if "%_JAVACMD%" == "" set _JAVACMD=java.exe
-
-:checkJikes
-if not "%JIKESPATH%"=="" goto runAntWithJikes
-
-:runAnt
-if not "%CLASSPATH%"=="" goto runAntWithClasspath
-"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
-goto end
-
-:runAntWithClasspath
-"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -lib "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
-goto end
-
-:runAntWithJikes
-if not "%CLASSPATH%"=="" goto runAntWithJikesAndClasspath
-"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
-goto end
-
-:runAntWithJikesAndClasspath
-"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS%  -lib "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
-goto end
-
-:end
-set _JAVACMD=
-set ANT_CMD_LINE_ARGS=
-
-if "%OS%"=="Windows_NT" @endlocal
-
-:mainEnd
-if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat"
-
+@echo off
+
+REM  Copyright 2001,2004 The Apache Software Foundation
+REM
+REM  Licensed under the Apache License, Version 2.0 (the "License");
+REM  you may not use this file except in compliance with the License.
+REM  You may obtain a copy of the License at
+REM
+REM      http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM  Unless required by applicable law or agreed to in writing, software
+REM  distributed under the License is distributed on an "AS IS" BASIS,
+REM  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM  See the License for the specific language governing permissions and
+REM  limitations under the License.
+
+if exist "%HOME%\antrc_pre.bat" call "%HOME%\antrc_pre.bat"
+
+if "%OS%"=="Windows_NT" @setlocal
+
+rem %~dp0 is expanded pathname of the current script under NT
+set DEFAULT_ANT_HOME=%~dp0..
+
+if "%ANT_HOME%"=="" set ANT_HOME=%DEFAULT_ANT_HOME%
+set DEFAULT_ANT_HOME=
+
+rem Slurp the command line arguments. This loop allows for an unlimited number
+rem of arguments (up to the command line limit, anyway).
+set ANT_CMD_LINE_ARGS=%1
+if ""%1""=="""" goto doneStart
+shift
+:setupArgs
+if ""%1""=="""" goto doneStart
+set ANT_CMD_LINE_ARGS=%ANT_CMD_LINE_ARGS% %1
+shift
+goto setupArgs
+rem This label provides a place for the argument list loop to break out
+rem and for NT handling to skip to.
+
+:doneStart
+rem find ANT_HOME if it does not exist due to either an invalid value passed
+rem by the user or the %0 problem on Windows 9x
+if exist "%ANT_HOME%\lib\ant.jar" goto checkJava
+
+rem check for ant in Program Files
+if not exist "%ProgramFiles%\ant" goto checkSystemDrive
+set ANT_HOME=%ProgramFiles%\ant
+goto checkJava
+
+:checkSystemDrive
+rem check for ant in root directory of system drive
+if not exist %SystemDrive%\ant\lib\ant.jar goto checkCDrive
+set ANT_HOME=%SystemDrive%\ant
+goto checkJava
+
+:checkCDrive
+rem check for ant in C:\ant for Win9X users
+if not exist C:\ant\lib\ant.jar goto noAntHome
+set ANT_HOME=C:\ant
+goto checkJava
+
+:noAntHome
+echo ANT_HOME is set incorrectly or ant could not be located. Please set ANT_HOME.
+goto end
+
+:checkJava
+set _JAVACMD=%JAVACMD%
+
+if "%JAVA_HOME%" == "" goto noJavaHome
+if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
+if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe
+goto checkJikes
+
+:noJavaHome
+if "%_JAVACMD%" == "" set _JAVACMD=java.exe
+
+:checkJikes
+if not "%JIKESPATH%"=="" goto runAntWithJikes
+
+:runAnt
+if not "%CLASSPATH%"=="" goto runAntWithClasspath
+"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
+goto end
+
+:runAntWithClasspath
+"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% -lib "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
+goto end
+
+:runAntWithJikes
+if not "%CLASSPATH%"=="" goto runAntWithJikesAndClasspath
+"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS% %ANT_CMD_LINE_ARGS%
+goto end
+
+:runAntWithJikesAndClasspath
+"%_JAVACMD%" %ANT_OPTS% -classpath "%ANT_HOME%\lib\ant-launcher.jar" "-Dant.home=%ANT_HOME%" "-Djikes.class.path=%JIKESPATH%" org.apache.tools.ant.launch.Launcher %ANT_ARGS%  -lib "%CLASSPATH%" %ANT_CMD_LINE_ARGS%
+goto end
+
+:end
+set _JAVACMD=
+set ANT_CMD_LINE_ARGS=
+
+if "%OS%"=="Windows_NT" @endlocal
+
+:mainEnd
+if exist "%HOME%\antrc_post.bat" call "%HOME%\antrc_post.bat"
+

Modified: xml/forrest/trunk/tools/ant/bin/ant.cmd
==============================================================================
--- xml/forrest/trunk/tools/ant/bin/ant.cmd	(original)
+++ xml/forrest/trunk/tools/ant/bin/ant.cmd	Wed Mar 17 21:11:06 2004
@@ -1,71 +1,71 @@
-/* 
-    Copyright (c) 2003 The Apache Software Foundation.  All rights
-    reserved.
-
-    Run ant 
-*/
-
-parse arg mode envarg '::' antarg
-
-if mode\='.' & mode\='..' & mode\='/' then do
-  envarg = mode envarg
-  mode = ''
-end
-
-if antarg = '' then do
-  antarg = envarg
-  envarg = ''
-end
-
-x = setlocal()
-
-env="OS2ENVIRONMENT"
-antenv = _getenv_('antenv')
-if _testenv_() = 0 then do
-  interpret 'call "' || antenv || '"' '"' || envarg || '"'
-  if _testenv_() = 0 then do
-    say 'Ant environment is not set properly'
-    x = endlocal()
-    exit 16
-  end
-end
-
-if mode = '' then mode = _getenv_('ANT_MODE' '..')
-if mode \= '/' then do
-  runrc = _getenv_('runrc')
-  antrc = _getenv_('antrc' 'antrc.cmd')
-  if mode = '..' then mode = '-r'
-  else mode = ''
-  interpret 'call "' || runrc || '"' antrc '"' || mode || '"'
-end
-
-settings = '-Dant.home=' || ANT_HOME '-Djava.home=' || JAVA_HOME
-
-java = _getenv_('javacmd' 'java')
-opts = value('ANT_OPTS',,env)
-args = value('ANT_ARGS',,env)
-lcp = value('LOCALCLASSPATH',,env)
-if lcp\='' then lcp = '-cp' lcp
-
-java opts lcp 'org.apache.tools.ant.Main' settings args antarg
-
-x = endlocal()
-
-return rc
-
-_testenv_: procedure expose env ANT_HOME JAVA_HOME
-ANT_HOME = value('ANT_HOME',,env)
-if ANT_HOME = '' then return 0
-JAVA_HOME = value('JAVA_HOME',,env)
-if JAVA_HOME = '' then return 0
-cp = translate(value('CLASSPATH',,env))
-if pos(translate(ANT_HOME), cp) = 0 then return 0
-if pos(translate(JAVA_HOME), cp) = 0 then return 0
-return 1
-
-_getenv_: procedure expose env
-parse arg envar default
-if default = '' then default = envar
-var = value(translate(envar),,env)
-if var = '' then var = default
-return var
+/* 
+    Copyright (c) 2003 The Apache Software Foundation.  All rights
+    reserved.
+
+    Run ant 
+*/
+
+parse arg mode envarg '::' antarg
+
+if mode\='.' & mode\='..' & mode\='/' then do
+  envarg = mode envarg
+  mode = ''
+end
+
+if antarg = '' then do
+  antarg = envarg
+  envarg = ''
+end
+
+x = setlocal()
+
+env="OS2ENVIRONMENT"
+antenv = _getenv_('antenv')
+if _testenv_() = 0 then do
+  interpret 'call "' || antenv || '"' '"' || envarg || '"'
+  if _testenv_() = 0 then do
+    say 'Ant environment is not set properly'
+    x = endlocal()
+    exit 16
+  end
+end
+
+if mode = '' then mode = _getenv_('ANT_MODE' '..')
+if mode \= '/' then do
+  runrc = _getenv_('runrc')
+  antrc = _getenv_('antrc' 'antrc.cmd')
+  if mode = '..' then mode = '-r'
+  else mode = ''
+  interpret 'call "' || runrc || '"' antrc '"' || mode || '"'
+end
+
+settings = '-Dant.home=' || ANT_HOME '-Djava.home=' || JAVA_HOME
+
+java = _getenv_('javacmd' 'java')
+opts = value('ANT_OPTS',,env)
+args = value('ANT_ARGS',,env)
+lcp = value('LOCALCLASSPATH',,env)
+if lcp\='' then lcp = '-cp' lcp
+
+java opts lcp 'org.apache.tools.ant.Main' settings args antarg
+
+x = endlocal()
+
+return rc
+
+_testenv_: procedure expose env ANT_HOME JAVA_HOME
+ANT_HOME = value('ANT_HOME',,env)
+if ANT_HOME = '' then return 0
+JAVA_HOME = value('JAVA_HOME',,env)
+if JAVA_HOME = '' then return 0
+cp = translate(value('CLASSPATH',,env))
+if pos(translate(ANT_HOME), cp) = 0 then return 0
+if pos(translate(JAVA_HOME), cp) = 0 then return 0
+return 1
+
+_getenv_: procedure expose env
+parse arg envar default
+if default = '' then default = envar
+var = value(translate(envar),,env)
+if var = '' then var = default
+return var

Modified: xml/forrest/trunk/tools/ant/bin/antRun.bat
==============================================================================
--- xml/forrest/trunk/tools/ant/bin/antRun.bat	(original)
+++ xml/forrest/trunk/tools/ant/bin/antRun.bat	Wed Mar 17 21:11:06 2004
@@ -1,45 +1,45 @@
-@echo off
-
-REM
-REM Copyright  2001-2002,2004 The Apache Software Foundation
-REM
-REM  Licensed under the Apache License, Version 2.0 (the "License");
-REM  you may not use this file except in compliance with the License.
-REM  You may obtain a copy of the License at
-REM
-REM      http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM  Unless required by applicable law or agreed to in writing, software
-REM  distributed under the License is distributed on an "AS IS" BASIS,
-REM  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-REM  See the License for the specific language governing permissions and
-REM  limitations under the License.
-REM
-REM
-
-if "%OS%"=="Windows_NT" @setlocal
-
-if ""%1""=="""" goto runCommand
-
-rem Change drive and directory to %1
-if "%OS%"=="Windows_NT" cd /d ""%1""
-if not "%OS%"=="Windows_NT" cd ""%1""
-shift
-
-rem Slurp the command line arguments. This loop allows for an unlimited number
-rem of agruments (up to the command line limit, anyway).
-set ANT_RUN_CMD=%1
-if ""%1""=="""" goto runCommand
-shift
-:loop
-if ""%1""=="""" goto runCommand
-set ANT_RUN_CMD=%ANT_RUN_CMD% %1
-shift
-goto loop
-
-:runCommand
-rem echo %ANT_RUN_CMD%
-%ANT_RUN_CMD%
-
-if "%OS%"=="Windows_NT" @endlocal
-
+@echo off
+
+REM
+REM Copyright  2001-2002,2004 The Apache Software Foundation
+REM
+REM  Licensed under the Apache License, Version 2.0 (the "License");
+REM  you may not use this file except in compliance with the License.
+REM  You may obtain a copy of the License at
+REM
+REM      http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM  Unless required by applicable law or agreed to in writing, software
+REM  distributed under the License is distributed on an "AS IS" BASIS,
+REM  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM  See the License for the specific language governing permissions and
+REM  limitations under the License.
+REM
+REM
+
+if "%OS%"=="Windows_NT" @setlocal
+
+if ""%1""=="""" goto runCommand
+
+rem Change drive and directory to %1
+if "%OS%"=="Windows_NT" cd /d ""%1""
+if not "%OS%"=="Windows_NT" cd ""%1""
+shift
+
+rem Slurp the command line arguments. This loop allows for an unlimited number
+rem of agruments (up to the command line limit, anyway).
+set ANT_RUN_CMD=%1
+if ""%1""=="""" goto runCommand
+shift
+:loop
+if ""%1""=="""" goto runCommand
+set ANT_RUN_CMD=%ANT_RUN_CMD% %1
+shift
+goto loop
+
+:runCommand
+rem echo %ANT_RUN_CMD%
+%ANT_RUN_CMD%
+
+if "%OS%"=="Windows_NT" @endlocal
+

Modified: xml/forrest/trunk/tools/ant/bin/antenv.cmd
==============================================================================
--- xml/forrest/trunk/tools/ant/bin/antenv.cmd	(original)
+++ xml/forrest/trunk/tools/ant/bin/antenv.cmd	Wed Mar 17 21:11:06 2004
@@ -1,100 +1,100 @@
-/* 
-    Copyright (c) 2003 The Apache Software Foundation.  All rights
-    reserved.
-
-    Ant environment 
-*/
-
-call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
-call SysLoadFuncs
-
-/* Prepare the parameters for later use */
-parse arg argv
-mode = ''
-args = ''
-opts = ''
-cp = ''
-lcp = ''
-
-do i = 1 to words(argv)
-  param = word(argv, i)
-  select
-    when param='-lcp' then mode = 'l'
-    when param='-cp' | param='-classpath' then mode = 'c'
-    when abbrev('-opts', param, 4) then mode = 'o'
-    when abbrev('-args', param, 4) then mode = 'a'
-  otherwise
-    select
-      when mode = 'a' then args = space(args param, 1)
-      when mode = 'c' then cp = space(cp param, 1)
-      when mode = 'l' then lcp = space(lcp param, 1)
-      when mode = 'o' then opts = space(opts param, 1)
-    otherwise
-      say 'Option' param 'ignored'
-    end
-  end
-end
-
-env="OS2ENVIRONMENT"
-antconf = _getenv_('antconf' 'antconf.cmd')
-runrc = _getenv_('runrc')
-interpret 'call "' || runrc || '"' '"' || antconf || '"' 'ETC'
-ANT_HOME = value('ANT_HOME',,env)
-JAVA_HOME = value('JAVA_HOME',,env)
-classpath = value('CLASSPATH',,env)
-classes = stream(JAVA_HOME || "\lib\classes.zip", "C", "QUERY EXISTS")
-if classes \= '' then classpath = prepend(classpath classes)
-classes = stream(JAVA_HOME || "\lib\tools.jar", "C", "QUERY EXISTS")
-if classes \= '' then classpath = prepend(classpath classes)
-
-mincp = classpath
-call SysFileTree ANT_HOME || '\lib\*.jar', 'jar', 'FO'
-do i = 1 to jar.0
-  nm = filespec('name', jar.i)
-  if pos('ant-', nm) == 0 then classpath = prepend(classpath jar.i)
-end
-if length(classpath) > 512 then do
-  say 'Classpath is too long, switching to the minimal version...'
-  say '... some tasks will not work'
-  classpath = mincp
-  classpath = prepend(classpath ANT_HOME || '\lib\ant.jar')
-  classpath = prepend(classpath ANT_HOME || '\lib\optional.jar')
-end
-
-'SET CLASSPATH=' || classpath
-
-/* Setting classpathes, options and arguments */
-envset = _getenv_('envset')
-if cp\=''   then interpret 'call "' || envset || '"' '"; CLASSPATH"' '"' || cp || '"'
-if lcp\=''  then interpret 'call "' || envset || '"' '"; LOCALCLASSPATH"' '"' || lcp || '"'
-if opts\='' then interpret 'call "' || envset || '"' '"-D ANT_OPTS"' '"' || opts || '"'
-if args\='' then interpret 'call "' || envset || '"' '"ANT_ARGS"' '"' || args || '"'
-
-exit 0
-
-addpath: procedure
-parse arg path elem
-if elem = '' then do
-  if path\='' & right(path, 1)\=';' then path = path || ';'
-  return path
-end
-if substr(path, length(path)) = ';' then glue = ''
-else glue = ';'
-if pos(translate(elem), translate(path)) = 0 then path = path || glue || elem || ';'
-return path
-
-prepend: procedure
-parse arg path elem
-if elem = '' then do
-  if path\='' & right(path, 1)\=';' then path = path || ';'
-  return path
-end
-if pos(translate(elem), translate(path)) = 0 then path = elem || ';' || path
-return path
-
-_getenv_: procedure expose env
-parse arg envar default
-if default = '' then default = envar
-var = value(translate(envar),,env)
-if var = '' then var = default
-return var
+/* 
+    Copyright (c) 2003 The Apache Software Foundation.  All rights
+    reserved.
+
+    Ant environment 
+*/
+
+call RxFuncAdd "SysLoadFuncs", "RexxUtil", "SysLoadFuncs"
+call SysLoadFuncs
+
+/* Prepare the parameters for later use */
+parse arg argv
+mode = ''
+args = ''
+opts = ''
+cp = ''
+lcp = ''
+
+do i = 1 to words(argv)
+  param = word(argv, i)
+  select
+    when param='-lcp' then mode = 'l'
+    when param='-cp' | param='-classpath' then mode = 'c'
+    when abbrev('-opts', param, 4) then mode = 'o'
+    when abbrev('-args', param, 4) then mode = 'a'
+  otherwise
+    select
+      when mode = 'a' then args = space(args param, 1)
+      when mode = 'c' then cp = space(cp param, 1)
+      when mode = 'l' then lcp = space(lcp param, 1)
+      when mode = 'o' then opts = space(opts param, 1)
+    otherwise
+      say 'Option' param 'ignored'
+    end
+  end
+end
+
+env="OS2ENVIRONMENT"
+antconf = _getenv_('antconf' 'antconf.cmd')
+runrc = _getenv_('runrc')
+interpret 'call "' || runrc || '"' '"' || antconf || '"' 'ETC'
+ANT_HOME = value('ANT_HOME',,env)
+JAVA_HOME = value('JAVA_HOME',,env)
+classpath = value('CLASSPATH',,env)
+classes = stream(JAVA_HOME || "\lib\classes.zip", "C", "QUERY EXISTS")
+if classes \= '' then classpath = prepend(classpath classes)
+classes = stream(JAVA_HOME || "\lib\tools.jar", "C", "QUERY EXISTS")
+if classes \= '' then classpath = prepend(classpath classes)
+
+mincp = classpath
+call SysFileTree ANT_HOME || '\lib\*.jar', 'jar', 'FO'
+do i = 1 to jar.0
+  nm = filespec('name', jar.i)
+  if pos('ant-', nm) == 0 then classpath = prepend(classpath jar.i)
+end
+if length(classpath) > 512 then do
+  say 'Classpath is too long, switching to the minimal version...'
+  say '... some tasks will not work'
+  classpath = mincp
+  classpath = prepend(classpath ANT_HOME || '\lib\ant.jar')
+  classpath = prepend(classpath ANT_HOME || '\lib\optional.jar')
+end
+
+'SET CLASSPATH=' || classpath
+
+/* Setting classpathes, options and arguments */
+envset = _getenv_('envset')
+if cp\=''   then interpret 'call "' || envset || '"' '"; CLASSPATH"' '"' || cp || '"'
+if lcp\=''  then interpret 'call "' || envset || '"' '"; LOCALCLASSPATH"' '"' || lcp || '"'
+if opts\='' then interpret 'call "' || envset || '"' '"-D ANT_OPTS"' '"' || opts || '"'
+if args\='' then interpret 'call "' || envset || '"' '"ANT_ARGS"' '"' || args || '"'
+
+exit 0
+
+addpath: procedure
+parse arg path elem
+if elem = '' then do
+  if path\='' & right(path, 1)\=';' then path = path || ';'
+  return path
+end
+if substr(path, length(path)) = ';' then glue = ''
+else glue = ';'
+if pos(translate(elem), translate(path)) = 0 then path = path || glue || elem || ';'
+return path
+
+prepend: procedure
+parse arg path elem
+if elem = '' then do
+  if path\='' & right(path, 1)\=';' then path = path || ';'
+  return path
+end
+if pos(translate(elem), translate(path)) = 0 then path = elem || ';' || path
+return path
+
+_getenv_: procedure expose env
+parse arg envar default
+if default = '' then default = envar
+var = value(translate(envar),,env)
+if var = '' then var = default
+return var

Modified: xml/forrest/trunk/tools/ant/bin/envset.cmd
==============================================================================
--- xml/forrest/trunk/tools/ant/bin/envset.cmd	(original)
+++ xml/forrest/trunk/tools/ant/bin/envset.cmd	Wed Mar 17 21:11:06 2004
@@ -1,119 +1,119 @@
-/*
-
-    Copyright (c) 2003 The Apache Software Foundation.  All rights
-    reserved.
-
-SET environment variables
-First optional parameter:
-   ;     parameters are considered parts of a path variable, semicolons are
-         appended to each element if not already present
-   -D    parameters are properties for Java or Makefile etc., -D will be
-         prepended and the parameters will be separated by a space
-   =D    the same as above but equal sign is not required
-   ,     parameters should be comma separated in the environment variable
-   -     parameters should be separated by the next parameter
-   Other values mean that the first parameter is missing and the environment
-   variable will be set to the space separated parameters
-
-Second parameter: name of the environment variable
-
-Next parameters: values
-; implies that the equal sign is considered a part of the parameter and is
-not interpreted
-
--D requires parameters in the form name=value. If the equal sign is not found,
-the parameters are changed to name=expanded_name
-
-Other options have optional equal sign. If it is found, only the part after
-the equal sign will be oprionally expanded.
-
-If the parameter is the minus sign, the next parameter will not be expanded.
-If the parameter is a single dot, it will be replaced with the value of the
-environment variable as it existed before envset was invoked.
-
-For other parameters the batch looks for the environment variable with the
-same name (in uppercase). If it is found, it forms the expanded_name. If
-the environment variable with such a name does not exist, the expanded_name
-will hold the parameter name without case conversion.
-*/
-
-parse arg mode envar args
-
-equal = 0
-sep = ' '
-
-/* Parse command line parameters */
-select
-  when mode='-' then do
-    sep = envar
-    parse var args envar args
-  end
-  when mode=';' then do
-    sep = ''
-    equal = -1
-  end
-  when mode='-D' then equal = 1
-  when mode='=D' then mode = '-D'
-  when mode=',' then sep = ','
-otherwise
-  args = envar args
-  envar = mode
-  mode = ''
-end
-
-env = 'OS2ENVIRONMENT'
-envar = translate(envar)
-orig = value(envar,,env)
-newval = ''
-expand = 1
-
-/* for each parameter... */
-do i = 1 to words(args)
-  if expand > 0 & word(args, i) = '-' then expand = 0
-  else call addval word(args, i)
-end
-
-/* Optionally enclose path variable by quotes */
-if mode = ';' & pos(' ', newval) > 0 then newval = '"' || newval || '"'
-
-/* Set the new value, 'SET' cannot be used since it does not allow '=' */
-x = value(envar, newval, env)
-exit 0
-
-addval: procedure expose sep equal orig expand newval mode env
-parse arg var
-
-if var = '.' then expvar = orig
-else do
-  if equal >= 0 then do
-    parse var var name '=' val
-    if val = '' then var = name
-    else var = val
-  end
-  if expand = 0 then expvar = var
-  else expvar = value(translate(var),,env)
-  if expvar = '' then expvar = var
-  if equal >= 0 then do
-    if val = '' then do
-      parse var expvar key '=' val
-      if val <> '' then name = key
-      else do
-        if equal > 0 then val = key
-        else name = key
-      end
-    end
-    else val = expvar
-    if pos(' ', val) > 0 | pos('=', val) > 0 then val = '"' || val || '"'
-    if val = '' then expvar = name
-    else expvar = name || '=' || val
-  end
-  if mode = '-D' then expvar = '-D' || expvar
-  if mode = ';' then do
-    if right(expvar, 1) <> ';' then expvar = expvar || ';'
-  end
-end
-
-if newval = '' then newval = expvar
-else newval = newval || sep || expvar
-expand = 1
-return
+/*
+
+    Copyright (c) 2003 The Apache Software Foundation.  All rights
+    reserved.
+
+SET environment variables
+First optional parameter:
+   ;     parameters are considered parts of a path variable, semicolons are
+         appended to each element if not already present
+   -D    parameters are properties for Java or Makefile etc., -D will be
+         prepended and the parameters will be separated by a space
+   =D    the same as above but equal sign is not required
+   ,     parameters should be comma separated in the environment variable
+   -     parameters should be separated by the next parameter
+   Other values mean that the first parameter is missing and the environment
+   variable will be set to the space separated parameters
+
+Second parameter: name of the environment variable
+
+Next parameters: values
+; implies that the equal sign is considered a part of the parameter and is
+not interpreted
+
+-D requires parameters in the form name=value. If the equal sign is not found,
+the parameters are changed to name=expanded_name
+
+Other options have optional equal sign. If it is found, only the part after
+the equal sign will be oprionally expanded.
+
+If the parameter is the minus sign, the next parameter will not be expanded.
+If the parameter is a single dot, it will be replaced with the value of the
+environment variable as it existed before envset was invoked.
+
+For other parameters the batch looks for the environment variable with the
+same name (in uppercase). If it is found, it forms the expanded_name. If
+the environment variable with such a name does not exist, the expanded_name
+will hold the parameter name without case conversion.
+*/
+
+parse arg mode envar args
+
+equal = 0
+sep = ' '
+
+/* Parse command line parameters */
+select
+  when mode='-' then do
+    sep = envar
+    parse var args envar args
+  end
+  when mode=';' then do
+    sep = ''
+    equal = -1
+  end
+  when mode='-D' then equal = 1
+  when mode='=D' then mode = '-D'
+  when mode=',' then sep = ','
+otherwise
+  args = envar args
+  envar = mode
+  mode = ''
+end
+
+env = 'OS2ENVIRONMENT'
+envar = translate(envar)
+orig = value(envar,,env)
+newval = ''
+expand = 1
+
+/* for each parameter... */
+do i = 1 to words(args)
+  if expand > 0 & word(args, i) = '-' then expand = 0
+  else call addval word(args, i)
+end
+
+/* Optionally enclose path variable by quotes */
+if mode = ';' & pos(' ', newval) > 0 then newval = '"' || newval || '"'
+
+/* Set the new value, 'SET' cannot be used since it does not allow '=' */
+x = value(envar, newval, env)
+exit 0
+
+addval: procedure expose sep equal orig expand newval mode env
+parse arg var
+
+if var = '.' then expvar = orig
+else do
+  if equal >= 0 then do
+    parse var var name '=' val
+    if val = '' then var = name
+    else var = val
+  end
+  if expand = 0 then expvar = var
+  else expvar = value(translate(var),,env)
+  if expvar = '' then expvar = var
+  if equal >= 0 then do
+    if val = '' then do
+      parse var expvar key '=' val
+      if val <> '' then name = key
+      else do
+        if equal > 0 then val = key
+        else name = key
+      end
+    end
+    else val = expvar
+    if pos(' ', val) > 0 | pos('=', val) > 0 then val = '"' || val || '"'
+    if val = '' then expvar = name
+    else expvar = name || '=' || val
+  end
+  if mode = '-D' then expvar = '-D' || expvar
+  if mode = ';' then do
+    if right(expvar, 1) <> ';' then expvar = expvar || ';'
+  end
+end
+
+if newval = '' then newval = expvar
+else newval = newval || sep || expvar
+expand = 1
+return

Modified: xml/forrest/trunk/tools/ant/bin/lcp.bat
==============================================================================
--- xml/forrest/trunk/tools/ant/bin/lcp.bat	(original)
+++ xml/forrest/trunk/tools/ant/bin/lcp.bat	Wed Mar 17 21:11:06 2004
@@ -1,30 +1,30 @@
-REM
-REM Copyright  2001-2004 The Apache Software Foundation
-REM
-REM  Licensed under the Apache License, Version 2.0 (the "License");
-REM  you may not use this file except in compliance with the License.
-REM  You may obtain a copy of the License at
-REM
-REM      http://www.apache.org/licenses/LICENSE-2.0
-REM
-REM  Unless required by applicable law or agreed to in writing, software
-REM  distributed under the License is distributed on an "AS IS" BASIS,
-REM  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-REM  See the License for the specific language governing permissions and
-REM  limitations under the License.
-REM
-REM
-
-set _CLASSPATHCOMPONENT=%1
-if ""%1""=="""" goto gotAllArgs
-shift
-
-:argCheck
-if ""%1""=="""" goto gotAllArgs
-set _CLASSPATHCOMPONENT=%_CLASSPATHCOMPONENT% %1
-shift
-goto argCheck
-
-:gotAllArgs
-set LOCALCLASSPATH=%_CLASSPATHCOMPONENT%;%LOCALCLASSPATH%
-
+REM
+REM Copyright  2001-2004 The Apache Software Foundation
+REM
+REM  Licensed under the Apache License, Version 2.0 (the "License");
+REM  you may not use this file except in compliance with the License.
+REM  You may obtain a copy of the License at
+REM
+REM      http://www.apache.org/licenses/LICENSE-2.0
+REM
+REM  Unless required by applicable law or agreed to in writing, software
+REM  distributed under the License is distributed on an "AS IS" BASIS,
+REM  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+REM  See the License for the specific language governing permissions and
+REM  limitations under the License.
+REM
+REM
+
+set _CLASSPATHCOMPONENT=%1
+if ""%1""=="""" goto gotAllArgs
+shift
+
+:argCheck
+if ""%1""=="""" goto gotAllArgs
+set _CLASSPATHCOMPONENT=%_CLASSPATHCOMPONENT% %1
+shift
+goto argCheck
+
+:gotAllArgs
+set LOCALCLASSPATH=%_CLASSPATHCOMPONENT%;%LOCALCLASSPATH%
+

Modified: xml/forrest/trunk/tools/ant/bin/runrc.cmd
==============================================================================
--- xml/forrest/trunk/tools/ant/bin/runrc.cmd	(original)
+++ xml/forrest/trunk/tools/ant/bin/runrc.cmd	Wed Mar 17 21:11:06 2004
@@ -1,48 +1,48 @@
-/* 
-    Copyright (c) 2003 The Apache Software Foundation.  All rights
-    reserved.
-
-    Run RC file, name is in the first arg, second arg is either PATH
-    ENV  or -r or nothing 
-*/
-
-parse arg name path rest
-
-if name = '' then do
-  say 'RC file name is missing'
-  exit 1
-end
-
-if rest \= '' then do
-  say 'Too many parameters'
-  exit 1
-end
-
-call runit name path
-exit 0
-
-runit: procedure
-parse arg name path dir
-
-if path \= '' & path \= '-r' then do
-  dir = value(translate(path),,'OS2ENVIRONMENT')
-  if dir = '' then return
-  dir = translate(dir, '\', '/') /* change UNIX-like path to OS/2 */
-end
-
-if dir = '' then dir = directory()
-
-if path = '-r' then do /* recursive call */
-  subdir = filespec('path', dir)
-  if subdir \= '\' then do
-    subdir = left(subdir, length(subdir)-1)
-    call runit name path filespec('drive', dir) || subdir
-  end
-end
-
-/* Look for the file and run it */
-if right(dir, 1) \= '\' then dir = dir || '\'
-rcfile = stream(dir || name, 'c', 'query exists')
-if rcfile \= '' then interpret 'call "' || rcfile || '"'
-
-return
+/* 
+    Copyright (c) 2003 The Apache Software Foundation.  All rights
+    reserved.
+
+    Run RC file, name is in the first arg, second arg is either PATH
+    ENV  or -r or nothing 
+*/
+
+parse arg name path rest
+
+if name = '' then do
+  say 'RC file name is missing'
+  exit 1
+end
+
+if rest \= '' then do
+  say 'Too many parameters'
+  exit 1
+end
+
+call runit name path
+exit 0
+
+runit: procedure
+parse arg name path dir
+
+if path \= '' & path \= '-r' then do
+  dir = value(translate(path),,'OS2ENVIRONMENT')
+  if dir = '' then return
+  dir = translate(dir, '\', '/') /* change UNIX-like path to OS/2 */
+end
+
+if dir = '' then dir = directory()
+
+if path = '-r' then do /* recursive call */
+  subdir = filespec('path', dir)
+  if subdir \= '\' then do
+    subdir = left(subdir, length(subdir)-1)
+    call runit name path filespec('drive', dir) || subdir
+  end
+end
+
+/* Look for the file and run it */
+if right(dir, 1) \= '\' then dir = dir || '\'
+rcfile = stream(dir || name, 'c', 'query exists')
+if rcfile \= '' then interpret 'call "' || rcfile || '"'
+
+return

Mime
View raw message